Software overview
Contents
Introduction
Robotino is an open source robot, i.e. all the software on Robotino and all APIs are open source. This gives developers the maximum flexebility in creating software for Robotino and the certainty that this software is not affected by any open source unfriendly license.
The software available is
- microcontroller code for Robotinos IO board
- the code of the daemons running on Robotino interfacing the hardware
- the main C++ API for communication with Robotino
- APIs build on top of the C++ API
Components
The image to the right shows the different software components. Starting with Robotinos hardware there are several daemons interfacing different hardware components. By "Robotino Hardware" we mean Robotino's wheel, motors, motor control board, PC104 and extensions connected to Robotino.
daemons | description | location |
---|---|---|
controld | The controld is communicating with the motor control board via the PC104's first serial line. The controld is using RTAI in order to be able to receive the data from the motor control board at the necessary speed. | /usr/local/OpenRobotinoAPI/1/daemons/controld |
gyrod | The gyrod is reading data from a gyroscope connected to Robotino. It writes the absolute angle given by the gyroscope to the shared memory segment. This data is then used by the controld to improve Robotino's odometry. | /usr/local/OpenRobotinoAPI/1/daemons/gyrod |
nstard | The nstard reading/writing data from/to a NorthStar sensor connected to Robotino. Data is read/written from/to the shared memory segment. | /usr/local/OpenRobotinoAPI/1/daemons/nstard |
laserd | The laserd is reading data from a laser rangefinder connected to Robotino. The laserd is setting up a TCP server listening at port 8280. The rec_dataexchange_lt library can be used to read/write data from/to this service. | /usr/local/OpenRobotinoAPI/1/daemons/laserd |
armd | The armd is reading/writing data from/to an arm connected to Robotino. The armd is setting up a TCP server listening at port 8180. The rec_dataexchange_lt library can be used to read/write data from/to this service. | /usr/local/OpenRobotinoAPI/1/daemons/armd |
stated | The stated holds a shared memory segment services on Robotino a communicating with. It reads /etc/robotino/robotino.xml to set parameters in this shared memory segment. | /usr/local/OpenRobotinoAPI/1/daemons/stated |
lcdd | The lcdd is Robotino's display driver. It prints messages to the display and reads the displays keys. | /usr/local/OpenRobotinoAPI/1/daemons/lcdd |
iod | The iod is sending sensor readings to and receiving set values from a control program over the network. It is the main service to control Robotino. | /usr/local/OpenRobotinoAPI/1/daemons/iod |
rec_robotino_com Library
This is a C++ library providing the main interface for controlling Robotino. See C++ programming for examples how to use this library. The library documentation can be found here.
C Library
A C wrapper library around rec_robotino_com. The library documentation can be found here.
Java Library
A Java wrapper library around rec_robotino_com.
.Net Library
A .Net wrapper library around rec_robotino_com.
ROS
ROS drivers for Robotino using the rec_robotino_com library.
Matlab
Robotino Matlab drivers using the C wrapper library to communicate with Robotino.
LabView
Robotino LabView drivers using the C wrapper library to communicate with Robotino.