This workspace is a complete ROS 2-based project for controlling a mobile robot platform ("McQueen") with support for web-based teleoperation, sensor-actuator integration, and voice assistant capabilities.
Halil İbrahim ŞENAYDIN
E-mail: halilsenaydin@gmail.com
GitHub: github.com/halilsenaydin
- ROS (recommended iron)
This workspace includes the following packages:
Hardware abstraction and control package. Provides modular interfaces and concrete implementations for various sensors, actuators, and communication methods.
-
Interfaces (abstract/):
IBuzzer,ICommDevice,IController,IDistanceSensor,IScreen,ISpeechRecognizer -
Implementations (concrete/):
- Buzzers:
ActiveBuzzer,PassiveBuzzer,MqttBuzzer - Communication:
BluetoothComm,BluwtoothAudioComm,MqttComm,SerialComm - Controllers:
PIDController - Screens:
MqttNextionScreen - Sensors:
HCSR04Sensor,MqttDistanceSensor - Speech Recognizers:
WhisperSpeechRecognizer
- Buzzers:
-
ROS Nodes (nodes/):
Services and publishers for sensors and actuators:
buzzer_service,screen_service,distance_publisher,motor_controller -
System (system/):
ROS 2 hardware integration viamcqueen_system.hwithros2_control.
Provides a Flask-based web interface and voice assistant integration for teleoperating the robot over a local network (Wi-Fi or LAN). Publishes velocity commands and offers service-based control for other components (buzzer, screen, etc.).
- Publishes
geometry_msgs/Twistto/cmd_vel - Voice command interface using
spaCyand microphone input (SSL required) - MQTT communication support
- Simple HTTP-based service endpoints
Contains the URDF model of the McQueen robot and associated launch files.
- URDF/Xacro descriptions of robot
robot_state_publisherandjoint_state_publisherintegration- Launch file to visualize the robot in RViz
See mcqueen_description README
Custom ROS 2 interface definitions used across the workspace.
- Custom service definitions (
Screen,Buzzer, etc.) - Custom message types for extended robot communication
Start by creating a new ROS 2 workspace if you don't already have one:
mkdir -p ~/workspace/src
cd ~/workspace/srcUse Git to download the workspace from the repository:
git clone https://github.com/halilsenaydin/mcqueen








