Skip to content

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.

Notifications You must be signed in to change notification settings

halilsenaydin/mcqueen

Repository files navigation

McQueen ROS 2 Workspace

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.

Author

Halil İbrahim ŞENAYDIN
E-mail: halilsenaydin@gmail.com
GitHub: github.com/halilsenaydin

Dependencies

  • ROS (recommended iron)

Package Overview

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
  • ROS Nodes (nodes/):
    Services and publishers for sensors and actuators:
    buzzer_service, screen_service, distance_publisher, motor_controller

  • System (system/):
    ROS 2 hardware integration via mcqueen_system.h with ros2_control.

See mcqueen_hw README

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

See mcqueen_teleop README

Contains the URDF model of the McQueen robot and associated launch files.

  • URDF/Xacro descriptions of robot
  • robot_state_publisher and joint_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

See custom_interfaces README

Installation

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

Screenshots

MCQueen Description

Rviz2 Visualization

Rviz2 Visualization

MCQueen HW

Foxglove Visualization

Foxglove Visualization

MCQueen Teleop

Dashboard

Dashboard

Voice Assistant

Voice Assistant

Control Interface

Control Interface 1

Control Interface 2

Distance Monitor

Distance Monitor

Control Buzzer

Control Buzzer

Control Screen

Control Screen

Control Headlight

Control Headlight

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published