Repository Summary
Description | ROS2 Support for Unitree Go2 |
Checkout URI | https://github.com/eppl-erau-db/amigo_ros2.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-03-17 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
go2_bringup | 0.0.0 |
go2_control | 0.0.0 |
go2_description | 0.0.0 |
go2_driver | 0.0.0 |
go2_interfaces | 0.0.0 |
realsense2_camera | 4.51.1 |
realsense2_camera_msgs | 4.51.1 |
realsense2_description | 4.51.1 |
cyclonedds | 0.10.5 |
rmw_cyclonedds_cpp | 1.3.4 |
unitree_api | 0.0.0 |
unitree_go | 0.0.0 |
unitree_ros2_example | 0.0.0 |
README
AMIGO ROS2 Humble
AMIGO (Autonomous Machine for Inspecting Gas and Operations) is a ROS2 Humble-based robotic system developed by the Engineering Physics Propulsion Lab (EPPL) at Embry-Riddle Aeronautical University. Leavereging Unitree’s Go2 quadruped robot, AMIGO facilitates autonomous navigation and inspection tasks in complex industrial environments.
Requirements and Background
This repository contains all of the necessary software for running AMIGO, developed by EPPL. It is build off of ROS2 Humble, and uses various packages, cited at the end of this ReadMe.
To use this repository as is, you will need a Jetson device (preferably the AGX Orin) flashed with JetPack 6.1, a RealSense D435i or D455, an RPLiDAR A3, Internet connection, and accompanying mounting assembly. The CAD for the assembly can be downloaded here. This repo works completely off of a container (isaac_ros_dev-aarch64-container), and anything under the isaac ros workspace will be volumized, such that any data saved in the workspace will not be lost when the container is shut down.
For future work, we are looking to integrate Unitree’s LiDAR for localization, and deployment in 3D navigation.
Hardware Setup
- This is the current setup of our prototype:
- NOTE: If you want to change the position of any of the sensors, the robot URDF file (found here: ${ISAAC_ROS_WS}/src/go2_description/urdf/go2_nav2_nvblox.urdf) must be updated to match the position of the sensor in reference to base_link
- If you are using a Jetson AGX Orin you will need to step down the voltage to ~20V with a DC-to-DC Buck Converter that can provide atleast 5 amps as pictured below:
- Our current CAD also includes some room for a capture card to use the ZED X series camera this camera will soon be be integrated to add capabilities.
Initial Startup Procedure
Make sure that your jetson is flashed with JetPack 6.1 on SSD. Then follow setup instructions for jetson here, and the isaac-ros setup page instructions, stopping AFTER step 3 here.
Then, ensure that you have workspaces directory at the correct location and clone this repo:
mkdir -p ~/workspaces && \
cd ~/workspaces && \
git clone --recurse-submodules https://github.com/eppl-erau-db/amigo_ros2.git && \
git submodule update --init --recursive
Next, you need to add the shortcut of your workspace to the .bashrc for later usage:
echo "export ISAAC_ROS_WS=~/workspaces/amigo_ros2/isaac_ros-dev/" >> ~/.bashrc
source ~/.bashrc
Now, configuring the container to use realsense-ros:
cd ${ISAAC_ROS_WS}/src/isaac_ros_common/scripts && \
touch .isaac_ros_common-config && \
echo CONFIG_IMAGE_KEY=ros2_humble.realsense > .isaac_ros_common-config
After ensuring your realsense is plugged in to your Jetson device, you can build the image and start the container. This will take a long time.
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh -d ${ISAAC_ROS_WS}
Once in the container, source the setup script to install all required dependencies and packages.
cd ${ISAAC_ROS_WS} && \
chmod +x setup.bash && \
source ./setup.bash
Now, all ROS packages have been built and the container should be running correctly. You can move on to the next steps. If you would like to ensure the realsense is working (as it can sometimes be an issue), you can use the following command:
realsense-viewer
Post-Startup/Post-Reboot Procedure
Launch a Terminal
To open a terminal in the container:
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh -d ${ISAAC_ROS_WS}
Post-Reboot
If you have rebooted your device or closed down all container instances you will have to run the setup.bash again to install dependencies and give permissions for the devices and the navstack to work porperly.
cd ${ISAAC_ROS_WS} && \
chmod +x setup.bash && \
source ./setup.bash
- NOTE: you only have to run this setup.bash on the first terminal you open after rebooting, any other terminals you only need to source ROS2 and your workspace.
Source ROS2 and your workspace
You also need to source ROS2 and your workspace for every terminal
File truncated at 100 lines see the full file