Skip to content

Commit

Permalink
sync master readme with dev
Browse files Browse the repository at this point in the history
  • Loading branch information
abizovnuralem committed Mar 16, 2024
1 parent e15b005 commit a01e14a
Showing 1 changed file with 44 additions and 47 deletions.
91 changes: 44 additions & 47 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,22 @@ We are delighted to present you with our integration of the Unitree Go2 ROS2 SDK

This resourceful project is here to empower your Unitree GO2 AIR/PRO/EDU robots with ROS2 SDK capabilities. We're thrilled to offer an enhanced level of control and interaction, enabling you to take your robotics projects to new heights.

## Project RoadMap:
1. URDF :white_check_mark:
2. Joint states sync in real time :white_check_mark:
3. IMU sync in real time :white_check_mark:
4. Joystick control in real time :white_check_mark:
6. Go2 topics info in real time :white_check_mark:
7. Foot force sensors info in real time :white_check_mark:
8. Lidar stream (added pointCloud2) :white_check_mark:
9. Camera stream :white_check_mark:
10. Foxglove bridge :white_check_mark:
11. Laser Scan :white_check_mark:
12. SLAM (slam_toolbox) :white_check_mark:
13. Navigation (nav2) :white_check_mark:
14. Object detection
15. AutoPilot

## Exciting Features:

:sparkles: Full ROS2 SDK support for your Unitree GO2
Expand All @@ -14,13 +30,6 @@ This resourceful project is here to empower your Unitree GO2 AIR/PRO/EDU robots

:footprints: Access to foot force sensors feedback (available on GO2 PRO/EDU)

## Your feedback and support mean the world to us.

If you're as enthusiastic about this project as we are, please consider giving it a :star: star on our GitHub repository.

Your encouragement fuels our passion and helps us develop our RoadMap further. We welcome any help or suggestions you can offer!

Together, let's push the boundaries of what's possible with the Unitree Go2 and ROS2!

Real time Go2 Air/PRO/EDU joints sync:

Expand All @@ -30,7 +39,6 @@ Real time Go2 Air/PRO/EDU joints sync:

Go2 Air/PRO/EDU lidar point cloud:


<p align="center">
<img width="1280" height="640" src="https://github.com/abizovnuralem/go2_ros2_sdk/blob/master/go2_lidar_3.gif?raw=true" alt='Go2 point cloud'>
</p>
Expand All @@ -39,27 +47,9 @@ Go2 Air/PRO/EDU lidar point cloud:
<img width="1280" height="640" src="https://github.com/abizovnuralem/go2_ros2_sdk/assets/33475993/9c1c3826-f875-4da1-a650-747044e748e1" alt='Go2 point cloud'>
</p>


## Project RoadMap:
1. URDF :white_check_mark:
2. Joint states sync in real time :white_check_mark:
3. IMU sync in real time :white_check_mark:
4. Joystick control in real time :white_check_mark:
6. Go2 topics info in real time :white_check_mark:
7. Foot force sensors info in real time :white_check_mark:
8. Lidar stream (added pointCloud2) :white_check_mark:
9. Camera stream :white_check_mark:
10. Foxglove bridge :white_check_mark:
11. Laser Scan :white_check_mark:
12. SLAM (slam_toolbox) :white_check_mark:
13. Navigation (nav2) :white_check_mark:
14. Object detection
15. AutoPilot

## Topic
Real time Go2 Air/PRO ROS2 topics


<p align="left">
<img width="731" height="383" src="https://github.com/abizovnuralem/go2_ros2_sdk/assets/33475993/4d36c2c0-bd21-4af7-925e-b8fd6db68e61" alt='Go2 topic list'>
</p>
Expand All @@ -68,14 +58,13 @@ Real time Go2 Air/PRO ROS2 topics
<img width="446" height="1045" src="https://github.com/abizovnuralem/go2_ros2_sdk/assets/33475993/671af655-877b-4f36-89d3-91730674526d" alt='Go2 topic list'>
</p>


## System requirements
Tested systems and ROS2 distro
|systems|ROS2 distro|Build status
|--|--|--|
|Ubuntu 22.04|iron|![ROS2 CI](https://github.com/abizovnuralem/go2_ros2_sdk/actions/workflows/ros_build.yaml/badge.svg)
|Ubuntu 22.04|humble|![ROS2 CI](https://github.com/abizovnuralem/go2_ros2_sdk/actions/workflows/ros_build.yaml/badge.svg)
|Ubuntu 20.04|rolling|![ROS2 CI](https://github.com/abizovnuralem/go2_ros2_sdk/actions/workflows/ros_build.yaml/badge.svg)
|Ubuntu 22.04|rolling|![ROS2 CI](https://github.com/abizovnuralem/go2_ros2_sdk/actions/workflows/ros_build.yaml/badge.svg)

A single workspace can contain as many packages as you want, each in their own folder. You can also have packages of different build types in one workspace (CMake, Python, etc.). You cannot have nested packages.

Expand All @@ -100,25 +89,19 @@ workspace_folder/
py_package_2/
```

clone this repo to src folder of your own ros2_ws repo

first, you need to manualy compile your opencv-python to support gstreamer (remove current opencv-python version)
install gstreamer in ubuntu

```
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio libwebsocketpp-dev libasio-dev
```
you need to manualy compile your opencv-python to support gstreamer (remove current opencv-python version)

```
pip uninstall opencv-python
sudo apt-get install --quiet -y --no-install-recommends \
gstreamer1.0-gl \
gstreamer1.0-opencv \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-ugly \
gstreamer1.0-tools \
libgstreamer-plugins-base1.0-dev \
libgstreamer1.0-0 \
libgstreamer1.0-dev \
libgstreamer1.0-0
# Install minimal prerequisites (Ubuntu 18.04 as reference)
sudo apt update && sudo apt install -y cmake g++ wget unzip
Expand All @@ -135,16 +118,19 @@ cmake ../opencv-4.x
# Build
cmake --build .
```
# Install
sudo make install
```

clone this repo to src folder of your own ros2_ws repo

```
git clone https://github.com/abizovnuralem/go2_ros2_sdk.git
cd go2_ros2_sdk
sudo apt install python3-pip
pip install -r requirements.txt
sudo apt install ros-{ROS2_VER}-test-msgs
sudo apt install ros-{ROS2_VER}-tf2-sensor-msgs
cd ..
mkdir -p ros2_ws/src
copy all files inside go2_ros2_sdk folder to ros2_ws/src folder
Expand All @@ -157,7 +143,12 @@ cargo should work in terminal
cargo --version
```

build it
Build it

You need to install ros2 and rosdep package first.

https://docs.ros.org/en/humble/Installation.html


```
source /opt/ros/$ROS_DISTRO/setup.bash
Expand All @@ -176,7 +167,6 @@ source install/setup.bash
ros2 launch go2_robot_sdk robot.launch.py
```


## Foxglove

<p align="center">
Expand All @@ -202,11 +192,18 @@ sudo snap install foxglove-studio

To contribute or modify the project, refer to these resources for implementing additional features or improving the existing codebase. PRs are welcome!

## Your feedback and support mean the world to us.

If you're as enthusiastic about this project as we are, please consider giving it a :star: star on our GitHub repository.

Your encouragement fuels our passion and helps us develop our RoadMap further. We welcome any help or suggestions you can offer!

Together, let's push the boundaries of what's possible with the Unitree Go2 and ROS2!

## Thanks
Special thanks to @legion1581, @tfoldi, @budavariam, @alex.lin and TheRoboVerse community!

Special thanks to @legion1581, @tfoldi, @budavariam, @alex.lin and TheRoboVerse community!

## License

This project is licensed under the BSD 2-clause License - see the [LICENSE](https://github.com/abizovnuralem/go2_ros2_sdk/blob/master/LICENSE) file for details.
This project is licensed under the BSD 2-clause License - see the [LICENSE](https://github.com/abizovnuralem/go2_ros2_sdk/blob/master/LICENSE) file for details.

0 comments on commit a01e14a

Please sign in to comment.