Difference between revisions of "Smartsoft"

From RobotinoWiki
(TCP/IP Communication Protocol B/W Fleet Manager and SmartFestoFleetCom)
(Robotino - Industry 4.0 SmartSoft Components (FESTO MPS))
 
(127 intermediate revisions by 3 users not shown)
Line 1: Line 1:
=Robotino-SmartSoft-FleetManager=
+
==Introduction==
[[Image:FM-SS-Structure.PNG]]
+
{|cellspacing="20" cellpadding="10"
 +
|- style="vertical-align:top"
 +
|[[Image:Robotino_smartsoft_icon_64.png]] [[Image:PoweredBySmartSoft-single_small.png]]
 +
|[http://servicerobotik-ulm.de/drupal/?q=node/71 SmartSoft]  is a component approach for robotics software based on communication patterns as core of a robotics component model.<br> This page describes how one can use SmartSoft together with Robotino.
 +
'''What does SmartSoft and SmartMDSD for you?'''
 +
* A structured approach (separation of roles) to manage software efforts and system complexity in building your real world robotic applications. ([http://servicerobotik-ulm.de/drupal/?q=node/19 The SmartSoft Approach])
 +
* An integrated toolchain (model driven software development) that realizes this approach and supports your system development. ([http://servicerobotik-ulm.de/drupal/?q=node/20 The SmartMDSD Toolchain])
 +
* A set of reusable software components for localisation, navigation, mobile manipulation, task coordination, human robot interaction, object recognition and many more for immediate reuse in your applications. ([http://servicerobotik-ulm.de/drupal/doxygen/components_commrep/ Components])
 +
'''See SmartSoft, the SmartMDSD Toolchain and components in action: [http://servicerobotik-ulm.de/drupal/?q=node/70 Video Tutorials].'''
  
----
+
! style="text-align:left; width:20em; background-color:#dddddd"|
=TCP/IP Communication Protocol B/W Fleet Manager and SmartFestoFleetCom=
+
=== Links ===
 +
[http://servicerobotik-ulm.de/drupal/?q=node/20 SmartMDSD toolchain] - All information about the toolchain, installation, tutorials, videos, downloads.
  
Commands in both the directions has the format, CommandName  CommandArgument1 CommandArgument2
+
[http://sourceforge.net/projects/smartsoft-ace/develop SmartSoft] - The SmartSoft main repository with the core functions and most of the components.
ie, Space between command name and its arguments, and additional commands appended with a newline character.  
 
  
{|class="wikitable"
+
[http://svn.openrobotino.org/smartsoft/ SmartSoft - Robotino components] - The SmartSoft robotino repository with the robotino specific functions.
! FleetManager to SmartSoft
+
 
 +
[[smartsoft_changelog|Robotino Smartsoft packages changes]]
 +
|}
 +
 
 +
==SmartSoft -- How To Use==
 +
 
 +
{|cellspacing="20" cellpadding="10"
 +
|- style="vertical-align:top"
 +
! style="text-align:left; width:20em; background-color:#dddddd"|
 +
=== SmartSoft through Robotino Factory ===
 +
* ready to use (on robotino startup!)
 +
* navigation, mapping, localization
 +
*[[robfactory|Robotino Factory]]
 +
<br>
 +
[[Image:Robotino-factory.png|250px|center|link=http://robfactory.rec.de]]
 +
! style="text-align:left; width:20em; background-color:#dddddd"|
 +
 
 +
=== SmartSoft through Robotino View ===
 +
* ready to use "high-level" building blocks available in Robotino View
 +
* navigation, mapping, localization
 +
* [http://www.festo-didactic.com/int-en/services/robotino/programming/robotino-view/ read more...]
 +
<br>
 +
[[Image:Robotinoview_1.png|250px|center|link=http://www.festo-didactic.com/int-en/services/robotino/programming/robotino-view/]]
 +
! style="text-align:left; width:20em; background-color:#dddddd"|
 +
 
 +
=== SmartSoft on Robotino for <br>Robot Developers ===
 +
* ready to use SmartSoft Robotino components
 +
* usable with SmartMDSD toolchain
 +
* offers full SmartSoft Ecosystem functionally
 +
* [[SmartSoft on Robotino for Robot Developers| read more...]]
 +
<br>
 +
[[Image:SmartMDSD-Toolchain_Deployment.png|300px|center|link=SmartSoft on Robotino for Robot Developers]]
 +
|}
 +
 
 +
==SmartSoft -- Robotino API/Webinterface/Factory Integration==
 +
This section describes the integration or interaction of SmartSoft with the robotino services and tools (API/webinterface/factory).
 +
To enable the usage of SmartSoft "standard components" (e.g. navigation, localization and mapping) with the robotino services e.g the robotino factory, some robotino specific components have been developed (see section below).<br>
 +
 
 +
The combination of those components enables an easy to use interface (e.g. robotino factory) to powerful functionally such as collision free navigation, SLAM, localization, management of locations and maps and tasks.
 +
 
 +
[[Image:SmartSoft Robotino integration.png]]
 +
 
 +
==Core Robotino SmartSoft components==
 +
<!-- [[Image:FM-SS-Structure.PNG]] -->
 +
A robot system consist typically of a set of components that makes use of specific hardware (base, laser, etc.) delivering the "basic services" and platform (specific hardware) independent components (e.g. navigation, localization).<br>
 +
This section describes those SmartSoft components that are specifically developed for the use with the robotino platform.
 +
 
 +
Other SmartSoft components can and are used in combination with those components as well, e.g. Sick-Laser components, all the navigation, localization and mapping components, etc. .
 +
 
 +
{| class="wikitable"  
 +
!Name
 +
!Description
 +
!Component Hull
 
|-
 
|-
|'''Command'''||'''Usage Example'''||'''Description'''
+
|SmartRobotinoBaseServer
 +
|The SmartRobotinoBaseServer provides access to the robotino robot. It handles the communication with the hardware or the simulator. It offers several services for controlling the robot, such as sending navigation commands to the base and providing access to the robot's odometry. Position updates can be sent to the component to overcome odometry failures.
 +
|[[File:SmartRobotinoBaseServer.JPG|thumb|center]]
 
|-
 
|-
|DeliverFromTo SourceStationID SourceBeltID DestinationStationID DestinationBeltID||DeliverFromTo 1 0 2 0||Drive to Position 1, dock to Belt 0, Load,  Undock, Drive to Position 2, dock to Belt 0, Unload, Undock
+
|SmartRobotinoLaserServer
 +
|The SmartRobotinoLaserServer provides laser scans from the robotino SIM simulator or other scanners operated by robotino deamons. Scans can be requested by push newest or query communication.
 +
|[[File:SmartRobotinoLaserServer.JPG|thumb|center]]
 
|-
 
|-
|GotoStation StationID||GotoStation 1||Drives to Position 1
+
|SmartRobotinoIRServer
 +
|The SmartRobotinoIRServer ir scans from the robotino platforms (and simulator).
 +
|[[File:SmartRobotinoIRServer.JPG|thumb|center]]
 
|-
 
|-
|DockTo BeltID||DockTo 0||Docks to Belt 0
+
|[[SmartRobotinoRPCBridge]]
 +
|The SmartRobotinoRPCBridge component is the interface component between the robotino rpcd and the SmartSoftSlave components. It is used to transfer data between the two system parts, e.g. the map as it is recorded by the SLAM component.
 +
|[[File:SmartRobotinoRPCBridge.JPG|thumb|center]]
 
|-
 
|-
|Undock||Undock||Undocks if already docked
+
|[[SmartRobotinoMasterRPCBridge]]
 +
|The SmartRobotinoMasterRPCBridge component is the interface component between the the robotino rpcd and the SmartSoftMaster components. It is used to transfer data between the two system parts, e.g. the path network which is handled by the SmartPathNavigationServer.
 +
|[[File:SmartRobotinoRPCBridge.JPG|thumb|center]]
 
|-
 
|-
|LoadBox||LoadBox||Loads on Box if no box already loaded and box available to load
+
|SmartRobotinoImageServer
 +
|The SmartRobotinoImageServer provides images captured by a robotino daemon or the simulator.
 +
|[[File:SmartRobotinoImageServer.JPG|thumb|center]]
 +
|}
 +
 
 +
==Robotino - Industry 4.0 SmartSoft Components (FESTO MPS) ==
 +
 
 +
[[Robotino Fleets - Architecture]]
 +
 
 +
{| class="wikitable"
 +
!Name
 +
!Description
 +
!Component Hull
 
|-
 
|-
|UnLoadBox||UnLoadBox||Loads on Box if no box already loaded
+
|[[SmartJobCenter]]
 +
|The SmartJobCenter provides a REST API to push and manage jobs and to read job status information.
 +
|
 
|-
 
|-
|Stop||Stop||Halt the Robotino, put the task on hold
+
|[[SmartFestoFleetCom]]
 +
|The SmartFestoFleetCom is the interface component to the FESTO Fleet-Manager (MPS).
 +
|[[File:SmartFestoFleetCom.JPG|thumb|center]]
 
|-
 
|-
|Continue||Continue||Resumes the task if a task is on hold
+
|[[SmartFestoGripperServer]]
 +
|The SmartFestoGripperServer provides access to the FESTO gripper for Robotino3.
 +
|[[File:SmartFestoGripperServer.JPG|thumb|center]]
 
|-
 
|-
|EndTask||EndTask||Terminates the ongoing task and go to Home Position
+
|[[SmartFestoMPSDocking]]
 +
|The SmartFestoMPSDocking performs the docking/undocking of a Robotino3, equipped with a conveyer belt, to a FESTO MPS station.
 +
|[[File:SmartFestoMPSDocking.JPG|thumb|center]]
 
|-
 
|-
|TeachPosition PositionID x y z||TeachPosition 1 0.54 23.5 45.0||Teach Position with ID 1, in global coordinates x(in meters):0.54 y(in meters):23.5 theta(in degrees):45
+
|[[SmartMarkerTracker]]
 +
|The SmartMarkerTracker is capable of detecting visual markers and docking to MPS stations equipped with visual markers.
 +
|[[File:SmartMarkerTracker.JPG|thumb|center]]
 
|-
 
|-
|TeachCurrentPosition PositionID||TeachCurrentPosition 1||Assign the current global position the ID 1
+
|[[SmartNavigationPlanner]]
 +
|The SmartNavigationPlanner uses [https://ompl.kavrakilab.org/ ompl] to perform planning for navigation. The component is used in the context of corridor based fleet navigation.
 +
|[[File:SmartNavigationPlanner.JPG|thumb|center]]
 
|-
 
|-
|GetAllPosition ||GetAllPosition||Reads the list of all taught positions with its ID and Name
+
|[[SmartPurePursuitNavigation]]
 +
|The SmartPurePursuitNavigation realizes a pure-pursuit navigation, calculating velocities to follow a trajectory.
 +
|[[File:SmartPurePursuitNavigation.JPG|thumb|center]]
 
|-
 
|-
|SetNameForPosition PositionID name||SetNameForPosition 1 RedParts||Sets a tag RedParts for PostionID 1 if exists
+
|[[SmartRobotinoBatteryChargerDocking]]
 +
|The SmartRobotinoBatteryChargerDocking performs the docking/undocking of a Robotino3 to a battery charger station.
 +
|[[File:SmartRobotinoBatteryChargerDocking.JPG|thumb|center]]
 
|-
 
|-
|GetNameForPosition PositionID||GetNameForPosition 1||Reads the tag for PostionID 1 if  ID and tag exists
+
|[[SmartRobotinoBatteryChargerDocking4]]
 +
|The SmartRobotinoBatteryChargerDocking4 performs the docking/undocking of a Robotino4 to a battery charger station.
 +
|[[File:SmartRobotinoBatteryChargerDocking.JPG|thumb|center]]
 
|-
 
|-
|colspan="3"| '''SmartSoft to FleetManager (Cyclic every 500ms)'''
+
|[[SmartRobotinoConveyerBeltServer]]
 +
|The SmartRobotinoConveyerBeltServer provides access the robotino3 conveyer belt, used to transport KLTs (small load carrier).
 +
|[[File:SmartRobotinoConveyerBeltServer.JPG|thumb|center]]
 
|-
 
|-
|RobotPose x y z||RobotPose 0.5 12.56 12.5||Position of robot in x=0.5(in meters),y=12.56(in meters)and angle=12.5 in degree
+
|[[SmartRobotinoMasterRPCBridge]]
 +
|The SmartRobotinoMasterRPCBridge is the interface component between the the robotino rpcd and the SmartSoft components. It is used to transfer data between the two system parts, e.g. the map as it is recorded by the SLAM component. This component is among the set of fleet coordination components.
 +
|[[File:SmartRobotinoMasterRPCBridge.JPG|thumb|center]]
 
|-
 
|-
|BatteryState voltage voltageLow||BatteryState 18 1||Battery voltage is 18Volts and voltage low is true
+
|SmartPathNavigationServer
 +
|The SmartPathNavigationServer is the coordinating component for corridor based local coordinated navigation with multiple robots in a fleet.
 +
|[[File:SmartPathNavigationServer.JPG|thumb|center]]
 
|-
 
|-
|Rowspan="4"|SystemState CurrentCommand CommandArgs <br> '''CurrentCommand:''' NoJob, StartJob, JobDone, JobError||SystemState StartJob 1 0 2 0||A Job has been started to Drive to Position 1, dock to Belt 0, Load,  Undock, Drive to Position 2, dock to Belt 0, Unload, Undock
+
|[[SmartPathNavigationClient]]
 +
|The SmartPathNavigationClient is client component for corridor based fleet navigation.
 +
|[[File:SmartPathNavigationClient.JPG|thumb|center]]
 
|-
 
|-
|SystemState NoJob||Robot Idle and waiting for task
+
 
|-
 
|SystemState JobDone 1 0 2 0||Box transported from Position 1, Belt 0, to Position 2,Belt 0
 
|-
 
|SystemState JobError PATH_BLOCKED||Robot path blocked to complete the task
 
|-
 
|Progress||Progress 40||40% of the Job is complete
 
 
|}
 
|}
 +
 +
==Documentation==
 +
*[[Factory4_Io_Connector|Usage of Robotino's IO connector in the Factory4 environment]]
 +
* [https://www.mysick.com/saqqara/pdf.aspx?id=im0017595 Manual S30B]
 +
*[[WUT_RS422_Config|Configure WUT PCIe interface card for usage with Sick Laserscanner]]
 +
*[[Jumper Connections|Jumper connection for Motor off DIN1 low]]
 +
*[[InformationForApp|Information needed by the new App]]

Latest revision as of 09:43, 18 July 2022

Introduction

Robotino smartsoft icon 64.png PoweredBySmartSoft-single small.png SmartSoft is a component approach for robotics software based on communication patterns as core of a robotics component model.
This page describes how one can use SmartSoft together with Robotino.

What does SmartSoft and SmartMDSD for you?

  • A structured approach (separation of roles) to manage software efforts and system complexity in building your real world robotic applications. (The SmartSoft Approach)
  • An integrated toolchain (model driven software development) that realizes this approach and supports your system development. (The SmartMDSD Toolchain)
  • A set of reusable software components for localisation, navigation, mobile manipulation, task coordination, human robot interaction, object recognition and many more for immediate reuse in your applications. (Components)

See SmartSoft, the SmartMDSD Toolchain and components in action: Video Tutorials.

Links

SmartMDSD toolchain - All information about the toolchain, installation, tutorials, videos, downloads.

SmartSoft - The SmartSoft main repository with the core functions and most of the components.

SmartSoft - Robotino components - The SmartSoft robotino repository with the robotino specific functions.

Robotino Smartsoft packages changes

SmartSoft -- How To Use

SmartSoft through Robotino Factory

  • ready to use (on robotino startup!)
  • navigation, mapping, localization
  • Robotino Factory


Robotino-factory.png

SmartSoft through Robotino View

  • ready to use "high-level" building blocks available in Robotino View
  • navigation, mapping, localization
  • read more...


Robotinoview 1.png

SmartSoft on Robotino for
Robot Developers

  • ready to use SmartSoft Robotino components
  • usable with SmartMDSD toolchain
  • offers full SmartSoft Ecosystem functionally
  • read more...


SmartMDSD-Toolchain Deployment.png

SmartSoft -- Robotino API/Webinterface/Factory Integration

This section describes the integration or interaction of SmartSoft with the robotino services and tools (API/webinterface/factory). To enable the usage of SmartSoft "standard components" (e.g. navigation, localization and mapping) with the robotino services e.g the robotino factory, some robotino specific components have been developed (see section below).

The combination of those components enables an easy to use interface (e.g. robotino factory) to powerful functionally such as collision free navigation, SLAM, localization, management of locations and maps and tasks.

SmartSoft Robotino integration.png

Core Robotino SmartSoft components

A robot system consist typically of a set of components that makes use of specific hardware (base, laser, etc.) delivering the "basic services" and platform (specific hardware) independent components (e.g. navigation, localization).
This section describes those SmartSoft components that are specifically developed for the use with the robotino platform.

Other SmartSoft components can and are used in combination with those components as well, e.g. Sick-Laser components, all the navigation, localization and mapping components, etc. .

Name Description Component Hull
SmartRobotinoBaseServer The SmartRobotinoBaseServer provides access to the robotino robot. It handles the communication with the hardware or the simulator. It offers several services for controlling the robot, such as sending navigation commands to the base and providing access to the robot's odometry. Position updates can be sent to the component to overcome odometry failures.
SmartRobotinoBaseServer.JPG
SmartRobotinoLaserServer The SmartRobotinoLaserServer provides laser scans from the robotino SIM simulator or other scanners operated by robotino deamons. Scans can be requested by push newest or query communication.
SmartRobotinoLaserServer.JPG
SmartRobotinoIRServer The SmartRobotinoIRServer ir scans from the robotino platforms (and simulator).
SmartRobotinoIRServer.JPG
SmartRobotinoRPCBridge The SmartRobotinoRPCBridge component is the interface component between the robotino rpcd and the SmartSoftSlave components. It is used to transfer data between the two system parts, e.g. the map as it is recorded by the SLAM component.
SmartRobotinoRPCBridge.JPG
SmartRobotinoMasterRPCBridge The SmartRobotinoMasterRPCBridge component is the interface component between the the robotino rpcd and the SmartSoftMaster components. It is used to transfer data between the two system parts, e.g. the path network which is handled by the SmartPathNavigationServer.
SmartRobotinoRPCBridge.JPG
SmartRobotinoImageServer The SmartRobotinoImageServer provides images captured by a robotino daemon or the simulator.
SmartRobotinoImageServer.JPG

Robotino - Industry 4.0 SmartSoft Components (FESTO MPS)

Robotino Fleets - Architecture

Name Description Component Hull
SmartJobCenter The SmartJobCenter provides a REST API to push and manage jobs and to read job status information.
SmartFestoFleetCom The SmartFestoFleetCom is the interface component to the FESTO Fleet-Manager (MPS).
SmartFestoFleetCom.JPG
SmartFestoGripperServer The SmartFestoGripperServer provides access to the FESTO gripper for Robotino3.
SmartFestoGripperServer.JPG
SmartFestoMPSDocking The SmartFestoMPSDocking performs the docking/undocking of a Robotino3, equipped with a conveyer belt, to a FESTO MPS station.
SmartFestoMPSDocking.JPG
SmartMarkerTracker The SmartMarkerTracker is capable of detecting visual markers and docking to MPS stations equipped with visual markers.
SmartMarkerTracker.JPG
SmartNavigationPlanner The SmartNavigationPlanner uses ompl to perform planning for navigation. The component is used in the context of corridor based fleet navigation.
SmartNavigationPlanner.JPG
SmartPurePursuitNavigation The SmartPurePursuitNavigation realizes a pure-pursuit navigation, calculating velocities to follow a trajectory.
SmartPurePursuitNavigation.JPG
SmartRobotinoBatteryChargerDocking The SmartRobotinoBatteryChargerDocking performs the docking/undocking of a Robotino3 to a battery charger station.
SmartRobotinoBatteryChargerDocking.JPG
SmartRobotinoBatteryChargerDocking4 The SmartRobotinoBatteryChargerDocking4 performs the docking/undocking of a Robotino4 to a battery charger station.
SmartRobotinoBatteryChargerDocking.JPG
SmartRobotinoConveyerBeltServer The SmartRobotinoConveyerBeltServer provides access the robotino3 conveyer belt, used to transport KLTs (small load carrier).
SmartRobotinoConveyerBeltServer.JPG
SmartRobotinoMasterRPCBridge The SmartRobotinoMasterRPCBridge is the interface component between the the robotino rpcd and the SmartSoft components. It is used to transfer data between the two system parts, e.g. the map as it is recorded by the SLAM component. This component is among the set of fleet coordination components.
SmartRobotinoMasterRPCBridge.JPG
SmartPathNavigationServer The SmartPathNavigationServer is the coordinating component for corridor based local coordinated navigation with multiple robots in a fleet.
SmartPathNavigationServer.JPG
SmartPathNavigationClient The SmartPathNavigationClient is client component for corridor based fleet navigation.
SmartPathNavigationClient.JPG

Documentation