A modular robotics project designed for ROS 2 Humble, integrating multi-robot coordination, real-time 3D mapping, task allocation using reinforcement learning, and natural language processing via OpenAIβs LLMs.
/robo
βββ src
βββ ros2_learners
βββ llm # LLM interface for natural language processing
βββ log # Log storage
βββ logs # Real-time logging (object & bot positions, task assignment)
βββ my_robot_controller # Swarm RL implementation (TD3, etc.)
βββ navigation_tb3 # Navigation and control packages
βββ nodes # General ROS 2 nodes
βββ pc # Real-time logging utilities
βββ point_cloud_perception # Real-time 3D mapping with RTAB-Map
βββ resources # Resource files
βββ robot_math # Utility math functions
βββ TaskAllocation # DQN-based task assignment logic
βββ transforms # TF2 frame utilities
βββ turtlebot3_gazebo # Robot models, world files, launch files
- OS: Ubuntu 22.04
- ROS 2: Humble Hawksbill
- Python: 3.10.12
- ROS 2 Gazebo Packages
- Xacro
- Gazebo Classic
- PyTorch 2.3.1
- TensorFlow 2.15.0
- Numpy 1.21.5
- Matplotlib 3.5.1
- TensorBoard
- OpenAI 0.28
source /opt/ros/humble/setup.bashlsb_release -asudo apt install ros-humble-gazebo-ros-pkgs ros-humble-gazebo-ros2-controlsudo apt install ros-humble-xacrocd roborosdep init
rosdep update
rosdep install -i --from-path src --rosdistro humble -ycolcon buildsource install/setup.bashexport TURTLEBOT3_MODEL=waffleros2 launch turtlebot3_gazebo turtlebot3_world.launch.pycd robo
source install/setup.bash
# Replace {N} with bot number, e.g., 5
ros2 launch point_cloud_perception 3d_depth_mapping_rtab{N}.launch.py- Create an API key from OpenAI API Keys
- Create a file named
api_key.txtinside thellm/folder - Paste the secret API key into the file
pip install openai==0.28cd ~/robo/src/ros2_learners/TaskAllocation/
python3 script.pypython3 TaskAllocationNode.pycd ~/robo/src/ros2_learners/pc/pc/
python3 list1.pypython3 match.pycd ~/robo/src/ros2_learners/my_robot_controller/my_robot_controller/td3/
python3 test_copy.pypython3 train.pycd ~/robo/src/ros2_learners/llm
python3 scripts/run_llm.py