Skip to content

sljunkie/unitree_go2_nav

 
 

Repository files navigation

ROS2 Navigation for Unitree GO2.

Author: Sayantani Bhattacharya

This is a standalone package, that has code and launch files for manual navigation operation on Unitree GO2.

Using:

Features:

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.

Setup

  1. mkdir src && cd src
    git clone git@github.com:Sayantani-Bhattacharya/unitree_go2_nav.git
    cd unitree_go2_nav
    
  2. Pull the Unitree SDK Wrapper submodule.

    cd unitree_ros2       
    git clone git@github.com:Sayantani-Bhattacharya/unitree_ros2.git
    
  3. Follow the setup and build instructions mentioned in the unitree_ros2 package ReadMe. This will get you connected to the real Robot.

  4. cd ../
    source /opt/ros/jazzy/setup.bash
    colcon build
    source install/setup.bash
    

Directions:

  1. Complete the above setup.

  2. Verfiy that unitree topics are visible in your current workspace.

    ros2 topic list
    
  3. For mapping:

     ros2 launch unitree_go2_nav mapping.launch.py
    

    For the map to be generated initally, the robot needs to move a bit.

  4. For navigation and mapping:

    Terminal 1:

    ros2 launch unitree_go2_nav navigation.launch.py
    

    Terminal 2:

    cd unitree_ros
    source /opt/ros/jazzy/setup.bash
    source install/setup.bash
    ./install/unitree_ros2_example/bin/high_level_ctrl
    

    This 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.

Known issues, that I am currently working on:

  • Modifing the URDF joint states to make it similar to the real robot.

For developing autonomy packages with this as a base package:

Add this to your repository as a submodule

  git submodule add git@github.com: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

About

Navigation and SLAM package for Unitree GO2 using custom high level control over Unitree ROS2 SDK.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 66.6%
  • C++ 18.8%
  • CMake 14.6%