SmartSoft on Robotino for Robot Developers

From RobotinoWiki
Revision as of 19:05, 11 August 2015 by Lutz (talk | contribs) (3.) Install ACE/SmartSoft and deps on a clean system)

Introduction

The term SmartSoft originally stands for the component based robotics framework that was published in 1999. Comparable with other robotic frameworks or middlewares, SmartSoft provides communication mechanisms to exchange information between components and provides a component container.
However, there are clear and explicit communication semantics (communication patterns) and a clear component model.
SmartSoft uses components with services as fundamental building blocks.
In addition, SmartSoft provides implementations and tools such as the Eclipse based integrated model-driven SmartMDSD Toolchain. The SmartMDSD Toolchain supports the complete development process from component developer over system integration up to runtime aspects.


One of the principles behind SmartSoft is that robotic systems have to be composed from components, rather than programmed. SmartSoft provides components in repositories ready for reuse and composition of new robotic applications through the SmartSoft MDSD toolchain.


SmartSoft components that are specifically developed for the use with the robotino platform, can be found in the repository:
http://svn.openrobotino.org/smartsoft/trunk/components/


All other SmartSoft components can and are used in combination with those components as well, e.g. laser components, all the navigation, localization and mapping components, etc. .
Link to the components from the main smartsoft repository:
http://servicerobotik-ulm.de/drupal/doxygen/components_commrep/group__componentGroup.html


We encourage all SmartSoft robotics software developer to use the SmartMDSD Toolchain, although it is possible to develop SmartSoft applications without it. With the SmartSoft toolchain you get support throughout the complete development process.

Installing SmartSoft from Sources (on Development PC)

SmartSoft and the SmartMDSD Toolchain enable the deployment of robotics applications form an development platform to the target robot, in this case a robotino. Therefore a typical development setup is to fetch and compile the sources on a development platform, to later deploy the binaries to the robotino.
Important Hint: To make use of this development setup the development platform needs to run the same operation system version as the target platform, the robotino (due to dynamically linked dependencies).

If for some reason this is not your preferred setup, its also equally possible to install SmartSoft and the SmartMDSD Toolchain onto the robotino itself. The later deployment target is in that case localhost, so that all functionality and support offered by the SmartMDSD Toolchain is available as well.
Hint: To develop software on the robotino itself you can use the pre-installed VNC connection.

Installation

The installation of SmartSoft from source is pretty simple and tool supported, see our install script: http://servicerobotik-ulm.de/drupal/?q=node/34

Due to the integration of SmartSoft with the robotino webinterface and robotino view some parts of the general SmartSoft installation should be modified:

0.) Install SmartSoft/Robotino Dependencies

sudo apt-get install ace

1.) Get Installation Script

wget http://sourceforge.net/p/smartsoft-ace/code/HEAD/tree/trunk/smartsoft-install-updatescript.sh?format=raw\
-O /tmp/smartsoft-install-updatescript.sh
sudo apt-get install zenity

2.) Execute the Installation Script

chmod +x /tmp/smartsoft-install-updatescript.sh
cd /tmp
./smartsoft-install-updatescript.sh


3.) Install ACE/SmartSoft and deps on a clean system

The script is also able to update and compile an existing SmartSoft installation.
For installation select the menu entry:

Install ACE/SmartSoft and deps on a clean system*
SmartSoft-Installation-1.png

From the new shown menu select the entries:

Install ACE/SmartSoft dependent system packages
Checkout ACE/SmartSoft SVN repo + set env variables
Install robotino packages
Checkout robotino ACE/SmartSoft SVN repo

Hint: ACE should be installed as binary package from the robotino debian repo!

The script will update the system and install the necessary system packages to compile all SmartSoft-Components. SmartSoft will be located in ~/SOFTWARE/smartsoft as a subversion checkout pointing to HEAD of TRUNK of the SourceForge SmartSoft main repository. The necessary environment variables are set in ~/.profile .

The robotino repository checkout will be locate in ~/SOFTWARE/smartsoft_robotino_components .

Important Hint: To apply changed and added environment variables set in the ~/.profile restart the system!

Developing new Components