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 / ROS 2.
This is a manual. Would you need a quick start guide instead?
ROSbot is an affordable robot platform for rapid development of autonomous robots. It can be a base for industrial robots, custom service robots, inspection robots and robots working in swarms.
- Aluminium chassis
- 4 x DC motors + quadrature encoders
- IMU
- Built-in USB hub (2 external and 2 internal ports available)
- 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 RGB perimeter LEDs, speaker
- Ethernet based communication between SBC and STM32F4 based digital controller
- Variety of compatible SBC (Raspberry Pi, NVIDIA Jetson, Intel NUC i3)
- Universal mounting plate (for LIDARs, robot arms etc.)
Hardware guide
Specification
Attribute | Description |
---|---|
Dimensions without camera and LiDAR | 332 x 284 x 131 mm / 13.1 x 11.2 x 5.2 in [L x W x H] |
Chassis material | Powder-coated aluminum plate, 1.5 mm thick, top plate 3 mm |
Maximum translational velocity | 0.8 m/s |
Maximum rotational velocity | 180 deg/s (3.14 rad/s) |
Maximum load capacity * | Up to 10 kg / 352 oz |
Battery life | 2h - 6h |
*Applicable with mecanum wheels
Components
Component | Quantity | Description |
---|---|---|
Digital Board | 1 | Real-time controller based on STM32F407 microcontroller. |
Power Board | 1 | USB-C Power Delivery input (12-20V) which supports simultaneous power delivery and battery charging. |
DC motor | 4 | 37 mm DC motor with 50:1 gearbox and 64CPR encoder. |
IMU sensor | 1 | Intelligent 9-axis absolute orientation sensor BNO055, more details |
LIDAR | 1 | RPLIDAR S1, 360 degree and up to 40 m range, more details |
RGBD camera | 1 | Orbbec Astra with RGB image size 640x480 and depth image size 640x480. |
Li-Ion Batteries | 1 | 11.1V 7800mAh 86Wh |
Antenna | 1 | Connected directly to Wi-Fi module. |
Speaker | 1 | Driven from Digital Board or from SBC (selectable source). |
Block diagram
A graphic representation of ROSbot XL components and connections between them. The detailed version: [PDF] ROSbot XL block diagram.
Rear panel description
Item | Quantity | Description |
---|---|---|
Antenna connector | 1 (2) | Wi-Fi antenna RP-SMA socket. Required for Wi-Fi connectivity. For some SBCs, 2 antennas are used. |
USB | 2 | USB 2.0 host ports from SBC. |
HDMI | 1 | HDMI output from SBC. |
Power button | 1 | Turns ROSbot ON or OFF. Hold for 1.5 seconds to turn robot on, 0.5 seconds to turn off. |
LEDs | 4 | LED1(green), LED2(red), LED3(green), LED4(red) |
DB Reset | 1 | Button used for reset digital board. |
PB Reset | 1 | Hidden button used for reset power board. |
User button | 1 | Programmable button. |
USB type C power input | 1 | USB-C Power Delivery input (15-20V) which supports simultaneous power delivery and battery charging. |
LED statuses
LED | color | State | Message |
---|---|---|---|
LED1 | green | ON | Firmware finished booting |
LED2 | red | Toggling | Error of RTOS'a or microROS |
Low bat | red | ON | Batery level is low |
Charging | green | Toggling | Battery is charging |
Charging | green | ON | Battery is fully charged |
Power button | white | ON | Power is ON |
Power button | white | Toggling | System is shuting down |
Pixel panels | RGB | Programmable | In default shows looped animation |
Battery & charging
An internal battery is disconnected during transport. Connect the battery plug before the first use. You need to unscrew the battery cover first. See Quick start for more detailed guide.
When you receive the robot, the battery level should be about 30-40%. You do not need to perform any initial procedures, however, we recommend to begin the first software setup with the charger plugged. The battery will charge to a higher level and you avoid draining it to zero, which is not recommended just after the storage/transport period. The current battery voltage can be read from the ROS API. The voltage should never fall under 9V, which is the "0%" level, and should not exceed 12.6V, which is "100%" level.
Battery & charger parameters
Parameter | Value | Comment |
---|---|---|
Battery type | Li-Ion | 3S configuration |
Battery voltage & capacity | 11.1V 7800mAh | 86.5Wh |
Max. discharge current | 8A | |
Max. charge current | 2.5A | limited by robot |
Charging temp. range | 0°C - 45°C | |
Operating temp. range | -20°C - 60°C | |
Charger | 20V 65W | PD2.0/3.0 compatible |
Charging
ROSbot XL integrates an on-board battery charger. The charging process starts automatically after connecting the power adapter and terminates when the battery is full. The low battery level is indicated by "Low bat" LED on the rear panel.
We strongly recommend to use the power adapter delivered with the robot. However, it is also possible to supply/charge the robot with any adapter that is compatible with Power Delivery (PD2.0/PD3.0) and provides 15V or 20V output with the minimum 3A current (the current draw is internally limited to 2.8A).
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 (2.5A maximum). 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%).
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:
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.
ROS / ROS 2 API
Use bringup.launch.py
from rosbot_xl_bringup
to start all base functionalities for ROSbot XL. It consists of the following parts:
scan_to_scan_filter_chain
fromlaser_filters
, it subscribes to/scan
topic and removes all points that are within the robot's footprint (defined by configlaser_filter.yaml
inrosbot_xl_bringup
package). Filtered laserscan is then published on/scan_filtered
topicSubscribes
/scan
(sensor_msgs/LaserScan)
Publishes
/scan_filtered
(sensor_msgs/LaserScan)
ekf_node
fromrobot_localization
, it is used to fuse wheel odometry and IMU data. Parameters are defined inekf.yaml
inrosbot_xl_bringup/config
. It subscribes to/rosbot_xl_base_controller/odom
and/imu_broadcaster/imu
published by ros2 controllers and publishes fused odometry on/odometry/filtered
topicSubscribes
/rosbot_xl_base_controller/odom
(nav_msgs/Odometry)/imu_broadcaster/imu
(sensor_msgs/Imu)
Publishes
/tf
(tf2_msgs/TFMessage) -base_link
->odom
transform/odometry/filtered
(nav_msgs/Odometry)
controller.launch.py
fromrosbot_xl_controller
, it loads robot model defined inrosbot_xl_description
as well as ros2 control rosbot_hardware_interfaces. It also starts controllers:joint_state_broadcaster
rosbot_xl_base_controller
- depending on the value ofmecanum
argument it can beDiffDriveController
orMecanumDriveController
imu_broadcaster
Subscribes
/cmd_vel
(geometry_msgs/Twist)/_motors_responses
(sensor_msgs/JointState)/_imu/data_raw
(sensor_msgs/Imu)
Publishes
/tf
(tf2_msgs/TFMessage)/tf_static
(tf2_msgs/TFMessage)/_motors_cmd
(std_msgs/Float32MultiArray)/rosbot_xl_base_controller/odom
(nav_msgs/Odometry)/imu_broadcaster/imu
(sensor_msgs/Imu)
Use micro_ros_agent
to communicate with Digital Board, it provides the following interface:
Subscribes
/_motors_cmd
(std_msgs/Float32MultiArray)Publishes
/_motors_responses
(sensor_msgs/JointState)/_imu/data_raw
(sensor_msgs/Imu)/battery_state
(sensor_msgs/BatteryState)
Operating System image reinstallation
In some cases you will need to restore ROSbot system to its default settings:
- in case of accidential damage of the system,
- to update the OS (it can be udpated remotely, but flashing the microSD card can be easier sometimes),
- to clear all user changes and restore factory settings.
This process will differ depending on ROSbot version that you have. Find the full instruction here
Reference projects
Running ROS natively is fine for relatively small projects. For more complex ones, the full dockerized setup is a better approach.
Find available projects below:
link | description |
---|---|
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-navigation | Autonomous navigation (using navigation2) on a given map. |
Docs and links
All helpful documents and links in one place: