
Robotino - a robot for training and research

I bring to your attention a small introductory technical review of the Robotino® robot manufactured by Festo Didactic . The review consists of general technical information and details that were obtained during experiments and studies with this robot.
The Robotino mobile robot is an autonomous mobile platform with three roller bearings of the omnidirectional type (operating in all directions, omnidirectional). The movement of the robot is carried out by three DC motors, the axes of which are located at an angle of 120 degrees to each other. Thanks to this design, this robot is able to move in all directions on the plane of movement, with the possibility of rotation around its axis, passing through its geometric center 360 degrees.
Drive technology
An interesting design feature is the drive technology, namely the geometry, which is the following structure:

Where the numbers indicate: 1 - engine, 2 - tachometer, 3 - roller, 4 - gearbox, 5 - belt drive.
The rotational speed of the shaft of each engine is transmitted to the axis of the corresponding wheel using a gearbox with a gear ratio of 16: 1. In addition, the measurement of the angular speeds of rotation of the motor shafts is carried out using incremental tachometers, and the linear speeds of the robot in three directions: forward, sideways and rotation around its axis are recalculated accordingly according to measurements of the angular speeds of the engines.
Control
The robot can be controlled remotely via the WLAN wireless channel, as well as using pre-prepared programs recorded in the robot's memory. Work offline is provided by rechargeable batteries. Robotino runs on the embedded Linux operating system (OS). There is a set of functions (commands) that allow you to set and measure the angular speed of rotation of the motor shafts, as well as the linear speed of the robot.
The robot comes complete with RobotinoView, a software with a graphical interface that displays the status of control signals, sensors, inputs and outputs. The program for the robot can be written based on the selection of the necessary functional blocks from the available list, their combination and settings in graphical mode, setting mathematical control parameters using functions and coefficients (visual programming). RobotinoView programming is possible using the high-level languages C ++ APL for Windows and C ++ APL for Linux. Autonomous programming of the robot is possible when a monitor and keyboard are connected to it.


Hardware
Robotino hardware consists of the following subsystems:
- Power system - rechargeable batteries, a charger that allows the robot to work offline for several hours.
- The propulsion system - three DC motors, a gearbox, roller-bearing wheels, allowing the robot to move in different directions, a belt drive. It should be noted that to stabilize the shaft rotation speeds of each of the three robot engines, built-in proportionally-integral-differential (PID) controllers with predefined coefficients are used.
- Measuring system (tachometers) for measuring engine speeds.
- Wireless communication system with an external host computer (Wi-Fi access point).
- The built-in control computer that interacts with all the robot systems consists of two components: a PC 104 processor, compatible with MOPSlcdVE, 300 MHz and a compact flash card (1024 MB).
- The I / O circuit board establishes communication between the computer and the sensors, the motor, and the Robotino I / O interface.
Internal software includes:
- Linux operating system (OS), which interacts with hardware and software, processes internal commands and exchanges data with an external control computer.
- Programs stored in the robot memory for autonomous control.
External software includes:
- Programs that use the C ++, C # classes with a set of methods for communicating and exchanging data with Robotino.
- Matlab / Simulink visual design environment with a loaded library for controlling the robot.
- Visual Design Environment RobotinoView.
- Virtual Simulator RobotinoSim providing the ability to work not with a real Robotino, but with its virtual copy.
Note: all control commands that come from the software and are sent to the robot are executed sequentially, the robot cannot execute several commands at the same time. Therefore, after the corresponding command is sent to the robot, the control program is suspended until it starts executing this command and returns control to the program. Accordingly, between the time the command is issued, the time it is executed, and the next command, there is some delay associated with the time the command was sent to the robot via the wireless channel, as well as the time the Robotino OS command processed and the start of its execution. Empirically, it was found that the execution time of each command is a variable value, which may be due to a delay in the execution of the robot OS command queue or instability of the Wi-Fi communication channel. So the time for giving a command to one of the 3 engines is on average 0.009 s. Measurement time from one tachometer is 0.002 s.
Instead of a conclusion, the robot is in action
Thanks for attention.