Skip to main content

ROSbot XL

Overview

ROSbot XL is a 4x4 drive autonomous mobile robot platform equipped with LIDAR, RGB-D camera, IMU, encoders, etc. Powered by ROS.

ROSbot is an affordable robot platform for rapid development of autonomous robots. It can be a base for custom service robots, inspection robots and robots working in swarms.

  • Aluminium chassis
  • 4 x DC motors + quadrature encoders
  • IMU
  • Built-in USB hub
  • Built-in Li-Ion 3S battery (11,1V 7800mAh 86Wh)
  • Power board with advanced energy management (USB-C Power Delivery compatible, protection circuits, contactless charging option)
  • Selectable power for SBC supply (5V, 12V, 19V)
  • Programmable perimeter LEDs, speaker
  • Ethernet based communication between SBC and STM32F4 based digital controller
  • Variety of compatible SBC (Raspberry Pi, NVIDIA Jetson)
  • Universal mounting plate (for LIDARs, robot arms etc.)

Hardware guide

Specification

AttributeDescription
Dimensions without camera and LiDAR330 x 280 x 135,5 mm / 12,6 x 11 x 5,3in [L x W x H]
Chassis materialPowder-coated aluminum plate, 1,5mm thick, top plate 3mm
Maximum translational velocity0,8 m/s
Maximum rotational velocity180 deg/s (3,14 rad/s)
Maximum load capacityUp to 10kg / 352oz*
Battery life2h - 6h

*Applicable with mecanum wheels

Components

ComponentQuantityDescription
Digital Board1Real-time controller based on STM32F407 microcontroller.
Power Board1USB-C Power Delivery input (12-19V) which supports simultaneous power delivery and battery charging.
DC motor437mm DC motor with 50:1 gearbox and 64CPR encoder
IMU sensor1Intelligent 9-axis absolute orientation sensor BNO055, more details
LIDAR1RPLIDAR S1, 360 degree and up to 40m range, more details
RGBD camera1Orbbec Astra with RGB image size 640x480 and depth image size 640x480.
Li-Ion Batteries111,1V 7800mAh 86Wh
Antenna1Connected directly to Wi-Fi module.

Block diagram

Architekture diagram

Rear panel description

Rear panel description

ComponentQuantityDescription
Antenna connector1Wi-Fi antenna RP-SMA socket. Required for Wi-Fi connectivity.
USB2USB 2.0 host ports from SBC.
HDMI1HDMI output from SBC.
Power button1Turns ROSbot ON or OFF. Hold for 1,5 seconds to turn robot on, 0,5 seconds to turn off.
LEDs4LED1(green), LED2(red), LED3(green), LED4(red)
DB Reset1Button used for reset digital board.
PB Reset1Hidden button used for reset power board.
User button1Programmable button.
USB type C power input1USB-C Power Delivery input (12-19V) which supports simultaneous power delivery and battery charging.

CAD models

To facilitate the work with the project based on ROSbot XL platform, we have prepared CAD models for download in two extension formats:

Power supply & charging

ROSbot XL can be powered from internal Li-Ion battery or external power adapter. The adapter must be compatible with Power Delivery and the supported voltage is 12, 15 or 19V. We strongly recommend to use the power adapter delivered with the robot.

There are 4 possible modes of operation:

  • a) Active, battery only.
  • b) Active, battery + power adapter. In this mode the robot can be used and charged simultaneously. The battery is used only when the robot current consumption exceeds the power adapter maximum current.
  • c) Inactive (powered off), battery only. Robot in this state does not draw current from battery and can remain in this state for weeks. The battery state should be checked every 6-8 weeks and recharged if the battery level is below 25%. For a prolonged storage, the best battery level is 40-50%.
  • d) Inactive, battery + power adapter. In this state the battery charges with the maximum speed. Robot can be switched on at any time, with transition to mode "b)".

The battery charging process should take about 5-6 hours in d) mode (from 0% to 100%).

Software

ROS / ROS 2 packages and Docker containers

All software on ROSbot XL are based on docker containers. List of avaliable containers you can find here.

Micro-ROS based firmware for the digital board (STM32F4 microcntroller)

ROSbot XL digital board firmware sources are not released yet. Instruction how to flash the firmware is available here: https://github.com/husarion/rosbot_xl_ros#flashing-the-firmware-on-stm32

Block diagram of the digitial board firmware:

Block diagram

ROS/ROS2 API

TopicMessage typeDirectionNode            Description        
/diagnosticsdiagnostic_msgs/msg/DiagnosticArraypublisher/serial_nodeDiagnostic topic
/odometry/filterednav_msgs/msg/Odometrypublisher/msgs_conversionOdometry based on motors encoders
/parameter_eventsrcl_interfaces/msg/ParameterEventpublisher subscriber/serial_node
/tftf2_msgs/msg/TFMessagepublisher subscriber/serial_nodeROSbot position based on sensor fusion
/tf_statictf2_msgs/msg/TFMessagesubscriber/serial_node
/odom/wheelsnav_msgs/msg/Odometrysubscriber/serial_nodeOdometry based on wheel encoders
/set_posegeometry_msgs/msg/ PoseWithCovarianceStampedsubscriber/serial_nodeAllow to set custom state of position

LED status

LEDStateMessage
1TogglingError of RTOS'a or microROS
2ONFirmware finished booting
3ONBatery level is low
4TogglingBattery is charging
4ONBattery is fully charged
Power buttonONPower is ON
Power buttonTogglingSystem is shuting down
Pixel panelProgramableIn default shows looped animation

Operating System image reinstallation

  1. Open top cover of ROSbot XL and Extract SD card from ROSbot XL.

  2. Download image for Raspberry Pi from here.

  3. Extract downloaded image. For example on Linux run:

    tar -xvf rpi-ubuntu-20.04-20220329200210.img.tar.gz
  4. Flash the extracted image onto SD card (For this process we recommend using Etcher but any image writing tool will be good):

    • If you want to replace the included card, remember that you need to use at least 32 GB capacity and 10 speed class micro SD card.
    • Download Etcher and install it.
    • Connect an SD card reader with the SD card inside.
    • Open Etcher and select from your hard drive .img file that you extracted.
    • Select the SD card you wish to write your image to.
    • Review your selections and click the Flash! button to begin writing data to the SD card.
  5. Insert SD card back to ROSbot XL and close the top cover.

First Setup

  1. Turn on your ROSbot XL (press the power button for about 2 seconds)
  2. Connect your laptop with Ethernet cable with ROSbot XL directrly.
  3. Set a static IP address on your laptop on the Ethernet network card to 192.168.77.xx/24 subnet.
  4. SSH to your ROSbot XL:
ssh husarion@192.168.77.2
# password: "husarion"
  1. Connecting ROSbot XL to your Wi-Fi network:

    • edit /etc/netplan/01-network-manager-all.yaml file, and place your Wi-Fi SSID and password here, eg.:

      network:
      version: 2
      renderer: networkd

      ethernets:

      eth0:
      dhcp4: no
      dhcp6: no
      addresses:
      - 192.168.77.2/24

      wifis:

      wlan1: # external USB Wi-Fi card (with antenna)
      dhcp4: true
      dhcp6: true
      optional: true
      access-points:
      "my-wifi-network":
      password: "mytopsecretpassword"
    • save the file, exit to the terminal and execut:

      sudo netplan apply

      after a while, your ROSbot XL should be connected to your Wi-Fi network.

  2. [Optionally] Connecting your ROSbot your Husarnet VPN network:

    • Login at https://app.husarnet.com
    • Create a new network and enter it
    • Click the [add element] button and copy your Husarnet Join code (it looks like fc94:b01d:1803:8dd8:b293:5c7d:7639:932a/xxxxxxxxxxxxxxxxxxxx)
    • In the ROSbot XL terminal execute:
      sudo systemctl start husarnet
      sudo husarnet join PLACE_YOUR_JOINCODE_HERE my-rosbot-xl
    • After a few seconds your robot will be over the Internet available from the level of other computers in the same Husarnet network. Instructions how to install Husarnet and connect your devices over the Internet can be found in the official manual
    • When your laptop and your ROSbot XL are in the same Husarnet network, you can access your robot as simple as that:
      ssh husarion@my-rosbot-xl

Demo

The official GitHub repository with ROSbot XL packages contains a demo/ folder where you can find Docker Compose YAML files allowing you to test autonomous drive on ROSbot XL, and control it from RViz: https://github.com/husarion/rosbot_xl_ros#demo