ROSbot XL is a universal, ROS2-native autonomous mobile robot platform dedicated for R&D, rapid prototyping and custom robot development for indoor use cases.
If you don't have one, you can get it here.
What's in the box:
- ROSbot XL
- Wi-Fi 2.4GHz / 5GHz antenna
- USB-C charger
- Ethernet cable
Additionally, to launch a robot for the first time you will need:
- USB-HDMI cable, mouse and keyboard
Accessing ROSbot's Linux terminal
To perform the initial network configuration, you need to access ROSbot's Linux terminal first. There are two options:
Option 1: Using display, mouse and keyboard
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 in the rear panel of ROSbot.
- Turn on the robot and wait until it boots.
- Open Application Launcher (Husarion Logo in top-left corner) > System Tools > Terminator app.
ROSbot's graphical desktop environment requires about 3 minutes to start during first boot. The following ones require only about 1 minute after power on.
Option 2: Using an Ethernet adapter
Turn on the robot and wait until it boots.
Plug in one end of the Ethernet cable into your computer and another one to the adapter.
Set a static IP address on your computer for its Ethernet card in a
To connect with ROSbot via ssh, type in your terminal application:user@mylaptop:/home/user$
The default password for user
Connecting ROSbot XL to your Wi-Fi network
Find available Wi-Fi networks with this Linux command:
nmcli dev wifi
ROSbot XL is using netplan instead of graphical Wi-Fi manager. It allows you to have all physical network interfaces configured from a single text file.
To connect your ROSbot to a Wi-Fi network, edit
/etc/netplan/01-network-manager-all.yaml file, e.g. with
sudo nano /etc/netplan/01-network-manager-all.yaml
And modify lines 22-23 by replacing
"PLACE_YOUR_WIFI_SSID_HERE" with your SSID (Wi-Fi network name) and
"PLACE_YOUR_WIFI_PASSWORD_HERE" with your Wi-Fi password:
# standard Wi-Fi config (client)
# access point Wi-Fi config
# dhcp4: no
# dhcp6: no
# - 192.168.100.1/24
# band: 5GHz
# mode: "ap"
# password: "husarion"
then save the file (with ctrl+o if using nano), apply the new network setup:
sudo netplan apply
You can check to which Wi-Fi network your ROSbot is connected by using this command:
to find your IP address (for
wlan0 network interface). Save it for later.
OPTION 1: in a local network
While ROSbot is connected to a Wi-Fi network, you can access it by using its IPv4 address by SSH:
OPTION 2: over the Internet (VPN)
ROSbot ROS packages
At this stage you should have your ROSbot up and running, with remote (LAN or VPN) connection from your laptop.
Instead of installing ROSbot XL ROS package natively it is more convenient to use Docker images for that.
Pulling basic docker images for ROSbot
Access your ROSbot's terminal and run:
docker compose pull
To flash the right firmware, open ROSbot's terminal and execute one of the following command:
docker stop rosbot-xl microros || true && \
docker run --rm -it --privileged \
flash-firmware.py -p /dev/ttyUSB0
Running the ROSbot Docker image (host mode)
To launch basic ROSbot XL ROS 2 nodes, paste the following command in the ROSbot's terminal (depending on the OS images you use):
docker compose up -d
At this point, ROS nodes from the containers are available on the level of the host operating system.
To ensure that ROS topics are visible, restart the currently running ROS daemon:
ros2 daemon stop
Check available ROS topics:
ros2 topic list
Manual ROSbot driving with
Now launch a
teleop_twist_keyboard ROS node for manual ROSbot control:
ros2 run teleop_twist_keyboard teleop_twist_keyboard
After running the command, you will see the usage instruction:
Now you know how to access ROSbot XL ROS node from the Linux terminal.
Running ROS natively is fine for relatively small projects. For more complex ones, the full dockerized setup is a better approach.
Next demos start ROSbot's containers in different configuration, so remember to stop the basic setup at first:
docker compose down
Find available projects below:
|rosbot-xl-gamepad||Control the robot manually using a Logitech F710 gamepad|
|rosbot-xl-mapping||Create a map (using slam_toolbox) of the unknow environment with ROSbot controlled in LAN or over the Internet|
|rosbot-xl-navigation||Autonomous navigation (using navigation2) on a map created with the |