Setting up your Workstation

Important

This documentation assumes you are setting up a workstation for our newest generation, the Magni Gen 6 robots, built on ROS 2.

To set up a workstation for older generation robots built on ROS, please refer to our Legacy Documentation.

What is a Workstation?

A workstation is a computer (desktop, laptop, or virtual machine) set up to connect and interact with our robots. It runs the same operating system as the robot, allowing you to:

  • Monitor ROS 2 topics and system status.

  • Visualize sensor data and robot perception (e.g. using RViz).

  • Send commands to the robot.

  • Offload heavy data processing to more powerful hardware.

  • Run tools such as rqt_plot for PID tuning or image_view for camera streams.

  • Launch simulations (Magni Robot Simulation).

In short, the workstation is your main interface for programming, debugging, and testing robotic applications.

Requirements for a Workstation

To work with our robots, a ROS 2-compatible workstation is required. We recommend:

  • Operating System: Ubuntu 24.04 LTS

  • ROS 2 Distribution: Jazzy (officially supported)

Other ROS 2 versions may work with adjustments, but only Jazzy is guaranteed to function out of the box with our robots.

Setting up the Desktop Workstation

Note

This section assumes that you are already following the Requirements for a Workstation section.

We will not cover how to install Ubuntu 24.04 itself, since there are many good guides available. Instead, here are some useful resources:

Once Ubuntu 24.04 is installed and configured, you can proceed with setting up ROS 2 Jazzy. We recommend following the official ROS 2 installation guide:

This will walk you through the step-by-step installation process.

Setting up a Virtual Machine

Note

A guide for running a virtual machine setup will be provided soon.

Testing the connection

Note

This section assumes that you already have Ubuntu 24.04 and ROS 2 Jazzy installed on your workstation.

Testing Ubuntu Installation

To check your Ubuntu version, run:

lsb_release -a

You should see output confirming you are running Ubuntu 24.04 LTS.

Something like this:

No LSB modules are available.
Distributor ID:     Ubuntu
Description:        Ubuntu 24.04.2 LTS
Release:    24.04
Codename:   noble

Testing ROS 2 Installation

To verify ROS 2 is installed correctly and check its version, run:

which ros2

You should see something like:

/opt/ros/jazzy/bin/ros2

Testing Connection to the Robot

Note

This section assumes you have already received your robot. If you are still waiting, you can skip this section until your robot arrives.

Once Ubuntu and ROS 2 are confirmed working, you can test the connection to your robot. First, follow the connection guide: Connecting to the Robot.

After connecting, list the active ROS 2 topics:

ros2 topic list

You should see something like this:

/action_info
/battery_state
/buzz
/camera/image_raw/compressed
/client_count
/cmd_vel
/connected_clients
/continue_clicked
/curr_route
/curve

Note

The actual list of topics may be much longer than the examples shown here. The goal is simply to confirm that your workstation is correctly connected to the robot and able to see ROS 2 topics.

If you see a list of topics, your workstation is successfully connected and ready to use.

Zenoh Setup

Zenoh is a communication middleware that enables efficient data exchange between distributed systems, such as your workstation and robot. It is particularly useful for robotics because it handles unstable network connections (like Wi-Fi) much better than the default ROS 2 middleware.

Installation Prerequisites

Ensure the Zenoh RMW is installed on your workstation.

sudo apt update
sudo apt install ros-jazzy-rmw-zenoh-cpp -y

Note

Ensure your workstation and the robot are running the same version of ros-jazzy-rmw-zenoh-cpp.

Establishing the Connection

To connect your workstation to the robot, you will manually configure the ROS 2 environment in your terminal to act as a Zenoh Client.

Step 1: Prepare the Robot

SSH into your robot following the Connecting to the Robot guide and ensure the Zenoh Router is running. This acts as the bridge for your connection.

Verify the Router is Running: Open a new terminal window on the robot (SSH in again) and run:

pgrep -a zenoh

You should see output similar to [PID] rmw_zenohd. If you see nothing, the router is not running.

Step 2: Configure Workstation Terminal

Open a new terminal on your computer. Run the following commands to configure this specific terminal session to connect to the robot.

Important

The ROS_DOMAIN_ID on your workstation must match the one set on the robot (the default is 0). If they do not match, the workstation will not see any topics even if the Zenoh connection is established.

# 1. Select Zenoh as the middleware
export RMW_IMPLEMENTATION=rmw_zenoh_cpp

# 2. Set the Domain ID (Must match the robot)
export ROS_DOMAIN_ID=0

# 3. Disable local multicast (forces direct connection)
export ZENOH_SCOUT_MULTICAST_ENABLED=false

# 4. Configure the connection to the robot (Replace <ROBOT_IP>)
export ZENOH_CONFIG_OVERRIDE='mode="client";connect/endpoints=["tcp/<ROBOT_IP>:7447"]'

Step 3: Verify Connection

Once connected, you can run standard ROS2 tools from your workstation.

Keyboard Teleoperation

To drive the robot using your keyboard:

ros2 run teleop_twist_keyboard teleop_twist_keyboard
Visualization and Plotting

To view sensor data:

rviz2

Disconecting

To return your terminal to its default local state, simply close the terminal window or unset the configuration variables:

unset RMW_IMPLEMENTATION
unset ZENOH_SCOUT_MULTICAST_ENABLED
unset ZENOH_CONFIG_OVERRIDE

Next Steps

Now that your workstation is set up, you can continue in one of two ways:

  • If you are still waiting for your robot, try out the Magni Robot Simulation to get familiar with the system.

  • If you already have a robot, follow the guide Connecting to the Robot to connect to the robot and start driving it.