The robot which we need to use in my Advanced Software Development for Robotics course.

  • differential-drive robot with two high-quality electromotors
  • high-precision encoders on the motor axes
  • right-handed orientation

Structure of the RELBot

The brain is a Raspberry Pi 4B which presents a RTOS (XRF2, Xenomai 4 real-time operating system extension). It is only one core which can run real-time threads. It’s usually core 1/3 (starting from 0). On the other 3 cores, we usually run ROS2 nodes (non RT). I guess it’s only capable of firm real-time?

Relevant ParameterSymbolValueUnit
Mass1.35kg
Wheel diameter0.101m
Gear ratio15.58 : 1
Motor Constant39rad/s /V
Encoder1024counts per turn
Encoder4pulses per count
Supply voltage (motors)12V

CPS Structure

Software Overview

I guess both are self-explanatory.

Connection

ssh -X <id>@<addr>

Interfacing

If needed later, add the parameters and I/O from the manual. Also how to manipulate them.

Firm Real-Time using 20-sim and XRF2

The firm real-time software realizes the control laws, firm real-time safety, and drivers to/from the mechatronics parts, in order to control the mechatronics of the RELBot. So the simulator replaces that mechatronics part.

Always use the RELBot Adapter node, as that node checks the validity of the steering signals.