ROSbot XL - quick start
ROSbot XL is an indoor mobile robot platform built for research, education, and application development. It has more payload capacity, a higher max speed, and better carrying ability than ROSbot 3, making it a solid base for a custom application. You can integrate different sensors and other equipment to tailor the platform to your project, or choose from pre-configured packages for specific applications such as indoor navigation and mobile manipulation.
The robot supports several computing platforms, including Raspberry Pi, NUC (Intel or ASUS), and NVIDIA Jetson Orin Nano, communicating over Ethernet with its built-in microcontroller running micro-ROS. Open-source ROS 2 drivers come preinstalled, so you can operate the robot right out of the box through a web interface or a gamepad.
This guide takes you from box to driving around in about 15-20 minutes:
- Unbox & power up: battery, antenna, and any sensors you want to mount.
- Access the robot: HDMI, Ethernet, or Wi-Fi, whichever's easiest for you.
- Get it on your Wi-Fi: a one-time wizard.
- Drive it: from your phone, a gamepad, or the terminal.
- π¦ Get a ROSbot XL
- π Read the full manual
This guide describes Husarion OS, the image shipped on ROSbot XL units (Raspberry Pi, Intel or ASUS NUC, or NVIDIA Jetson Orin Nano). ROSbot XL and ROSbot 3 now run from the same unified image and driver snap (rosbot); the robot variant and configuration package (basic, telepresence, autonomy, manipulation, manipulation-pro) are picked once, during production. It reflects image 2026.09.30; check what you're running from the banner shown right after you log in (the Version: line), or run:
echo $IMAGE_NAME
Most of this guide applies regardless of version; a few steps that changed recently are marked β οΈ since 2026.09.30. To pick up the latest image, see OS reinstallation.
Preparationβ
Unboxingβ
Recently, we replaced the carton box with a more durable plastic case.
What's in the box:
- ROSbot XL
- a gamepad
- a set of regular (pneumatic) wheels

And under the robot:
- a Wi-Fi 2.4GHz / 5GHz antenna(s)
- a USB-C charger with an AC cable
- an Ethernet cable
- two Allen keys: 2.5mm and 4mm
- a camera stand for mounting external cameras on the ROSbot.

Use a camera stand and Allen keys to assemble the LiDAR and camera, if you have them:

Connect Batteryβ
The robot is shipped with the battery disconnected.
You need to connect the battery before the first use:
- Use a 2.5mm Allen key to unscrew the battery cover located at the bottom of the ROSbot XL.
- Once opened, you will see a 4-pin white connector (plug) and a socket. Insert the plug into the socket.
- Install the battery cover back to its place.
The robot is now ready for the next steps.
Mount External Componentsβ
If you want to mount an external camera, LIDAR, or any other equipment on your ROSbot, first you need to run the cable through the robot's cover. The video below demonstrates how to do that.
Then, attach the equipment to the cover and plug it into the appropriate connector inside the robot.
Additional instructions on how to mount the manipulator can be found at the links below:
Access the Robotβ
For first-time setup, we recommend the HDMI tab: plug in a display, mouse, and keyboard. Once ROSbot is on your LAN, Ethernet/Wi-Fi (LAN) is the easiest way back in. Whichever way you connect, the login is husarion / husarion.
- HDMI
- Ethernet (static IP)
- Ethernet/Wi-Fi (LAN)
- Husarnet VPN
ROSbot is basically a computer running Ubuntu, so let's open it like a standard PC.
- Plug in a display with HDMI, mouse and keyboard into the USB port on the rear panel of the ROSbot.
- Turn on the robot and wait until it boots.
No network yet? Plug straight into a laptop and reach ROSbot at a fixed address; the ROSbot set includes a USB-Ethernet adapter for this.
-
Turn on the robot and wait until it boots.
-
Plug in the Ethernet adapter (included in a set) to a USB port on the rear panel of the ROSbot.
-
Plug one end of the Ethernet cable into your computer and another one to the adapter.
-
Connect over SSH:
user@mylaptop:/home/user$ssh husarion@192.168.77.2

Once ROSbot is on your network (over Wi-Fi, see Wi-Fi Setup below, or with its Ethernet port plugged into your router or switch), reach it by SSH using its IPv4 address or its mDNS hostname:
ssh husarion@<ROSBOT_IP>
# or
ssh husarion@rosbot-<SERIAL_NUMBER>.local
.local?.local (mDNS) works out of the box on macOS and Linux, and on Windows once Bonjour/mDNS support is installed. If it doesn't resolve on your network (e.g. a guest Wi-Fi that isolates clients), use the IP address instead. Check your router's DHCP client list, or the address shown when you first connected to Wi-Fi.
β οΈ Since 2026.09.30: ROSbot XL's mDNS record is a single, prioritized avahi record. Older images used a static management IP that could publish duplicate records and made .local resolution flaky; on those, prefer the IP address.
Need to reach the robot from outside your LAN? Set up Husarnet VPN: see the Husarnet VPN tab above, or the full VPN Access guide.
If LAN access is not enough, you can reach the ROSbot over the Internet using Husarnet VPN. It's already installed on the robot, so you only need to join ROSbot and your own computer to the same network.
Get a Join Code for your Husarnet network (see Find the Join Code), then join the robot to it:
sudo husarnet join <JOIN_CODE> rosbot
Install Husarnet on your own computer and join it to the same network:
curl -s https://install.husarnet.com/install.sh | sudo bash
sudo husarnet join <JOIN_CODE> mylaptop
From then on, ssh husarion@rosbot works from anywhere. Full walkthrough: VPN Access.
Wi-Fi Setupβ
It's worth connecting ROSbot to Wi-Fi at this point. Once it's online, you can leave the cable behind, and the rest of this guide (Cockpit, driving over the network, autonomous navigation) just works.
Right after logging in, you'll see a prompt asking to connect to Wi-Fi. Follow it:
- Confirm you want to connect (choose Yes).
- Wait a few seconds while it scans for nearby networks.
- Pick your network from the list and enter the password if asked.
- Once connected, the wizard shows the robot's IP address:

Operating the Robotβ
Start Driverβ
By default the robot driver is automatically launched during system boot. However, you can manually enable/disable the rosbot daemon.
sudo rosbot.start
# sudo rosbot.stop # to disable
Since the robot is sold in several configurations, the driver.configuration parameter selects which one is active. Available options are: basic, telepresence, autonomy, manipulation, manipulation-pro. Changing the configuration affects the robot's URDF and activates the manipulator driver.
Your robot's configuration was already picked during the factory setup wizard (husarion-config). To change it later, re-run the wizard rather than setting the snap parameter directly:
sudo husarion-config
Robot Controlβ
The robot is controlled by sending a cmd_vel topic with information about the desired speed. This can be done in many ways, including:
- WebUI
- Teleop
- Gamepad
- Autonomous (Nav2)
The web-based user interface is Husarion Cockpit, ready to use out-of-the-box. Open the following URL in your web browser:
http://<ROSBOT_IP> or http://rosbot-<SERIAL_NUMBER>.local
Start with http://. It opens straight away, with no browser warnings.
The same Cockpit also works over https:// (for example https://rosbot-<SERIAL_NUMBER>.local). Over https, your computer's graphics hardware can decode the camera video, so the robot sends a much lighter video stream and uses less of your Wi-Fi. The downside is that the robot signs its own security certificate, so your browser shows a security warning that you have to accept to continue. The warning comes back from time to time, usually after a few hours.
Which one to use:
- http: everyday use, the quickest way in.
- https: when the camera picture is choppy or the Wi-Fi is weak or busy, or when Cockpit shows a link to https instead of the camera picture (some camera modes only work over https).
If logging in over https suddenly stops working, switch back to the http address.
Log in with the default credentials husarion / husarion.

Manual ROSbot driving with teleop_twist_keyboard.
# For Jazzy
ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -p stamped:=true
# For Humble
ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -p stamped:=false
After running the command, you will see the usage instruction:

You can launch the teleop node even simpler, directly from the rosbot snap:
rosbot.teleop
You can control ROSbot without coding by using a Logitech F710 gamepad (not included in the standard set).
To get started:
- Connect the USB dongle to a USB-A port on the ROSbotβs rear panel.
- Set the mode switch on the gamepad to X.
- Hold down the LB button (dead man switch) and use the control sticks to drive the robot.
Autonomous mapping and navigation (Nav2 + SLAM Toolbox) are built into the rosbot snap, with no separate install:
sudo rosbot.navigation-start
sudo rosbot.navigation-goal 2.0 0.5 # if the path is possible, the robot will drive 2m forward and 0.5m to the left
# sudo rosbot.navigation-stop # to disable
If your LiDAR isn't already mounted in the URDF (it is if your unit was factory-configured as autonomy), set it with sudo husarion-config first; see Change configuration above.
See ROSbot XL with OpenMANIPULATOR-X for all controlling capabilities.
Robot Managementβ
Husarion Cockpit's Manage tab is the primary way to change the robot's ROS 2 configuration (domain ID, namespace, RMW implementation, DDS/Zenoh profiles) from the same address as above.

ROS 2 Interfaceβ
The ROS 2 driver is already launched on the system. You can find the available ROS 2 topics with:
ros2 topic list

By default, all topics live under a per-unit namespace /rosbot_<SERIAL_NUMBER>/... rather than flat at the root; this keeps multiple robots on the same network from colliding. Change it from Robot Management above.
For more info about topics, check the ROS 2 API. Want to modify the driver itself? The source is on GitHub: rosbot_ros.
Helpful Resourcesβ
ROS 2 Tutorialsβ
Our ROS 2 tutorials were initially created for ROSbot 2 that had Orbbec Astra camera instead of Luxonis OAK-D like in ROSbot 3. ROS 2 camera topics will have different names
ROS 2 (Robot Operating System 2) provides libraries and tools to help software developers create robotic applications. We've put together a series of ROS 2 Tutorials dedicated for this platform that serve as a practical introduction to ROS 2. You can run them on any of our ROSbots, either on a physical robot or in the simulation environment. These step-by-step guides are tailored to accommodate both beginners embarking on their ROS 2 journey and experienced users looking to deepen their understanding of robot navigation.
Snap Cheatsheetβ
ROSbot operates on Ubuntu 24.04 with ROS 2 Jazzy preinstalled. Three snaps come preinstalled: rosbot (the driver), husarion-depthai (camera), and husarion-rplidar (LiDAR); browse them on the Snapcraft Store. Husarion Cockpit is not a snap: it's a Docker Compose bundle at /opt/husarion-rosbot/, managed with docker compose rather than snap.
Whether husarion-rplidar or husarion-depthai actually starts at boot depends on your configuration package: autonomy and the manipulation packages enable the LiDAR, basic doesn't. Check what's currently running with snap services.
Stopping a sensor's snap frees up the CPU and USB bandwidth it was using, which helps if you don't need that sensor right now:
sudo husarion-depthai.stop
sudo husarion-rplidar.stop
# ...and to bring them back:
sudo husarion-depthai.start
sudo husarion-rplidar.start
The driver itself works the same way (sudo rosbot.start / sudo rosbot.stop, see Start Driver above).