Components and Toolchain for Robotics
New video of SmartSoft MDSD Toolchain
New video: The butler scenario.
A new section demonstrates the creation and usage of Gateway components.
SmartSoft MDSD Toolchain 0.10.4 released. Components update released. New Videos available.
New video of our robot "Kate" cleaning up the table.
The ACE based SmartSoft version 1.8.0 is available on Sourceforge. Technical reports available.
Switch to Model Driven Software Development for all published SmartSoft components and communication objects. Many new components published. Getting-Startet-Tutorial added. Toolchain 0.10.2 released.
Description of several components and their services added.
The ACE based SmartSoft version 1.7.2 is available on Sourceforge. ACE / SmartSoft on Sourceforge
SIMPAR 2010: Tutorial on "Model-Driven Software Development in Robotics"
SmartSoft MDSD Toolchain version 0.8.0 released. SmartSoft VMWare on Sourceforge
The new VMWare Image of SmartSoft including the SmartSoft MDSD Toolchain is available for download. SmartSoft VMWare on Sourceforge
SmartSoft sources can be extracted everywhere (e.g. C:\smartsoft-ace). This will be not necessarily the library path yet (see step 3 for more details).
On Windows go to "System Properties", choose "Advanced" and click on "Environment Variables". Create two new environment variables with the following values:
The location for SmartSoft does not have to be the same as that of the svn check-out. The SMART_ROOT_ACE variable will be used later by VisualStudio to store the libraries, headers and binaries (that will be generated during the build proces).
xcopy C:\smartsoft-ace\trunk\SmartSoft\src\Utilities\ACE-Patch\ace\* %ACE_ROOT%\ace\
(optional): To use the Naming_Service examples that are available in ACE package copy two additional files:
xcopy C:\smartsoft-ace\trunk\SmartSoft\src\Utilities\ACE-Patch\netsvcs\* %ACE_ROOT%\netsvcs\lib\
A) First a %ACE_ROOT%\ace\config.h file has to be created with following content:
Make sure you have a newline at the end of the file.
B) Open the solution file
%ACE_ROOT%\ACE_vc8.sln with VisualStudio 2005 (or
%ACE_ROOT%\ACE_vc9.sln with VisualStudio 2008)
C) Select ACE project in Visual Studio and add the copied header file Interop_Name_Request.h and source file Interop_Name_Request.cpp to the ACE project (othervise this sources will be excluded during build process)
D) Build ACE project as Release version (and as Debug version if wanted).
E) Optionally the netsvcs examples can be build (but they are not mandatory for SmartSoft package).
C:\smartsoft-ace) and open the solution file
trunk\SmartSoft\src\SmartSoft.slnwith Visual Studio 2005.
Press F7 button to build the entire workspace.
If the Release version is selected, following files will be created during build process:
%SMART_ROOT_ACE%\bin\: This folder will store the ExampleComponents and the NamingService binaries (later own component-binaries can be also stored here).
%SMART_ROOT_ACE%\lib\: This folder contains the library files (e.g. SmartSoftKernel and ExampleInterfaceClasses).
%SMART_ROOT_ACE%\include\SmartSoftKernel\: During build process the header files from SmartSoftKernel will be generated into this folder. Thus this folder (together with the library folder) can be used to build own components.
%SMART_ROOT_ACE%\include\: This folder contains all other include files that are also copied during build process (e.g. Header files of Communication-Object classes).
By choosing Debug version each folder (shown above) will be enriched with a
%ACE_ROOT%\lib\path to your System Path. Thus the
ACEd.dlllibrary respectively) will be found automatically.
To start the NamingService-Daemon run the NS-Daemon.exe binary. This binary reads the svc.conf config file to configure the port to listen for example (for more information open svc.conf file with an editor). Thus the NamingService can be started with following commands out of a console:
# set PATH=%PATH%;%ACE_ROOT%\lib # cd %SMART_ROOT_ACE%\bin\NamingService\ # NS-Daemon.exe -f svc.conf
# set PATH=%PATH%;%ACE_ROOT%\lib # cd %SMART_ROOT_ACE%\bin\ # exampleComponent_01.exe -f svc.conf
Attention: The config file of NamingService and the one of components are different. The config file for NamingService stores information how to start and configure the NamingService. The config file for components stores how to find the NamingService. Initially the config file for components is set to localhost. If you want to run components on different machines, give IP adresses accessible in the network (instead of localhost).