This repository provides a comprehensive Gazebo simulation environment for the Unitree Go2 EDU quadruped robot and the Mycobot 320 M5 robotic arm. The simulation integrates ROS Navigation Stack for Go2 EDU's autonomous navigation and MoveIt! for Mycobot 320 M5's motion planning and control.
This repository provides a comprehensive Gazebo simulation environment for the Unitree Go2 EDU quadruped robot and the Mycobot 320 M5 robotic arm. The simulation integrates ROS Navigation Stack for Go2 EDU's autonomous navigation and MoveIt! for Mycobot 320 M5's motion planning and control. This setup is ideal for researchers and developers working on mobile manipulation, collaborative robotics, or multi-robot systems.
Ensure the following dependencies are installed:
- ROS Noetic: The primary ROS distribution used in this project.
- MoveIt!: For motion planning and control of the Mycobot 320 M5.
sudo apt-get install ros-noetic-moveit
- Gazebo: For simulation.
sudo apt-get install ros-noetic-gazebo-ros-pkgs
- Navigation Stack: For Go2 EDU's autonomous navigation.
sudo apt-get install ros-noetic-navigation
- Unitree ROS Packages: For Go2 EDU control and simulation.
sudo apt-get install ros-noetic-unitree-ros
The repository is organized as follows:
go2_mycobot_sim_2.0/
├── laser_filter/ # Laser filter configurations for Go2 EDU
├── config/ # Configuration files for navigation and simulation
├── launch/ # Launch files for Gazebo and ROS nodes
├── CMakeLists.txt # CMake configuration for the package
├── package.xml # Package manifest
├── mycobot_sim_3.0/ # Mycobot 320 M5 simulation package
│ ├── gazebo_camera_sim/ # Camera simulation for Mycobot
│ ├── mycobot_description/ # URDF and XACRO files for Mycobot
│ ├── mycobot_moveit_config/ # MoveIt! configuration for Mycobot
│ │ ├── config/ # MoveIt! configuration files
│ │ ├── launch/ # Launch files for MoveIt!
│ │ ├── setup_assistant/ # MoveIt! setup assistant files
│ │ ├── CMakeLists.txt # CMake configuration for MoveIt!
│ │ └── package.xml # Package manifest for MoveIt!
│ ├── mycobot_moveit_cpp_ctrl/ # C++ control scripts for Mycobot
│ │ ├── src/ # Source files for C++ control
│ │ ├── CMakeLists.txt # CMake configuration for C++ control
│ │ └── package.xml # Package manifest for C++ control
│ ├── mycobot_moveit_py_ctrl/ # Python control scripts for Mycobot
│ │ ├── mycobot_moveit_py_image_sub/ # Image processing for Mycobot
│ │ ├── mycobot_moveit_py_launch/ # Launch files for Python control
│ │ └── README # Documentation for Python control
├── command/ # Command scripts for simulation
├── unitree_sim/ # Unitree Go2 EDU simulation package
│ ├── unitree_guide/ # Go2 EDU control scripts
│ ├── unitree_legged_msgs/ # Custom messages for Go2 EDU
│ ├── unitree_ros/ # ROS integration for Go2 EDU
│ ├── README # Documentation for Go2 EDU simulation
│ └── LICENSE # License file for Go2 EDU simulation
└── README.md # Main README file
To run the simulation, follow these steps:
-
Launch Gazebo Simulation:
roslaunch mycobot_moveit_config demo_gazebo.launch
-
Switch to Superuser (if required):
sudo su
-
Source the Workspace:
source /home/u20/catkin_ws/devel/setup.bash
-
Start Go2 EDU Control:
rosrun unitree_guide junior_ctrl
-
Launch Navigation Stack:
roslaunch unitree_move_base rvizMoveBase.launch
-
Run Mycobot Motion Script:
rosrun mycobot_moveit_py_ctrl mycobot_moveit_py_search.py
- The
demo_gazebo.launch
file initializes the Gazebo environment, loading the Go2 EDU and Mycobot 320 M5 models. It also sets up the necessary ROS nodes for simulation.
- The
unitree_move_base
package provides the navigation stack for Go2 EDU, including AMCL for localization and move_base for path planning. ThervizMoveBase.launch
file visualizes the navigation process in RViz.
- The
mycobot_moveit_config
package contains the MoveIt! configuration for the Mycobot 320 M5. Themycobot_moveit_py_search.py
script controls the robotic arm's motion, utilizing MoveIt! for trajectory planning and execution.
- The Navigation Stack is used for autonomous path planning and obstacle avoidance. It includes AMCL for localization and move_base for global and local planning.
- MoveIt! is used for motion planning, inverse kinematics, and collision detection. The
mycobot_moveit_py_search.py
script controls the robotic arm's motion.
- The simulation environment integrates both Go2 EDU and Mycobot 320 M5, allowing for realistic co-simulation scenarios.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bugfix.
- Submit a pull request with a detailed description of your changes.
This project is licensed under the MIT License. See the LICENSE file for details.
For any questions or issues, please open an issue on the repository. Happy coding! 🚀