This repository includes packages for moonbot control and simulation development. Moonbot is the first model modular robot of the Moonshot project. The targets of this robot are self-reconfigurable and self-assembly abilities. We also aims to perform a simulation of moonbot tasks on the lunar surface simulation in Isaac sim. Please look into the repository and give us various recommendations for the furthur development.
- Ubuntu 22.04
- ros2-humble
- Installation of ros2-humblee: https://docs.ros.org/en/humble/Installation/Alternatives/Ubuntu-Development-Setup.html, and source the ros2 package in the terminal.
source /opt/ros/humble/setup.bash
- Install dependencies
sudo apt-get update
rosdep install --from-paths src --ignore-src -r -y
sudo apt-get install ros-$ROS_DISTRO-dynamixel-sdk*
sudo apt-get install ros-$ROS_DISTRO-dynamixel-workbench*
sudo apt-get install joystick
sudo apt-get install ros-humble-joy* ros-humble-teleop*
- Install program
cd ros2_ws/
colcon build --symlink-install
source install/setup.bash
To connect the moonbot and demonstrate the simple gait motion
- Simulation in Gazebo
## terminal 1
ros2 launch moonbot_gazebo spawn_moonbot.launch.py
## terminal 2: For walking demo
ros2 run moonbot_gazebo sim_pub.py
- Self-recognition test
## terminal 1: module detection
ros2 launch moonbot_control modular_detection.launch.py
## terminal 2: modular locomotion
ros2 run moonbot_control modular.py
- Separately connect to leg modules
## terminal 1
ros2 launch dynamixel_hardware LF.py
## terminal 2
ros2 laucnh dynamixel_hardware RF.py
## terminal 3
ros2 launch dynamixel_hardware LR.py
## terminal 4
ros2 launch dynamixel_hardware RR.py
## terminal 2
## For walking demo: CRAWL GAIT (default)
ros2 run moonbot_control real_pub.py
## terminal 2
## For walking demo: TROT GAIT
ros2 run moonbot_control real_pub.py --ros-args -p gait_type:="trot"
- URDF and mesh files for moonbot.
- RVIZ configuration.
- Launch file for visualizing the moonbot model in RVIZ
# For default model
ros2 launch moonbot_description urdf_visualize.launch.py
# For changing robot model
ros2 launch moonbot_description urdf_visualize urdf_file:=your_robot.urdf
- Model and world files for Gazebo simulation.
- Launch file to spawn robot in Gazebo
World files and robot model are also changable by the following commands
# For changing robot model
ros2 launch moonbot_gazebo spawn_moonbot.launch.py urdf_file:=your_robot.urdf
# For changing world file (The example for lunar surface map)
ros2 launch moonbot_gazebo spawn_moonbot.launch.py world_file_name:=moonbot_box.world
- custom msg and srv for ros2 communication in Moonbot
- Control scripts for moonbot's locomotion
- Modular connection scripts
- Launch files for loading ros2 _control and controllers
- Config files for ros2 controllers (for simulation)
- Package for the future work of implementation of depth camera on the Moonbot.
- ros2_control hardware interface for Dynamixels.
- Config files for controllers of each leg.
- Launch files to connect to the real robot
- Joy stick conteller configuration
- Launch file and script setting for Moonbot teleoperation.
Tharit Sinsunthorn
Danish AI
Pascal Pama
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.