Author: Sayantani Bhattacharya
This is a standalone package, that has code and launch files for manual navigation operation on Unitree GO2.
Using:
- Unitree Go2 in high level mode wrapper over Unitree's SDK
- ROS2 Jazzy
- RTAB-Map
- Nav2 stack.
Package Name: unitree_go2_nav
- Transform publishers.
- Robot State publishers.
- Rtabmap pkgs generating odom tf and occupancy grid using GO2's 4d Lidar.
- Rviz visulaizations with modified URDF.
- Nav-to-pose to enable high level control with the GO2's APIs.
- Nav2 based manual goal subscription.
-
mkdir src && cd src git clone [email protected]:Sayantani-Bhattacharya/unitree_go2_nav.git cd unitree_go2_nav -
Pull the Unitree SDK Wrapper submodule.
cd unitree_ros2 git clone [email protected]:Sayantani-Bhattacharya/unitree_ros2.git -
Follow the setup and build instructions mentioned in the unitree_ros2 package ReadMe. This will get you connected to the real Robot.
-
cd ../ source /opt/ros/jazzy/setup.bash colcon build source install/setup.bash
-
Complete the above setup.
-
Verfiy that unitree topics are visible in your current workspace.
ros2 topic list -
For mapping:
ros2 launch unitree_go2_nav mapping.launch.pyFor the map to be generated initally, the robot needs to move a bit.
-
For navigation and mapping:
Terminal 1:ros2 launch unitree_go2_nav navigation.launch.pyTerminal 2:
cd unitree_ros source /opt/ros/jazzy/setup.bash source install/setup.bash ./install/unitree_ros2_example/bin/high_level_ctrlThis will start Rviz, where you can use the 2D goal pose UI button to give GO2 commands. Or, you can publish ros2 topic as well.
- Modifing the URDF joint states to make it similar to the real robot.
Add this to your repository as a submodule
git submodule add [email protected]:Sayantani-Bhattacharya/unitree_go2_nav.git
git submodule update --init --recursive
git commit -m "Added submodule unitree_go2_nav"
git push origin main
For reference: https://github.com/Sayantani-Bhattacharya/Multi-Hetero-Agent-Exploration-on-UnitreeGOs/tree/go2_auto_nav