SmartSoft on Robotino for Robot Developers

From RobotinoWiki
Revision as of 12:01, 3 April 2018 by Lutz (talk | contribs) (Already Running SmartSoft instances?)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
SmartMDSD-Toolchain Deployment.png

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.

Some Important Hints

Component repositories

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

Use the SmartMDSD Toolchain

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.

Already Running SmartSoft component instances?

Depending on the installed robotino debian packages smartsoft is already running on your robotino, providing the infrastructure and skills accessible through the robotino factroy app or robotino view.
If you wan't to run your own smartsoft components or whole deployments on the robotino you should make sure that no other smartsoft components or an other SmartSoft namingservice is running.
To check if the pre-installed robotino smartsoft components are running execute the follwing:

sudo systemctl status smartsoft-slave
sudo systemctl status smartsoft-master

To stop those component execute the following:

sudo systemctl stop smartsoft-slave
sudo systemctl stop smartsoft-master

Hint: It is also possible to remove those components from robotino (later re-installation is easy). However some functionally of the robotino factroy app will not be available with uninstalled or stopped smartsoft components.

sudo apt-get purge robotino-smartsoft-master robotino-smartsoft-common robotino-smartsoft-slave

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 / robotino factory app and robotino view some parts of the general SmartSoft installation should be modified:

0.) Install robotino debian repo + ace

wget -qO - http://packages.openrobotino.org/keyFile | sudo apt-key add -
sudo su
echo "deb http://packages.openrobotino.org/precise precise main" > /etc/apt/sources.list.d/openrobotino.list
apt-get update
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!

SmartSoft-Installation-2.png

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!

Update and Compile SmartSoft

The script (now also available in $SMART_ROOT_ACE) can also be used to compile (and update) a SmartSoft installation and system.

cd $SMART_ROOT_ACE
./smartsoft-install-updatescript.sh

To update and compile select the menu entries:

Upgrade system packages*
Update ACE/SmartSoft SVN
Build/Compile ACE/SmartSoft
Update Robotino SVN
Build/Compile Robotino ACE/SmartSoft Components
SmartSoft-Installation-3.png

The script updates the system packages, the subversion checkouts and finally compiles the SmartSoft installation.

If the installation has been compiled successfully you should get the following message in a terminal:

########################################
### SmartSoft successfully compiled! ###
########################################


Install SmartMDSD Toolchain

Using the script is an easy way to install the latest version of the SmartMDSD Toolchain, select the menu entry:

Update/Install SmartMDSD Toolchain to recent version

The latest version of the SmartMDSD Toolchain will be installed to ~/SOFTWARE/toolchain-latest . On Linux you can start the toolchain by double clicking the extracted binary "~/SOFTWARE/toolchain-latest/SmartMDSD-toolchain-x.x/eclipse" (prefered/standard method) or by executing in a terminal:

 ~/SOFTWARE/SmartMDSD-toolchain-x.x/toolchain-latest
 ./eclipse
SmartSoft-Installation-4.png

Important Hint: Find more tutorials how to use the SmartMDSD Toolchain at the Video Tutorials page.

Developing new Components

Video tutorials how to use the SmartMDSD Toolchain are available at the Video Tutorials page of http://servicerobotik-ulm.de/.

Deploying Components to Robotino

Video tutorials how to use the SmartMDSD Toolchain are available at the Video Tutorials page of http://servicerobotik-ulm.de/.