Augmentations¶
Quadruped GO1 can be upgraded with different sensros and some other accessories. These upgradations require some modifications in the robot software which is detailed below.
Ouster Installation¶
For the ouster attachment, the following package has to be installed in the current workspace. The following tutorial can be followed or the provided description.
Note: This tutorial is to only be followed if the ouster software is not already pre-installed.
Install dependencies:
sudo apt install -y build-essential libeigen3-dev libjsoncpp-dev cmake
sudo apt install -y ros-$ROS_DISTRO-pcl-ros ros-$ROS_DISTRO-rviz ros-$ROS_DISTRO-tf2-geometry-msgs
Create a new folder in your catkin workspace
src
folder namedthird_party
:
cd ~/catkin_ws/src
mkdir third_party
cd third_party
Clone the repository into
utils
:
git clone --recurse-submodules https://github.com/ouster-lidar/ouster-ros.git
Create your workspace afterwhich you can start configuring the Ouster:
cd ..
catkin build
source devel/setup.bash
Connect the ouster with an ethernet cable, and follow the instructions provided in the software user manual chapter 2.
It may take ~5 mins for it to be detected.
Next navigate to the
utils
(if the ouster pkg is provided by us) and in there open a terminal and run:
chmod +x set_static_ip.py
python3 set_static_ip.py
Then make open up your ethernet connection that is in the settings and add a new connection. Give your desired name and then navigate to the
IPv4
tab. In it change the connection toManual
. In theAddressess
, give the address as192.168.123.2
and the net mask as255.255.255.0
, and save. Then connect to this ip.
Verify that the computer is receiving data from ouster via:
catkin build source devel/setup.bash
Add a new launch file called
ouster.launch
to the ouster-ros package in the launch directory, and configure the Lidar to your IP and your specifications:
<?xml version="1.0"?>
<launch>
<arg name="ouster_ns" default="ouster"/>
<arg name="sensor_hostname" default="192.168.123.35"/>
<arg name="udp_dest" default="192.168.123.6"/>
<arg name="lidar_port" default="46481"/>
<arg name="imu_port" default="45352"/>
<arg name="udp_profile_lidar" default=""/>
<arg name="lidar_mode" default="512x10" />
<arg name="timestamp_mode" default="TIME_FROM_ROS_TIME"/>
<arg name="metadata" default=""/>
<arg name="viz" default="false"/>
<arg name="rviz_config" default="$(find ouster_ros)/config/viz.rviz"/>
<arg name="tf_prefix" default=""/>
<include file="$(find ouster_ros)/launch/sensor.launch" pass_all_args="true"/>
<node pkg="tf" type="static_transform_publisher" name="lidar_to_robot" args="0 0 0.55 0 0 0 /base /os_sensor 100" />
</launch>
Verify installation via:
roslaunch ouster_ros ouster.launch viz:=true
ZED2 Installation¶
This procedure requires that the GO1 has access to internet for initial installation if not done already.
Requirements¶
Zed Camera
Internet connection
Access to the Nvidia onboard GO1 (The connectors next to the GO1’s head)
Procedure¶
Verify CUDA 10.2 is installed in the Nvidia Xavier Tegra board.
nvcc -V
If not installed follow:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda-repo-ubuntu1804-11-6-local_11.6.0-510.39.01-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1804-11-6-local_11.6.0-510.39.01-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu1804-11-6-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda
Install from the provided QRE package, alternatively you may get the latest version and install from ZED SDK
Make sure the Ubuntu version is the 18.04, the CUDA is 10.2, and the Nvidia Xavier SDK is selected for your download
Build the provided ZED ROS packages.
catkin build
Verify installation by running
roslaunch zed_wrapper zed2.launch
roslaunch zed_display_rviz display_zed2.launch
Python3 (ROS-Melodic)¶
The buildfarm’s binary packages are designed for Python 2 and ROS Melodic. Python 3 is not supported by Melodic and is not recommended. ROS Noetic Ninjemys is the first ROS 1 version with formal support for Python 3. However, if unavoidable, there are a few ways to use Python 3 with ROS Melodic.
Option:1 Source Build¶
The first method to run python3 is to build ROS-Melodic from source and configuring for Python3, however, one loses the ability to use melodic’s build farm to automatically install packages.
Note
A guide is available on python3_source_build.
Option:2 Virtual Environment¶
Option 2 is to use catkin’s virtual environment to run ros-melodic with python3
Note
The package and readme is available on ‘roswiki catkin_virtualenv’.
Option:3 Partial Build¶
Option 3 is to use partially build ros-melodic and then integrate it with python3
Note
A blog explains how to do this python3_partial_build.
Option:4 Custom ROSPY¶
Option 4 is to use a customized rospy that works with both python2 and python3
Note
The package for it is here rospypi_simple.