Difference between revisions of "Software overview"

From RobotinoWiki
(link=cpp .Net Library)
m (Image:Software_overview_64.png Introduction)
 
(19 intermediate revisions by 3 users not shown)
Line 1: Line 1:
==Introduction==
+
==[[Image:Software_overview_64.png]] 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.
+
Robotino is an open source robot, i.e. all the software on Robotino and all APIs are open source. This gives developers the maximum flexibility in creating software for Robotino and the certainty that this software is not affected by any open source unfriendly license.
  
 
The software available is
 
The software available is
* microcontroller code for Robotinos IO board
+
* [http://svn.openrobotino.org/firmware/ microcontroller code for Robotinos IO board]
* the code of the daemons running on Robotino interfacing the hardware
+
* [http://svn.openrobotino.org/daemons/ the code of the daemons running on Robotino interfacing the hardware]
* the main C++ API for communication with Robotino
+
* [http://svn.openrobotino.org/api2/ the main C++ API for communication with Robotino]
* APIs build on top of the C++ API
+
* [http://svn.openrobotino.org/wrapper/ APIs build on top of the C++ API]
  
==Components==
+
==Packages==
[[Image:sw_architecture_v1.png|right|thumb|200px|architecture]]
+
[[Image:Software_components.png]]
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.
 
  
{| border="1"
+
The picture above shows the main software packages available for 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
 
|-
 
|
 
|
 
|
 
|}
 
  
====[[Image:Robotino_cpp_icon_32.png|link=cpp]] rec_robotino_com Library====
+
====[[Image:cfcard_32.png]] Robotino OS====
 +
The operating system for Robotino is based on [http://ubuntuguide.org/wiki/Ubuntu:Jaunty Ubuntu Jaunty]. The kernel had been replaced by a custom made kernel with [https://www.rtai.org/ RTAI] patches. [[CF_card|Disk images]] with the Robotino OS can be download from the [[Downloads|download section]].
 +
* Version 2.x cards run the rec::robotino::com interface
 +
* Version 3.x cards run the rec::robotino::api2 interface. The api1d provides a API1 compatibility interface. You are able to connect with all 2.x software to 3.x CF cards.
 +
 
 +
====[[Image:Robotino_sim_icon_32.png|link=Simulator]] Robotino Sim====
 +
The Robotino simulator lets you simulate Robotino in a physical 3D simulation environment.
 +
* Version 2.x of the simulator can be accessed by the rec::robotino::com C++ library and all versions of Robotino View.
 +
 
 +
====[[Image:Robotino_icon_32.png]] Robotino View====
 +
Robotino View is the graphical programming environment for Robotino.
 +
* Version 2.x of Robotino View can connect to Robotino OS 2.x and Robotino Sim 2.x
 +
:uses rec::robotino::com to setup a connection to the hardware/simulator.
 +
* Version 3.x (including the current beta version 2.9.x) can connect to all Robotino OS and Robotino Sim versions.
 +
:uses both rec::robotino::com and rec::robotino::api2 to setup a connection to the hardware/simulator. It automatically detects which software is running.
 +
 
 +
====[[Image:Robotino_cpp_icon_32.png|link=cpp]] C++ API====
 
This is a C++ library providing the main interface for controlling Robotino. See [[cpp|C++ programming]] for examples how to use this library. The library documentation can be found [http://doc.openrobotino.org/documentation/OpenRobotinoAPI/1/doc/rec_robotino_com/ here].
 
This is a C++ library providing the main interface for controlling Robotino. See [[cpp|C++ programming]] for examples how to use this library. The library documentation can be found [http://doc.openrobotino.org/documentation/OpenRobotinoAPI/1/doc/rec_robotino_com/ here].
 +
* The current official library is the [[API2|rec::robotino::api2]] library
  
 
====[[Image:Robotino_c_icon_32.png|link=http://doc.openrobotino.org/documentation/OpenRobotinoAPI/1/doc/rec_robotino_com_c/]] C Library====
 
====[[Image:Robotino_c_icon_32.png|link=http://doc.openrobotino.org/documentation/OpenRobotinoAPI/1/doc/rec_robotino_com_c/]] C Library====
 
A C wrapper library around rec_robotino_com. The library documentation can be found [http://doc.openrobotino.org/documentation/OpenRobotinoAPI/1/doc/rec_robotino_com_c/ here].
 
A C wrapper library around rec_robotino_com. The library documentation can be found [http://doc.openrobotino.org/documentation/OpenRobotinoAPI/1/doc/rec_robotino_com_c/ here].
 +
* The [[API2|rec::robotino::api2]] library contains the C library
  
 
====[[Image:Robotino_java_icon_32.png|link=Java]] Java Library====
 
====[[Image:Robotino_java_icon_32.png|link=Java]] Java Library====
Line 66: Line 43:
 
A .Net wrapper library around rec_robotino_com.
 
A .Net wrapper library around rec_robotino_com.
  
====[[Image:Robotino_ros_icon_32.png|link=cpp]] ROS====
+
====[[Image:Robotino_ros_icon_32.png|link=ROS]] ROS====
 
[[ROS|ROS drivers for Robotino]] using the rec_robotino_com library.
 
[[ROS|ROS drivers for Robotino]] using the rec_robotino_com library.
  
Line 72: Line 49:
 
[[matlab|Robotino Matlab drivers]] using the C wrapper library to communicate with Robotino.
 
[[matlab|Robotino Matlab drivers]] using the C wrapper library to communicate with Robotino.
  
====[[Image:Robotino_labview_icon_32.png|link=cpp]] LabView====
+
====[[Image:Robotino_labview_icon_32.png|link=labview]] LabView====
 
[[labview|Robotino LabView drivers]] using the C wrapper library to communicate with Robotino.
 
[[labview|Robotino LabView drivers]] using the C wrapper library to communicate with Robotino.
 +
 +
====[[Image:Robotino_mrds4_icon_32.png|link=MRDS]] Microsoft Robotics Developer Studio====
 +
[[MRDS|Robotino driver for MRDS4]] build upon the .Net wrapper for [[API2]].

Latest revision as of 15:08, 15 June 2016

Software overview 64.png 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 flexibility in creating software for Robotino and the certainty that this software is not affected by any open source unfriendly license.

The software available is

Packages

Software components.png

The picture above shows the main software packages available for Robotino.

Cfcard 32.png Robotino OS

The operating system for Robotino is based on Ubuntu Jaunty. The kernel had been replaced by a custom made kernel with RTAI patches. Disk images with the Robotino OS can be download from the download section.

  • Version 2.x cards run the rec::robotino::com interface
  • Version 3.x cards run the rec::robotino::api2 interface. The api1d provides a API1 compatibility interface. You are able to connect with all 2.x software to 3.x CF cards.

Robotino sim icon 32.png Robotino Sim

The Robotino simulator lets you simulate Robotino in a physical 3D simulation environment.

  • Version 2.x of the simulator can be accessed by the rec::robotino::com C++ library and all versions of Robotino View.

Robotino icon 32.png Robotino View

Robotino View is the graphical programming environment for Robotino.

  • Version 2.x of Robotino View can connect to Robotino OS 2.x and Robotino Sim 2.x
uses rec::robotino::com to setup a connection to the hardware/simulator.
  • Version 3.x (including the current beta version 2.9.x) can connect to all Robotino OS and Robotino Sim versions.
uses both rec::robotino::com and rec::robotino::api2 to setup a connection to the hardware/simulator. It automatically detects which software is running.

Robotino cpp icon 32.png C++ API

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.

Robotino c icon 32.png C Library

A C wrapper library around rec_robotino_com. The library documentation can be found here.

Robotino java icon 32.png Java Library

A Java wrapper library around rec_robotino_com.

Robotino dotnet icon 32.png .Net Library

A .Net wrapper library around rec_robotino_com.

Robotino ros icon 32.png ROS

ROS drivers for Robotino using the rec_robotino_com library.

Robotino matlab icon 32.png Matlab

Robotino Matlab drivers using the C wrapper library to communicate with Robotino.

Robotino labview icon 32.png LabView

Robotino LabView drivers using the C wrapper library to communicate with Robotino.

Robotino mrds4 icon 32.png Microsoft Robotics Developer Studio

Robotino driver for MRDS4 build upon the .Net wrapper for API2.