- Introduction
- Project Features
- Dependencies
- Installation Instructions
- Running the Project
- Commands to Run Specific Files
- Troubleshooting
The project implements a multi-robot setup using TurtleBot3 robots in a Gazebo simulation environment. The robots navigate autonomously, interpret commands through speech recognition, and make decisions based on behavior trees. This system simulates real-world human-robot interactions, where multiple robots work in a shared environment, executing commands through natural language inputs.
The speech-to-command module was developed using a custom-trained SpaCy model on a multilingual dataset (English and Hindi) of 1.5 lakh text-label pairs. The model effectively converts spoken language into actionable commands for the robots, allowing for intuitive and efficient communication between humans and robots.
- Multi-Robot Coordination: Multiple TurtleBot3 robots navigating autonomously using the Nav2 stack.
- Behavior Tree-based Decision Making: Robots use behavior trees for task execution and decision-making.
- Multilingual Speech-to-Command Execution: Spoken commands in English and Hindi are translated into text, which is then interpreted by the model to generate corresponding robot commands that are sent to ROS2 for execution.
- Gazebo Simulation: Full simulation of robot navigation and coordination in a virtual environment.
Before running this project, ensure the following dependencies are installed:
- speech_recognition: For speech-to-text conversion.
- pyttsx3: For text-to-speech conversion.
- spacy: For natural language processing and text classification.
- rclpy
- geometry_msgs
TurtleBot3 needs to be installed, and the environment variables should be properly configured. Follow the official TurtleBot3 setup guide.
Follow these steps to set up the project:
mkdir -p robot_ws/src
cd robot_ws/src
# Clone the repository (use the appropriate branch for Humble)
git clone https://github.com/singhparjanya/turtlebot3_multi_robot.git
cd robot_ws
Source the ROS2 environment and install dependencies using rosdep:
source /opt/ros/humble/setup.bash
rosdep install --from-paths src -r -y
cd robot_ws
colcon build --symlink-install
source ./install/setup.bash
To start the multi-robot simulation, use the following command:
ros2 launch turtlebot3_multi_robot gazebo_multi_nav2_world.launch.py enable_drive:=False
This will launch the simulation in Gazebo. You will need to open three separate terminals for running the various components of the system:
cd robot_ws/src/turtlebot3_multi_robot/scripts
./send_command.py
cd robot_ws/src/turtlebot3_multi_robot/scripts
./send_goal.py
# Ensure the workspace is sourced
source install/setup.bash
ros2 run turtlebot3_multi_robot tree
-
Gazebo not launching: Make sure you have sourced the ROS2 Humble environment and that Gazebo is correctly installed.
-
Multi-robot simulation lag: Try reducing the simulation update rate or the number of robots in the simulation.
-
ROS2 node errors: Ensure you have sourced the workspace before running any commands:
source install/setup.bash
-
Missing Dependencies: Ensure all dependencies are installed with:
rosdep install --from-paths src -r -y