Skip to content

RB0609/Unitree_Go2_Edu

Repository files navigation

Autonomous indoor navigation for a quadruped robot using 3D LiDAR and RGB-D sensing

image

Watch this below video for Navigation

nav_10mb.mp4

ROS 2 System Architecture

go2_robot_FINAL

Features

  • Simulation in an indoor environment in Gazebo Harmonic
  • Navigation (using Nav2 Stack) from Point A to Point B, using "Nav2goal".
  • Controller plugin: dwb_core::DWBLocalPlanner (configured as FollowPath)
  • Plugin based on a Dynamic Window Approach (DWA) style algorithm.

Steps I have followed to achieve Navigation

  1. Took a pre-built indoor- environment from Fuel model available for Gazebo.
  2. Launched the robot and Indoor environment in Gazebo Harmonic.
  3. Made some necessary changes in the world for simulation ready.
  4. Built the map using slam toolbox.
  5. Launched Nav2_bringup with:
    (a) Map-server: loads my saved map.
    (b) amcl for localization on that map.
    (c) planner_server, controller_server, bt_navigator, etc. for navigation
    (d) rviz2 for visualization and setting goals using "Nav2goal".
    (e) Local & global costmaps configured in params_file.
    (f) Fine-tune few parameters in params_file in order to get good results.

Requirements

  • Ubuntu 24.04
  • ROS 2 Jazzy Jalisco
  • Gazebo Sim Harmonic

Installation

  1. Install ROS2 Dependencies
sudo apt update
sudo apt install ros-jazzy-gazebo-ros2-control
sudo apt install ros-jazzy-xacro
sudo apt install ros-jazzy-robot-localization
sudo apt install ros-jazzy-ros2-controllers
sudo apt install ros-jazzy-ros2-control
sudo apt install ros-jazzy-velodyne
sudo apt install ros-jazzy-velodyne-description
  1. Clone the Go2 Simulation package
cd ~/practice/src
git clone https://github.com/RB0609/Unitree_Go2_Edu.git
  1. Install the Dependencies
cd ~/practice
rosdep update
rosdep install --from-paths src --ignore-src -r -y
  1. Build the workspace
cd ~/practice
colcon build
source install/setup.bash
  1. Steps to launch the simulation file in Gazebo Harmonic and Rviz.
    Gazebo Harmonic Simulation:
 ros2 launch unitree_go2_sim unitree_go2_launch.py 

Steps to Perform Navigation

  1. Follow these before Performing the navigation.
    In go2_params.yaml file which is in scripts folder under unitree_go2_sim.
unitree_go2_sim/
└── scripts/
    └── go2_params.yaml
map_server:
  ros__parameters:
    use_sim_time: true
    yaml_filename: "<path_to_file location>/map.yaml" #Here choose your own folder, where you store "map.yaml" file
    #topic_name: "map"
    #frame_id: "map"

First launch this file in Terminal1:

ros2 launch nav2_bringup rviz_launch.py 

For below code, careful with file location
map:=<path_to_file_location>/map.yaml
params_file:=<path_to_file_location>/go2_params.yaml
below is the example usage
in Terminal2:

ros2 launch nav2_bringup bringup_launch.py   use_sim_time:=true   map:=/home/rakesh/map.yaml   params_file:=/home/rakesh/practice/src/unitree_go2_ros2/unitree_go2_sim/scripts/go2_params.yaml

Further work

  1. Working on ekf node
    (a) Fine-tuning the parameters for better result
    (b) Focusing on robot's state estimation
  2. Currently focusing on improvement of robot's gait
  3. Planning to perform Sim2Real with Unitree go2 Edu

References

For reference I used this github repo, unitree go2 edu simulation in Gazebo and Harmonic.

https://github.com/khaledgabr77/unitree_go2_ros2

For reference, in order to perform navigation of unitree go2 edu robot, I used the below repo as reference,

https://github.com/Sayantani-Bhattacharya/unitree_go2_nav

Here's the link for the Gazebo model

https://app.gazebosim.org/OpenRobotics/fuel/models/Depot

Nav2 stack doc

https://docs.nav2.org/index.html

About

This repo contains Autonomous Indoor Navigation of Unitree-Go2-Edu robot using Nav2 Stack.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published