Pre-requisite Software

The ROS driver for the robots is initially supported for the ROS Noetic. All of ROS related software should be installed either on remote PC/Rasberry Pi/Nvidia board on robot. The steps for shown below are for remote PC both boards usually come with pre-installed ROS distribution.


All the ROS related software should be installed/run on remote PC/Rasberry Pi/Nvidia board, nothing needed to be installed on robots control board.

[Ubuntu 20.04 - ROS NOETIC]


The ROS driver for the robots is initially supported for the ROS Noetic. All of ROS related software should be installed in a Remote-PC. The steps for shown below are for Remote-PC or bz1-PC.


Care should be taken when installing ROS so that it matches with your CPU’s architecture (i.e. armhf, amd64, arm6, etc.)

PC Setup

ROS Noetic installation requires Ubutnu 20.04.

  1. Download Ubuntu 20.04

  2. Follow the Ubuntu 20.04 Installation guide

ROS-noetic Installation

The ros driver provided can be run either on a remote PC or on board robot computer. Usually, the on-board computer already has pre-installed ROS distribution, so the instructions below will be applicable to a remote computer. You may run the following commands to install ROS noetic or you can simply follow the instructions from the roswiki.

  1. Enter the Ubuntu terminal and typie in the following command:

  1. The next step is setting up the source list:

sudo sh -c 'echo "deb $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
  1. After which you will set up the keys:

sudo apt install curl
curl -s | sudo apt-key add -
  1. Then, you will install ROS-noetic:

sudo apt update
sudo apt install ros-noetic-desktop-full
  1. Finally, you will add ROS environment to your bash file, what this means is that each time you load up your terminal, it will automatically find the built-in ROS packages.

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
  1. Install python dependencies and initialize repo:

sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
sudo rosdep init
rosdep update

Once the ROS packages are set-up the next step would be to set up a workspace in which you can add pre-built packages to control your robot.

Catkin Workspace

  1. The first step is to ensure that you have correctly setup you ROS noetic. It can be checked by:

cd ..
source /opt/ros/noetic/setup.bash
  1. Next, install catkin_tools:

sudo apt install python3-catkin-tools
  1. The next step is to create, your workspace. This is typically created in the home directory following the standard ROS convention, once built, you should see a build and devel folder next to your src folder:

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin build
  1. To enable the workspace, you must type in:

source devel/setup.bash
  1. To avoid typing this everytime you start a terminal, you’ll add this into the last line of the bashrc file:

gedit ~/.bashrc
  • Add the following line at the end of the bashrc file:

source /home/<your_computer_username>/catkin_ws/devel/setup.bash
  • Everytime you do a catkin build, it is necessary to either restart all your terminals, or source them.

  • To verify that everything is working correctly, type the following into the terminal:


BZ1 Installation


To acquire BZ1 package with installation script please email with your subject as BZ1 GitHub Access, your GitHub ID and your Invoice Name/ID.


Please follow the pre-requisite software section.

This driver requires a system setup with ROS. It is recommended to use Ubuntu 20.04 with ROS Noetic.

To make sure that robot control isn’t affected by system latencies, it is highly recommended to connect the robot via LAN of via 5G connection.


A script can be found below for automatic installation of all the required dependencies mentioned above and the provided software installation. After downloading and changing directory to the downloaded folder, installation script can be run by the following command:

You first have to give the script root permission via:

sudo chmod +x install.bash

Z1 Remote Enable/Disable

A final step that is required for control of Z1 via ROS moveit is to disable its startup job from the B1. This can be done by sshing into the B1 and following the provided commands:

ssh unitree@
cd Unitree/autostart
ls -la
nano # Comment or uncomment z1 in case you want to control it remotely or not