Quadruped A1 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.

  1. 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
  1. Create a new folder in your catkin workspace src folder named third_party:
cd ~/catkin_ws/src
mkdir third_party
cd third_party
  1. Clone the repository into utils:
git clone --recurse-submodules
  1. Create your workspace afterwhich you can start configuring the Ouster:
cd ..
catkin build
source devel/setup.bash
  1. 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.
  2. Next navigate to the utils (if the ouster pkg is provided by us) and in there open a terminal and run:
chmod +x
  1. 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 to Manual. In the Addressess, give the address as and the net mask as, and save. Then connect to this ip.
  • Verify that the computer is receiving data from ouster via:

    catkin build source devel/setup.bash

  1. 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"?>

<arg name="ouster_ns" default="ouster"/>
<arg name="sensor_hostname" default=""/>
<arg name="udp_dest" default=""/>
<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" />

  1. Verify installation via:
roslaunch ouster_ros ouster.launch viz:=true

ZED2 Installation

This procedure requires that the A1 has access to internet for initial installation if not done already.


  • Zed Camera
  • Internet connection
  • Access to the Nvidia onboard A1 (The connectors next to the A1’s head)


  1. Verify CUDA 10.2 is installed in the Nvidia Xavier Tegra board.
    • nvcc -V
  2. If not installed follow:

sudo mv /etc/apt/preferences.d/cuda-repository-pin-600


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/

sudo apt-get update

sudo apt-get -y install cuda
  1. 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
  2. Build the provided ZED ROS packages.
    • catkin build
  3. Verify installation by running
    • roslaunch zed_wrapper zed2.launch
    • roslaunch zed_display_rviz display_zed2.launch

Updating URDF

The robot’s upgradation also require the changes to be reflected in URDF. These changes can be made in qre_a1_description. The main to look at is xacro/accessories.xacro, here one can add joints, other xacro’s etc. Also make sure to add the respective ENVIRONMENT VARIABLES in config/robot/qre_a1 from which by enable or disable the link the changes in the final URDF can be shown.