ROSbot 3 - Firmware installation
In the heart of each ROSbot there is a CORE2 board equipped with STM32F4 family microcontroller. The board is responsible for real time tasks like controlling motors, calculating PID regulator output or talking to distance sensors. High level computation is handled by SBC (single board computer) - Raspberry Pi 5 (in ROSbot 3), Raspberry Pi 4 (in ROSbot 2R), UP Board (in ROSbot 2 PRO) or Asus Tinker Board (in ROSbot 2).
In order to use ROSbot you have to flash ROSbot's CORE2 board with low level firmware.
Source code
The firmware is open source:
- husarion/rosbot-firmware: the current ROS 2 firmware, shared with ROSbot XL and shipped in the ROSbot snap.
- husarion/rosbot-stm32-firmware: the legacy ROS firmware, no longer developed.
Flashing the firmware
SSH to ROSbot over LAN network or VPN to get access to it's Linux terminal.
- Snap
- Docker
The firmware for STM32 is available in the ROSbot snap.
To flash the right firmware, open ROSbot's terminal and execute the following command:
sudo rosbot.flash
The firmware for STM32 is available in the ROSbot's docker images: husarion/rosbot:humble and husarion/rosbot:noetic include the corresponding firmware for STM32F4 (a low level microcontroller that controls motors, GPIO ports and TOF distance sensors).
Before flashing, stop all previously launched docker containers (you can display them with the docker ps command):
docker kill $(docker ps -q)
docker container prune -f
Then execute one of the following commands:
-
for the humble tag:
husarion@rosbot:~$docker run --rm -it --privileged \husarion/rosbot:humble \/flash-firmware.py /root/firmware.bin -
for the noetic tag, differential drive (regular wheels):
husarion@rosbot:~$docker run --rm -it --privileged \husarion/rosbot:noetic \/flash-firmware.py /root/firmware_diff.bin -
for the noetic tag, omnidirectional wheeled ROSbot (mecanum wheels):
husarion@rosbot:~$docker run --rm -it --privileged \husarion/rosbot:noetic \/flash-firmware.py /root/firmware_mecanum.bin