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.h
withros2_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/Twist
to/cmd_vel
- Voice command interface using
spaCy
and 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_publisher
andjoint_state_publisher
integration- 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/src
Use Git to download the workspace from the repository:
git clone https://github.com/halilsenaydin/mcqueen