Difference between revisions of "SmartFestoFleetCom 16.04"

From RobotinoWiki
(FleetManager to SmartSoft)
m
 
(253 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
=TCP/IP Communication Protocol B/W Fleet Manager and SmartFestoFleetCom=
 
=TCP/IP Communication Protocol B/W Fleet Manager and SmartFestoFleetCom=
  
==FleetManager to SmartSoft==
+
This page describes the interface for the most recent smartsoft-robotino version running on Ubuntu 16.04.
 +
<br>
 +
 
 +
==Fleet Management Commands Pushed to the Fleet / Master==
 +
 
 
{|class="wikitable"
 
{|class="wikitable"
 
! Command
 
! Command
Line 7: Line 11:
 
! Description
 
! Description
 
|-
 
|-
|DeliverFromTo SourceStationID SourceBeltID DestinationStationID DestinationBeltID||DeliverFromTo 1 1 2 2||Drive to Position 1, dock to Belt 1, Load,  Undock, Drive to Position 2, dock to Belt 2, Unload, Undock
+
!colspan="3"|Position Handling
 
|-
 
|-
|GotoPosition PositionID ||GotoPosition 1 ||Drives to Position 1
+
|TeachPosition PositionID x y phi type||TeachPosition 1 0.54 23.5 45.0 pose||Teach Position with ID 1, in global coordinates x(in meters):0.54, y(in meters):23.5, phi(in degrees):45. If position ID already exists position is overwritten. Type could be of value pose or parking, parking positions will be used to park idle robots in automatic job assignment mode.
 
|-
 
|-
|DockTo BeltID||DockTo 1||Docks to Belt 1
+
|ReplacePositions [Position PositionID x y phi type]* || ||
 
|-
 
|-
|Undock||Undock||Undocks if already docked
+
|ReplaceStations [Station StationID x y phi numBelts station-type docking-type approach-location]* || || station-type: SMALL-MPS CS-MPS MANUAL-STATION docking-type: LASER-IR LASER VISION approach-location: id of the pose to approach the station
 
|-
 
|-
|LoadBox||LoadBox||Loads on Box if no box already loaded on the belt and transport station ready to load
+
|DeletePosition PositionID||DeletePosition 3||Delete position with PositionID. If there is no position with PositionID nothing happens.
 
|-
 
|-
|UnloadBox||UnloadBox||Unloads the Box if box present on the belt and transport station ready to receive
+
|DeleteAllPositions ||DeleteAllPositions||Deletes all positions.
 
|-
 
|-
|<NOT YET> Stop||Stop||Halt the Robotino, put the task on hold
+
|DeleteAllStations ||DeleteAllStations||Deletes all stations.
 
|-
 
|-
|<NOT YET> Continue||Continue||Resumes the task if a task is on hold
+
|TeachCurrentPosition RobotinoID PositionID||TeachCurrentPosition 1 1||Assign the current global position the robot with the RobotinoID the ID 1
 
|-
 
|-
|EndTask||EndTask||Terminates the ongoing task and stops any movement
+
!colspan="3"|Map Handling
 
|-
 
|-
|TeachPosition PositionID x y phi||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, phi(in degrees):45 If position ID already exists position is overwritten.
+
|StartMapping RobotinoID (mapname)||StartMapping 1 "MapName"||Start creation of a new map (SLAM) using a specific robot. The mapname is optional, if none is given a time-stamp is used (map-YYYY-MM-DD_HH-MM-SS).
 
|-
 
|-
|TeachPositionWithName PositionID x y phi "name"||TeachPositionWithName 1 0.54 23.5 45.0 "Station #1"||Teach Position with ID 1, in global coordinates x(in meters):0.54, y(in meters):23.5, phi(in degrees):45 with name "Station #1". If position ID already exists position is overwritten.
+
|AbortMapping RobotinoID||AbortMapping 1||Abort the creation of a new map (new map is discarded). The current default map is reloaded in the localization (global localization is triggered). The RobtinoID is optional of not given the command is forwarded to all robots.
 
|-
 
|-
|DeletePosition PositionID||DeletePosition 3||Delete position with PositionID. If there is no position with PositionID nothing happens.
+
|StopMapping RobotinoID||StopMapping 1||Stop map creation. New map is saved in the MapStorageDirectory. The new map is set as default map and is used for localization.
 +
|-
 +
|ReloadDefaultMap||ReLoadDefaultMap||ReLoadDeafault map for navigation and localization, as well as the corresponding poses from file. Global localization is used unless SetRobotPose is called afterwards.
 +
|-
 +
|ReloadDefaultPaths||ReloadDefaultPaths||ReloadDefaultPaths path-map for paths based navigation.
 +
|-
 +
!colspan="3"|Other
 +
|-
 +
|SetRobotPose RobotinoID x y phi||SetRobotPose 1 1.2 2.5 90 ||Set the current pose of the robot x y in meter phi in DEG.
 +
|-
 +
|SetOperationMode ROBOTINOID MODE
 +
|
 +
|
 +
*ROBOTINOID number of Robotino to change the mode for.
 +
*MODE:
 +
**'''OUTOFSERVICE''' do NOT auto-assign jobs to Robotino
 +
**'''AUTO''' auto-assign jobs to Robotino.
 +
**'''MANUAL''' do NOT auto-assign jobs to Robotino, but assign to target Robotino when individual task received.
 +
|-
 +
|ClearAllPathNetworkNodes RobotinoID
 +
|
 +
|Frees all nodes currently allocated by the robot (is acknowledged by sending AckClearAllPathNetworkNodes)
 +
|-
 +
|ShutdownRobot RobotinoID
 +
|
 +
|Stop all SmartSoft components in a coordinated manner and remove robot from fleet. In case the master is shutdown the slaves are as well.
 
|-
 
|-
|TeachCurrentPosition PositionID||TeachCurrentPosition 1||Assign the current global position the ID 1
+
|<span style="background:#ffff00"> <NOT YET> SetDriveSystem X_speed Y_speed Teta_speed </span>||SetDriveSystem 0 0 0||This command overrides the default set value in Robot base server.
 
|-
 
|-
|[[SmartFestoFleetCom#GetAllPosition|GetAllPosition]] ||GetAllPosition||Reads the list of all taught positions with its ID and Name
+
|ManualAcknowledge RobotinoID
 +
|
 +
|Acknowledge the Robotino that the box is placed/removed from it after reaching the manual pose(no docking station)
 
|-
 
|-
|SetNameForPosition PositionID name||SetNameForPosition 1 RedParts||Sets a tag RedParts for PostionID 1 if exists
+
|PauseRobot (RobotinoID)||StopRobot 1||Halt the Robotinos movement, (jobs or other activities are not affected) <br> The RobotinoID is optional, without the id the command is distributed to all robots.
 
|-
 
|-
|ReloadPositionStorage||ReloadPositionStorage||Triggers a reload of the position storage file. This is neccessary after transfering a position storage file from another Robotino.
+
|ContinueRobot (RobotinoID)||ContinueRobot 1||Resumes the robots movement <br> The RobotinoID is optional, without the id the command is distributed to all robots.
 
|-
 
|-
|StartMapping||StartMapping||Start creation of a new map.  
+
|EndTask (RobotinoID)||EndTask 1||Terminates the ongoing task and stops any movement --> set robot mode to '''OUTOFSERVICE'''<br> The RobotinoID is optional, without the id the command is distributed to all robots.
 
|-
 
|-
|StopMapping||StopMapping ||Stop map creation. Map is saved as new map  with date and time (map-YYYY-MM-DD_HH-MM-SS), in the MapStorageDirectory. (eg. map-2013-11-28_10-00-18.yaml map-2013-11-28_10-00-18.pgm)
+
 
 +
!colspan="3"|Information Queries
 +
 
 
|-
 
|-
|ReLoadDefaultMap||ReLoadDefaultMap||ReLoadDeafault map for navigation and localization. Global localization is used unless SetRobotPose is called afterwards.
+
|[[SmartFestoFleetCom#GetAllPosition|GetAllPosition]] ||GetAllPosition||Reads the list of all taught positions with its ID and Name
 
|-
 
|-
|SetRobotPose x y phi||SetRobotPose 1.2 2.5 90 ||Set the current pose of the robot x y in meter phi in DEG.
+
|GetAllStation||GetAllStation||Reads the list of all taught station
 
|-
 
|-
|GetSystemState||GetSystemState||Get a SystemState message once
+
|GetRobotFleetType robotinoId || GetRobotFleetType 1 || Get the fleet-type of the robotino (transport, manipulation, etc.)
 
|-
 
|-
|PUSHJOB JOBID PRIORITY ROBOTINOID FROMSTATION FROMBELT TOSTATION TOBELT
+
|GetRobotInfo RobotinoID
 +
|
 
|
 
|
 +
*'''RobotinoID''' ID of robot to request the RobotInfo from
 +
|-
 +
|GetAllRobotinoID
 
|
 
|
*JOBID unique number generated by the MES
+
|Reads all the RobotinoID
*PRIORITY currently not used
 
*ROBOTINOID number of Robotino that should do the job. The Robotino number is configured through the web-interface of each Robotino. The Robotino number should be made visible on each Robotino. Giving a -1 as ROBOTINOID indicates that the planner should automatically choose the Robotino fullfilling this job.
 
*FROMSTATION station id from where to load the box
 
*FROMBELT belt id from where to load the boc
 
*TOSTATION station id where to unload the box
 
*TOBELT belt id where to unload the box
 
 
|-
 
|-
|SETOPERATIONMODE ROBOTINOID MODE
+
|GetFleetState
 +
|
 +
|Get state of all robots in the fleet.
 +
|-
 +
|GetRobotIDMasterComponentsRunOn
 +
|
 +
|Get the id of the robot the master components run on (-1) of the components are not running on a robot within the fleet.
 +
|-
 +
|<span style="background:#ffff00"> <NOT YET> GETESTIMATEDJOBDURATION RobotinoID FROMSTATION FROMBELT TOSTATION TOBELT </span>
 
|
 
|
 
|
 
|
*ROBOTINOID number of Robotino to change the mode for.
+
|-
*MODE:
 
**OUTOFSERVICE do auto-assign jobs to Robotino
 
**AUTO auto-assign jobs to Robotino.
 
 
|}
 
|}
  
==SmartSoft to FleetManager (Cyclic every 500ms)==
+
==Jobs Pushed to the Fleet / Master==
 +
 
 
{|class="wikitable"
 
{|class="wikitable"
 
! Command
 
! Command
Line 75: Line 112:
 
! Description
 
! Description
 
|-
 
|-
|RobotPose x y phi||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
+
|PushJob '''JOBTYPE''' JOBID PRIORITY ROBOTINOID ..... || || Push an job to the fleet (parameters depend on job type)
 
|-
 
|-
|BatteryState voltage voltageLow||BatteryState 18 1||Battery voltage is 18Volts and voltage low is true
+
|PushJob '''GotoPosition''' JOBID PRIORITY ROBOTINOID POSE
 +
|PushJob GotoPosition 2 3 1 1
 +
|
 +
*'''GotoPosition'''
 +
*'''JOBID''' unique number generated by the MES >=1
 +
*'''PRIORITY''' currently not used
 +
*'''ROBOTINOID''' number of Robotino that should do the job. The Robotino number is configured through the web-interface of each Robotino. The Robotino number should be made visible on each Robotino. Giving a -1 as ROBOTINOID indicates that the planner should automatically choose the Robotino fullfilling this job.
 +
*'''POSE''' pose id where to go
 +
|-
 +
|PushJob '''DeliverFromTo''' JOBID PRIORITY ROBOTINOID FROMSTATION FROMBELT TOSTATION TOBELT
 +
|PushJob DeliverFromTo 2 3 1 2 1 3 2
 +
|
 +
*'''DeliverFromTo'''
 +
*'''JOBID''' unique number generated by the MES
 +
*'''PRIORITY''' currently not used
 +
*'''ROBOTINOID''' number of Robotino that should do the job. The Robotino number is configured through the web-interface of each Robotino. The Robotino number should be made visible on each Robotino. Giving a -1 as ROBOTINOID indicates that the planner should automatically choose the Robotino fullfilling this job.
 +
*'''FROMSTATION''' station id from where to load the box
 +
*'''FROMBELT''' belt id from where to load the box
 +
*'''TOSTATION''' station id where to unload the box
 +
*'''TOBELT''' belt id where to unload the box
 +
|-
 +
|PushJob '''RobotCommissioning''' JOBID PRIORITY ROBOTINOID COMMISSIONINGROBOT BOXFROMSTATION BOXFROMBELT TOSTATION TOBELT  [ORDER_ITEM QUANTITY]+
 +
|PushJob RobotCommissioning 2 0 -1 99 6 0 1 1 ITEM1 2 ITEM2 1
 +
|
 +
*'''RobotCommissioning'''
 +
*'''JOBID''' unique number generated by the MES
 +
*'''PRIORITY''' currently not used
 +
*'''ROBOTINOID''' number of Robotino that should do the job. The Robotino number is configured through the web-interface of each Robotino. The Robotino number should be made visible on each Robotino. Giving a -1 as ROBOTINOID indicates that the planner should automatically choose the Robotino fullfilling this job.
 +
*'''COMMISSIONINGROBOT''' id of the robot performing the commissioning (location of robot will be used to approach)
 +
*'''BOXFROMSTATION''' station id where to load the box
 +
*'''BOXFROMBELT''' belt id where to load the box
 +
*'''TOSTATION''' station id where to unload the box
 +
*'''TOBELT''' belt id where to unload the box
 +
*'''[ORDER_ITEM QUANTITY]+''' List of ITEMS to be commissioned (item type and the quantity of the item)
 +
|-
 +
|PushJob '''FollowPerson''' JOBID PRIORITY ROBOTINOID
 +
|PushJob FollowPerson 2 0 10
 +
|
 +
*'''FollowPerson'''
 +
*'''JOBID''' unique number generated by the MES
 +
*'''PRIORITY''' currently not used
 +
*'''ROBOTINOID''' number of Robotino that should do the job. The Robotino number is configured through the web-interface of each Robotino. The Robotino number should be made visible on each Robotino. Giving a -1 as ROBOTINOID indicates that the planner should automatically choose the Robotino fullfilling this job.
 +
|-
 +
|UpdateJob '''StartFollowPerson''' JOBID X Y
 +
|UpdateJob StartFollowPerson 2 -1.12 3.21
 +
|
 +
*'''StartFollowPerson'''
 +
*'''JOBID''' unique number generated by the MES
 +
*'''X''' X position of the person to follow in map coordinate system in m
 +
*'''Y''' Y position of the person to follow in map coordinate system in m
 +
|-
 +
|PushJob '''MPSDocking''' JOBID PRIORITY ROBOTINOID [DOCK &#124; UNDOCK] STATIONID TOBELT
 +
|PushJob MPSDocking 2 0 10 DOCK 3 1
 +
|
 +
*'''MPSDocking'''
 +
*'''JOBID''' unique number generated by the MES
 +
*'''PRIORITY''' currently not used
 +
*'''ROBOTINOID''' number of Robotino that should do the job. The Robotino number is configured through the web-interface of each Robotino. The Robotino number should be made visible on each Robotino. Giving a -1 as ROBOTINOID indicates that the planner should automatically choose the Robotino fullfilling this job.
 +
*'''STATIONID''' station id to dock to
 +
*'''FROMBELT''' belt id where to dock to
 +
*'''[DOCK|UNDOCK]''' the action taken, docking or undocking to a mps station
 
|-
 
|-
|Rowspan="14"|SystemState CurrentCommand CommandArgs <br> '''CurrentCommand:''' NoJob, StartJob, JobDone, JobError
+
|PushJob '''MPSLoading''' JOBID PRIORITY ROBOTINOID [LOAD &#124; UNLOAD] LOADMANUAL
|SystemState "NoJob"||Robot Idle and waiting for task
+
|PushJob MPSLoading 2 0 10 LOAD 1
 +
|
 +
*'''MPSLoading'''
 +
*'''JOBID''' unique number generated by the MES
 +
*'''PRIORITY''' currently not used
 +
*'''ROBOTINOID''' number of Robotino that should do the job. The Robotino number is configured through the web-interface of each Robotino. The Robotino number should be made visible on each Robotino. Giving a -1 as ROBOTINOID indicates that the planner should automatically choose the Robotino fullfilling this job.
 +
*'''[LOAD|UNLOAD]''' the action taken, load or unload something from a map station
 +
*'''LOADMANUAL''' 1 or 0 action is performed manual not using the conveyor
 
|-
 
|-
|SystemState "Setup"||Robot in Setup state, mapping etc.
+
|PushJob '''BatteryChargerDocking''' JOBID PRIORITY ROBOTINOID [DOCK &#124; UNDOCK]
|-  
+
|PushJob BatteryChargerDocking 2 0 10 DOCK
|SystemState "StartJob DeliverFromTo"||A Job has been started to Drive, dock, Load,  Undock, Drive to the next Position, dock , Unload, Undock
+
|
 +
*'''BatteryChargerDocking'''
 +
*'''JOBID''' unique number generated by the MES
 +
*'''PRIORITY''' currently not used
 +
*'''ROBOTINOID''' number of Robotino that should do the job. The Robotino number is configured through the web-interface of each Robotino. The Robotino number should be made visible on each Robotino. Giving a -1 as ROBOTINOID indicates that the planner should automatically choose the Robotino fullfilling this job.
 +
*'''[DOCK|UNDOCK]''' the action taken, docking or undocking to a charger
 
|-
 
|-
|SystemState "JobDone DeliverFromTo" ||Box transported
+
|PushJob '''RobotGripper''' JOBID PRIORITY ROBOTINOID [GRASP &#124; RELEASE]
 +
|PushJob RobotGripper 2 0 10 GRASP
 +
|
 +
*'''RobotGripper'''
 +
*'''JOBID''' unique number generated by the MES
 +
*'''PRIORITY''' currently not used
 +
*'''ROBOTINOID''' number of Robotino that should do the job. The Robotino number is configured through the web-interface of each Robotino. The Robotino number should be made visible on each Robotino. Giving a -1 as ROBOTINOID indicates that the planner should automatically choose the Robotino fullfilling this job.
 +
*'''[GRASP|RELEASE]''' the action taken, docking or undocking to a charger
 
|-
 
|-
|SystemState "JobError DeliverFromTo PATH_BLOCKED"||Robot path blocked to complete the task
+
 +
!colspan="3"|Job Management
 
|-
 
|-
|SystemState "JobError GoToPosition PATH_BLOCKED"||Robot path blocked to complete the task
+
|DeleteJob JOBID || DeleteJob 11 || Delete an already pushed, but not yet started, job. --> response: DeleteJob jobid:"id" success OR DeleteJob jobid:"id" failed  if the job is already running or fished
 
|-
 
|-
|SystemState JobError DockTo NO_DOCK_STATION||Robot not close to the docking station(If the laser scanner intensity value is not as desired)
+
|EndJob JOBID || EndJob 2 || '''JOBID''' unique number generated by the MES
 
|-
 
|-
|SystemState JobError LoadBox BOX_PRESENT||Robot is already having a box on top(detected by "Box available" digital signal)
 
 
|-
 
|-
|SystemState JobError LoadBox NO_RESPONSE_FROM_STATION||The transport station has nothing to load(detected by "Station Ready" digital signal)
+
|GetJobInfo JOBID
 +
|
 +
|
 
|-
 
|-
|SystemState JobError LoadBox NO_BOX||The box was not sucessfully loaded from the transport station(detected by "Box available" digital signal)
+
|GetJobError JOBID
 +
|
 +
|
 
|-
 
|-
|SystemState JobError UnloadBox NO_RESPONSE_FROM_STATION||The transport station is not ready to receive a box(detected by "Station Ready" digital signal)
+
|ClearError RobotinoID
 +
|
 +
|Clears the robot error state and continue with job (and redo failed part)
 
|-
 
|-
|SystemState JobError UnloadBox NO_BOX||No box on top of the Robot(detected by "Box available" digital signal)
+
|AbortJobAndClearError RobotinoID
 +
|
 +
|Abort the current job and clear the robot error state
 
|-
 
|-
|SystemState JobError UnloadBox BOX_PRESENT||Task terminated but a box is still present on the robot(detected by "Box available" digital signal)
+
|<NOT YET> InterceptJob RobotID || InterceptJob || Intercept the job, other commands can be executed meanwhile
 
|-
 
|-
|SystemState EndJob UnloadBox BOX_ABSENT||Task terminated no box on the robot(detected by "Box available" digital signal)
+
|<NOT YET> ContinueJob RobotID || JobID || Continue the intercepted job.
 
|-
 
|-
|Progress||Progress 40||40% of the Job is complete
 
 
|}
 
|}
  
==SmartSoft response to FleetManager requests==
+
== Response from Fleet / Master ==
 
{|class="wikitable"
 
{|class="wikitable"
 
! Command
 
! Command
 
! Usage Example
 
! Usage Example
 
! Description
 
! Description
|}
 
 
==Channel Two: only used for order and error handling==
 
Commands in both the directions has the format, CommandName  CommandArgument1 CommandArgument2
 
ie, Space between command name and its arguments, and additional commands appended with a newline character.
 
 
{|class="wikitable"
 
! FleetManager to SmartSoft
 
 
|-
 
|-
|'''Command'''||'''Usage Example'''||'''Description'''
+
|FleetState key:value key:value 
 +
|FleetState robotinoid:3 x:0.5 y:11.4 phi:56.32 batteryvoltage:22.5 ipaddress:192.168.1.241 robotinoid:3 x:0.5 ....
 +
|info of all robots in the fleet
 +
|-
 +
|RobotIDMasterComponentsRunOn id
 +
|RobotIDMasterComponentsRunOn 1
 +
|-
 +
|RobotFleetType robotinoId master or slave
 +
|RobotFleetType 1 master
 +
|the fleet type of robotino asked
 +
|-
 +
|AllPosition id x y phi type, id x y phi type...
 +
|AllPosition 1 0.4 3.7. 10 pose
 +
|If id is not a number id must not contain comma (0x2C) or whitespace.
 
|-
 
|-
|PUSHJOB JOBID PRIORITY ROBOTINOID FROMSTATION FROMBELT TOSTATION TOBELT
+
|AllStation id x y phi numbelts type docking-type approach-location, id x y phi  numbelts type docking-type approach-location...
OrderList NoOfOrders OrderID OrderPriority AssignToRobot NoOfFromStation FromStation1 FromBelt1 Is1FromManual . . FromStationN FromBeltN IsNFromManual NoOfToStation ToStation1 ToBelt1 Is1ToManual . . ToStationN ToBeltN IsNToManual . . ||OrderList 2 100 1 127.134.10.15 1 2 1 False 2 3 1 False 4 0 True 101 0 0.0.0.0 2 3 1 False 4 0 True 1 2 1 False|| Fleet Manager sends orders to Master Robotino.<br />
+
|AllStation 1 0.4 3.7. 10 1 SMALL-MPS LASER-IR 22
Every order can have either one “FromStation” and multiple “ToStation” or multiple “FromStation” and one “ToStation”. Master Robotino chooses the best From and To Stations.<br />
+
|If id is not a number id must not contain comma (0x2C) or whitespace. If no approach-location is set the value will be -1
Order List has  <br />
 
No:of Orders = 2 <br>
 
OrderNo: 100 <br>
 
: OrderPriority: 1 <br>
 
: AssignedToRobot: 127.134.10.15    <br>
 
: No:OfFromStation: 1              <br>
 
:: FromStation1: 2                  <br>
 
:: FromBelt1: 1                    <br>
 
:: Is1FromManual: False            <br>
 
: No:OfToStation: 2                <br>
 
:: ToStation1: 3                    <br>
 
:: ToBelt1: 1                       <br>
 
:: Is1ToManual: False              <br>
 
:: ToStation2: 4                    <br>
 
:: ToBelt2: 0                      <br>
 
:: Is2ToManual: True                <br>
 
OrderNo: 101                        <br>
 
: OrderPriority: 0                  <br>
 
: AssignedToRobot: 0.0.0.0          <br>
 
: No:OfFromStation: 2              <br>
 
:: FromStation1: 3                  <br>
 
:: FromBelt1: 1                    <br>
 
:: Is1FromManual: False            <br>
 
:: FromStation2: 4                  <br>
 
:: FromBelt2: 0                    <br>
 
:: Is2FromManual: True              <br>
 
: No:OfToStation: 1                <br>
 
:: ToStation1: 2                    <br>
 
:: ToBelt1: 1                      <br>
 
:: s1ToManual: False                <br>
 
 
 
 
|-
 
|-
|Rowspan="2"|ErrorAck RobotID Retry/Abort
+
|AllRobotinoID ID, ID  ...
|ErrorAck 127.10.5.30 Retry||Response of Fleet Manager to error message <br> Robot with IP 127.10.5.30 asked to retry its current task
+
|AllRobotinoID 1, 2 ...
 +
|ID must not contain comma (0x2C)
 
|-
 
|-
|ErrorAck 127.10.5.30 Abort||Robot with IP 127.10.5.30 asked to Abort its complete order
+
|<span style="background:#ffff00"> <NOT YET> EstimatedJobDuration TimeInSec </strike> </span>
 +
|
 +
|TimeInSec = TimeToCompleteCurrentJob + TimeToCompleteReqestedJob
 
|-
 
|-
|ManualAck RobotID OrderID ||ManualAck 127.10.5.30 100||Acknowledge the box loaded or unloaded. <br> After receiving acknowledgement, check the “BoxPresent” sensor to give error or to continue.
+
|AckClearAllPathNetworkNodes RobotinoID
 +
|
 +
|Pushed by SmartSoft when ClearAllPathNetworkNodes is called and all nodes have been cleared.
 
|-
 
|-
|ModeSelect NoOfRobot Robot1ID Robot1Mode Robot2ID Robot2Mode . . RobotNID RobotNMode||ModeSelect 3 10.12.14.1 Manual 10.12.14.2 Auto . . 10.12.14.100 OutOfService||Mode selection amongst the fleet of the Robotino
+
|GetManualAcknowledge RobotinoID
 +
|
 +
|Pushed by SmartSoft when manual pose(no docking station) reached and waiting for his acknowledgement after placing/removing the box
 
|-
 
|-
|colspan="3"| '''SmartSoft to FleetManager (Responses in the order of query above)'''
+
|DeleteJob jobid:"id" success OR failed
 +
|DeleteJob jobid:11 failed
 +
|Pushed by JobDispatcher as response to the DeleteJob message.
 
|-
 
|-
|OrderAssignment NoOfOrders OrderID AssignToRobot FromStation FromBelt ToStation ToBelt . . ||OrderAssignment 2 100 127.134.10.15 1 2 2 3 120.150.10.45 2 3 1 2|| Master Robotino informs about the assignments it has made.<br />
+
!colspan="3"|Robot State or Job Messages
Order Assignment has  <br />
 
No:of Orders = 2 <br>
 
OrderNo: 100 <br>
 
: AssignedToRobot: 127.134.10.15    <br>
 
: FromStation: 1                    <br>
 
: FromBelt: 2                      <br>
 
: ToStation: 2                      <br>
 
: ToBelt1: 3                        <br>
 
OrderNo: 101                        <br>
 
: AssignedToRobot: 120.150.10.45    <br>
 
: FromStation: 2                    <br>
 
: FromBelt: 3                      <br>
 
: ToStation: 1                      <br>
 
: ToBelt: 2                        <br>
 
: Is2FromManual: True              <br>
 
 
|-
 
|-
|Rowspan="9"|RobotError Task ErrorParam
+
|RobotInfo key:value key:value ...
|RobotError DeliverFromTo PATH_BLOCKED"||Robot path blocked to complete the task
+
|RobotInfo robotinoid:3 x:0.5 y:11.4 phi:56.32 batteryvoltage:22.5 current:1.614 laserwarning:0 lasersafety:0 boxpresent:1 state:Idle
|-         
+
|Response to GETROBOTINFO or pushed by SmartSoft if cyclic response is enabled.State can be IDLE/BUSY/ERROR.
|RobotError GoToPosition PATH_BLOCKED"||Robot path blocked to complete the task
 
|-         
 
|RobotError DockTo NO_DOCK_STATION||Robot not close to the docking station(If the laser scanner intensity value is not as desired)
 
|-         
 
|RobotError LoadBox BOX_PRESENT||Robot is already having a box on top(detected by "Box available" digital signal)
 
|-         
 
|RobotError LoadBox NO_RESPONSE_FROM_STATION||The transport station has nothing to load(detected by "Station Ready" digital signal)
 
|-         
 
|RobotError LoadBox NO_BOX||The box was not sucessfully loaded from the transport station(detected by "Box available" digital signal)
 
|-         
 
|RobotError UnloadBox NO_RESPONSE_FROM_STATION||The transport station is not ready to receive a box(detected by "Station Ready" digital signal)
 
|-         
 
|RobotError UnloadBox NO_BOX||No box on top of the Robot(detected by "Box available" digital signal)
 
|-         
 
|RobotError UnloadBox BOX_PRESENT||Task terminated but a box is still present on the robot(detected by "Box available" digital signal)
 
 
|-
 
|-
|Rowspan="2"|ManualGoal RobotID OrderID StationID StationType
+
|JobInfo key:value key:value ...
|ManualGoal 12.10.15.1 100 1 FromStation||Robot informs the fleet manager the goal position and type it reached
+
|'''DeliverFromTo:''' JobInfo robotinoid:10 jobid:10 priority:1 fromstation:2 frombelt:1 tostation:3 tobelt:4 state:STARTED <br>'''GotoPosition:''' JobInfo robotinoid:10 jobid:10 state:STARTED
|-         
+
|with STATE being one of the following strings
|ManualGoal 12.10.15.1 100 1 ToStation||Robot informs the fleet manager the goal position and type it reached
+
*NOTAVAILABLE
|-         
+
*STARTED
|Rowspan="2"|BoxStatus RobotID OrderID StationID BeltID BoxJobType
 
|BoxStatus 12.10.15.1 100 1 2 Unload||Robot informs the fleet manager the unloading of the box
 
|-         
 
|BoxStatus 12.10.15.1 100 1 2 Load||Robot informs the fleet manager the loading of the box
 
|-
 
|}
 
 
 
==GetAllPosition==
 
Return value format
 
<pre>
 
GetAllPosition id x y phi "name",id x y phi "name" ...
 
</pre>
 
name must not contain comma (0x2C)
 
 
 
==GETJOBINFO==
 
Return value format
 
<pre>
 
GETJOBINFO JOBID PRIORITY ROBOTINOID FROMSTATION FROMBELT TOSTATION TOBELT STATE
 
</pre>
 
 
 
with STATE being one of the following strings
 
*PENDING
 
 
*DOCKING
 
*DOCKING
 
*UNDOCKING
 
*UNDOCKING
Line 242: Line 296:
 
*UNLOADING
 
*UNLOADING
 
*FINISHED
 
*FINISHED
 +
*ABORTED
 +
*NOTSTARTED
 
*ERROR
 
*ERROR
 +
*CHARGER-DOCKING
 +
*CHARGER-UNDOCKING
 +
*CHARGER-UNDOCKING-DONE
  
==GETJOBERROR==
+
Pushed by SmartSoft on state change.
Return value format
+
|-
<pre>
+
|JobError key:value key:value ...
GETJOBERROR JOBID ERROR
+
|JobError robotinoid:1 jobid:10 error:"DockTo NO_DOCK_STATION"
</pre>
+
|
 
 
 
{|class="wikitable"
 
{|class="wikitable"
 
! ERROR string
 
! ERROR string
 
! Description
 
! Description
 
|-
 
|-
|DeliverFromTo PATH_BLOCKED
+
|NOERROR
|Robot path blocked to complete the task
+
|
 +
|-
 +
|GotoPosition PATH_BLOCKED
 +
|Robots path blocked, no further movement possible
 
|-
 
|-
|GoToPosition PATH_BLOCKED
+
|MPSDocking UNDOCK ROBOT_NOT_DOCKED
|Robot path blocked to complete the task
+
|Robot is not docked but job tells to undock
 
|-
 
|-
 
|DockTo NO_DOCK_STATION
 
|DockTo NO_DOCK_STATION
Line 280: Line 341:
 
|UnloadBox BOX_PRESENT
 
|UnloadBox BOX_PRESENT
 
|Task terminated but a box is still present on the robot(detected by "Box available" digital signal)
 
|Task terminated but a box is still present on the robot(detected by "Box available" digital signal)
 +
|-
 +
|DockToCharger NO_CHARGER
 +
|External power supply not found(detected by internal sensor "Battery")
 +
|-
 +
|BatteryChargerDocking UNDOCK ROBOT_NOT_DOCKED
 +
|Robot is not docked but job tells to undock
 +
|-
 +
|BatteryChargerDocking UNDOCK POWER_STILL_CONNECTED
 +
|Undocking from charger failed powersupply still connected
 +
|}
 +
 +
Pushed by SmartSoft when error occurs.
 +
|-
 +
|}
 +
 +
== Deprecated!!! Commands Pushed to Robots via Master ==
 +
 +
{|class="wikitable"
 +
! Command
 +
! Usage Example
 +
! Description
 +
|-
 +
|PushCommand RobotinoID Command_parameters||PushCommand 1 GoToPosition 2||This command is used to send out individual commands.(GoToPosition PoseNo,DockTo BeltNo,LoadBox IsStationManual,Undock,UnloadBox IsStationManual,EndTask,DockToCharger,UnDockCharger)
 +
|-
 +
|GotoPosition RobotinoID PositionID ||GotoPosition 1 1 ||Drives to Position 1
 +
|-
 +
|DockTo BeltID||DockTo 1||Docks to MPS Belt 1
 +
|-
 +
|Undock||Undock||Undocks from MPS station if already docked
 +
|-
 +
|DockToCharger ||DockToCharger||Docks to robotino charger
 +
|-
 +
|UnDockCharger||UnDockCharger||UnDockCharger from robotino charger
 +
|-
 +
|LoadBox (loadManual)||LoadBox 1||Loads on Box if no box already loaded on the belt and transport station ready to load, of parmeter (loadManual) is 1 manual loading performed
 +
|-
 +
|UnloadBox (loadManual)||UnloadBox 1||Unloads the Box if box present on the belt and transport station ready to receive
 +
|-
 +
|}
 +
 +
== Deprecated Responses !!! ==
 +
{|class="wikitable"
 +
! Command
 +
! Usage Example
 +
! Description
 +
|-
 +
|CommandInfo key:value key:value ...<NOT YET IMPLEMENTED>
 +
|CommandInfo robotinoid:10 state:"Started-* or Finished-* or Error-*"
 +
|with STATE being one of the following strings
 +
*Started-GotoPosition
 +
*Finished-GotoPosition
 +
--
 +
*Started-DockTo
 +
*Error-DockTo NO_DOCK_STATION
 +
*Finished-DockTo
 +
--
 +
*Started-Undock
 +
*Error-MPSDocking UNDOCK ROBOT_NOT_DOCKED
 +
*Finished-Undock
 +
--
 +
*Started-DockToCharger
 +
*Error-DockToCharger NO_CHARGER
 +
*Finished-DockToCharger
 +
--
 +
*Started-UnDockCharger
 +
*ERROR-BatteryChargerDocking UNDOCK ROBOT_NOT_DOCKED
 +
*ERROR-BatteryChargerDocking UNDOCK POWER_STILL_CONNECTED
 +
*Finished-UnDockCharger
 +
--
 +
*Started-LoadBox
 +
*Error-LoadBox NO_RESPONSE_FROM_STATION
 +
*Error-LoadBox BOX_PRESENT
 +
*Error-LoadBox NO_BOX
 +
*Finished-LoadBox
 +
--
 +
*Started-UnloadBox
 +
*Error-UnloadBox NO_RESPONSE_FROM_STATION
 +
*Error-UnloadBox NO_BOX
 +
*Error-UnloadBox BOX_PRESENT
 +
*Finished-UnloadBox
 +
--
 +
*Started-GripperOpen
 +
*Finished-GripperOpen EMPTY
 +
*Finished-GripperOpen FULL
 +
--
 +
*Started-GripperClose
 +
*Finished-GripperClose EMPTY
 +
*Finished-GripperClose FULL
 +
--
 +
*
 +
--
 +
*EndTaskACK
 +
*ClearErrorACK
 +
*AbortJobAndClearErrorACK
 +
--
 +
Pushed by SmartSoft on state change.
 +
|-
 +
|}
 +
 +
==fleetcom_request topic items handled by fleetcomd==
 +
{|class="wikitable"
 +
! Command
 +
! Usage Example
 +
! Description
 +
|-
 +
|GetMapList
 +
|
 +
|
 +
|-
 +
|SetDefaultMap
 +
|
 +
|
 +
|-
 +
|UploadMap
 +
|
 +
|
 +
|-
 +
|DownloadMap
 +
|
 +
|
 +
|-
 +
|RenameMap
 +
|
 +
|
 +
|-
 +
|DeleteMap
 +
|
 +
|
 
|}
 
|}
 +
  
 
[[Smartsoft]]
 
[[Smartsoft]]

Latest revision as of 10:21, 17 October 2019

TCP/IP Communication Protocol B/W Fleet Manager and SmartFestoFleetCom

This page describes the interface for the most recent smartsoft-robotino version running on Ubuntu 16.04.

Fleet Management Commands Pushed to the Fleet / Master

Command Usage Example Description
Position Handling
TeachPosition PositionID x y phi type TeachPosition 1 0.54 23.5 45.0 pose Teach Position with ID 1, in global coordinates x(in meters):0.54, y(in meters):23.5, phi(in degrees):45. If position ID already exists position is overwritten. Type could be of value pose or parking, parking positions will be used to park idle robots in automatic job assignment mode.
ReplacePositions [Position PositionID x y phi type]*
ReplaceStations [Station StationID x y phi numBelts station-type docking-type approach-location]* station-type: SMALL-MPS CS-MPS MANUAL-STATION docking-type: LASER-IR LASER VISION approach-location: id of the pose to approach the station
DeletePosition PositionID DeletePosition 3 Delete position with PositionID. If there is no position with PositionID nothing happens.
DeleteAllPositions DeleteAllPositions Deletes all positions.
DeleteAllStations DeleteAllStations Deletes all stations.
TeachCurrentPosition RobotinoID PositionID TeachCurrentPosition 1 1 Assign the current global position the robot with the RobotinoID the ID 1
Map Handling
StartMapping RobotinoID (mapname) StartMapping 1 "MapName" Start creation of a new map (SLAM) using a specific robot. The mapname is optional, if none is given a time-stamp is used (map-YYYY-MM-DD_HH-MM-SS).
AbortMapping RobotinoID AbortMapping 1 Abort the creation of a new map (new map is discarded). The current default map is reloaded in the localization (global localization is triggered). The RobtinoID is optional of not given the command is forwarded to all robots.
StopMapping RobotinoID StopMapping 1 Stop map creation. New map is saved in the MapStorageDirectory. The new map is set as default map and is used for localization.
ReloadDefaultMap ReLoadDefaultMap ReLoadDeafault map for navigation and localization, as well as the corresponding poses from file. Global localization is used unless SetRobotPose is called afterwards.
ReloadDefaultPaths ReloadDefaultPaths ReloadDefaultPaths path-map for paths based navigation.
Other
SetRobotPose RobotinoID x y phi SetRobotPose 1 1.2 2.5 90 Set the current pose of the robot x y in meter phi in DEG.
SetOperationMode ROBOTINOID MODE
  • ROBOTINOID number of Robotino to change the mode for.
  • MODE:
    • OUTOFSERVICE do NOT auto-assign jobs to Robotino
    • AUTO auto-assign jobs to Robotino.
    • MANUAL do NOT auto-assign jobs to Robotino, but assign to target Robotino when individual task received.
ClearAllPathNetworkNodes RobotinoID Frees all nodes currently allocated by the robot (is acknowledged by sending AckClearAllPathNetworkNodes)
ShutdownRobot RobotinoID Stop all SmartSoft components in a coordinated manner and remove robot from fleet. In case the master is shutdown the slaves are as well.
<NOT YET> SetDriveSystem X_speed Y_speed Teta_speed SetDriveSystem 0 0 0 This command overrides the default set value in Robot base server.
ManualAcknowledge RobotinoID Acknowledge the Robotino that the box is placed/removed from it after reaching the manual pose(no docking station)
PauseRobot (RobotinoID) StopRobot 1 Halt the Robotinos movement, (jobs or other activities are not affected)
The RobotinoID is optional, without the id the command is distributed to all robots.
ContinueRobot (RobotinoID) ContinueRobot 1 Resumes the robots movement
The RobotinoID is optional, without the id the command is distributed to all robots.
EndTask (RobotinoID) EndTask 1 Terminates the ongoing task and stops any movement --> set robot mode to OUTOFSERVICE
The RobotinoID is optional, without the id the command is distributed to all robots.
Information Queries
GetAllPosition GetAllPosition Reads the list of all taught positions with its ID and Name
GetAllStation GetAllStation Reads the list of all taught station
GetRobotFleetType robotinoId GetRobotFleetType 1 Get the fleet-type of the robotino (transport, manipulation, etc.)
GetRobotInfo RobotinoID
  • RobotinoID ID of robot to request the RobotInfo from
GetAllRobotinoID Reads all the RobotinoID
GetFleetState Get state of all robots in the fleet.
GetRobotIDMasterComponentsRunOn Get the id of the robot the master components run on (-1) of the components are not running on a robot within the fleet.
<NOT YET> GETESTIMATEDJOBDURATION RobotinoID FROMSTATION FROMBELT TOSTATION TOBELT

Jobs Pushed to the Fleet / Master

Command Usage Example Description
PushJob JOBTYPE JOBID PRIORITY ROBOTINOID ..... Push an job to the fleet (parameters depend on job type)
PushJob GotoPosition JOBID PRIORITY ROBOTINOID POSE PushJob GotoPosition 2 3 1 1
  • GotoPosition
  • JOBID unique number generated by the MES >=1
  • PRIORITY currently not used
  • ROBOTINOID number of Robotino that should do the job. The Robotino number is configured through the web-interface of each Robotino. The Robotino number should be made visible on each Robotino. Giving a -1 as ROBOTINOID indicates that the planner should automatically choose the Robotino fullfilling this job.
  • POSE pose id where to go
PushJob DeliverFromTo JOBID PRIORITY ROBOTINOID FROMSTATION FROMBELT TOSTATION TOBELT PushJob DeliverFromTo 2 3 1 2 1 3 2
  • DeliverFromTo
  • JOBID unique number generated by the MES
  • PRIORITY currently not used
  • ROBOTINOID number of Robotino that should do the job. The Robotino number is configured through the web-interface of each Robotino. The Robotino number should be made visible on each Robotino. Giving a -1 as ROBOTINOID indicates that the planner should automatically choose the Robotino fullfilling this job.
  • FROMSTATION station id from where to load the box
  • FROMBELT belt id from where to load the box
  • TOSTATION station id where to unload the box
  • TOBELT belt id where to unload the box
PushJob RobotCommissioning JOBID PRIORITY ROBOTINOID COMMISSIONINGROBOT BOXFROMSTATION BOXFROMBELT TOSTATION TOBELT [ORDER_ITEM QUANTITY]+ PushJob RobotCommissioning 2 0 -1 99 6 0 1 1 ITEM1 2 ITEM2 1
  • RobotCommissioning
  • JOBID unique number generated by the MES
  • PRIORITY currently not used
  • ROBOTINOID number of Robotino that should do the job. The Robotino number is configured through the web-interface of each Robotino. The Robotino number should be made visible on each Robotino. Giving a -1 as ROBOTINOID indicates that the planner should automatically choose the Robotino fullfilling this job.
  • COMMISSIONINGROBOT id of the robot performing the commissioning (location of robot will be used to approach)
  • BOXFROMSTATION station id where to load the box
  • BOXFROMBELT belt id where to load the box
  • TOSTATION station id where to unload the box
  • TOBELT belt id where to unload the box
  • [ORDER_ITEM QUANTITY]+ List of ITEMS to be commissioned (item type and the quantity of the item)
PushJob FollowPerson JOBID PRIORITY ROBOTINOID PushJob FollowPerson 2 0 10
  • FollowPerson
  • JOBID unique number generated by the MES
  • PRIORITY currently not used
  • ROBOTINOID number of Robotino that should do the job. The Robotino number is configured through the web-interface of each Robotino. The Robotino number should be made visible on each Robotino. Giving a -1 as ROBOTINOID indicates that the planner should automatically choose the Robotino fullfilling this job.
UpdateJob StartFollowPerson JOBID X Y UpdateJob StartFollowPerson 2 -1.12 3.21
  • StartFollowPerson
  • JOBID unique number generated by the MES
  • X X position of the person to follow in map coordinate system in m
  • Y Y position of the person to follow in map coordinate system in m
PushJob MPSDocking JOBID PRIORITY ROBOTINOID [DOCK | UNDOCK] STATIONID TOBELT PushJob MPSDocking 2 0 10 DOCK 3 1
  • MPSDocking
  • JOBID unique number generated by the MES
  • PRIORITY currently not used
  • ROBOTINOID number of Robotino that should do the job. The Robotino number is configured through the web-interface of each Robotino. The Robotino number should be made visible on each Robotino. Giving a -1 as ROBOTINOID indicates that the planner should automatically choose the Robotino fullfilling this job.
  • STATIONID station id to dock to
  • FROMBELT belt id where to dock to
  • [DOCK|UNDOCK] the action taken, docking or undocking to a mps station
PushJob MPSLoading JOBID PRIORITY ROBOTINOID [LOAD | UNLOAD] LOADMANUAL PushJob MPSLoading 2 0 10 LOAD 1
  • MPSLoading
  • JOBID unique number generated by the MES
  • PRIORITY currently not used
  • ROBOTINOID number of Robotino that should do the job. The Robotino number is configured through the web-interface of each Robotino. The Robotino number should be made visible on each Robotino. Giving a -1 as ROBOTINOID indicates that the planner should automatically choose the Robotino fullfilling this job.
  • [LOAD|UNLOAD] the action taken, load or unload something from a map station
  • LOADMANUAL 1 or 0 action is performed manual not using the conveyor
PushJob BatteryChargerDocking JOBID PRIORITY ROBOTINOID [DOCK | UNDOCK] PushJob BatteryChargerDocking 2 0 10 DOCK
  • BatteryChargerDocking
  • JOBID unique number generated by the MES
  • PRIORITY currently not used
  • ROBOTINOID number of Robotino that should do the job. The Robotino number is configured through the web-interface of each Robotino. The Robotino number should be made visible on each Robotino. Giving a -1 as ROBOTINOID indicates that the planner should automatically choose the Robotino fullfilling this job.
  • [DOCK|UNDOCK] the action taken, docking or undocking to a charger
PushJob RobotGripper JOBID PRIORITY ROBOTINOID [GRASP | RELEASE] PushJob RobotGripper 2 0 10 GRASP
  • RobotGripper
  • JOBID unique number generated by the MES
  • PRIORITY currently not used
  • ROBOTINOID number of Robotino that should do the job. The Robotino number is configured through the web-interface of each Robotino. The Robotino number should be made visible on each Robotino. Giving a -1 as ROBOTINOID indicates that the planner should automatically choose the Robotino fullfilling this job.
  • [GRASP|RELEASE] the action taken, docking or undocking to a charger
Job Management
DeleteJob JOBID DeleteJob 11 Delete an already pushed, but not yet started, job. --> response: DeleteJob jobid:"id" success OR DeleteJob jobid:"id" failed if the job is already running or fished
EndJob JOBID EndJob 2 JOBID unique number generated by the MES
GetJobInfo JOBID
GetJobError JOBID
ClearError RobotinoID Clears the robot error state and continue with job (and redo failed part)
AbortJobAndClearError RobotinoID Abort the current job and clear the robot error state
<NOT YET> InterceptJob RobotID InterceptJob Intercept the job, other commands can be executed meanwhile
<NOT YET> ContinueJob RobotID JobID Continue the intercepted job.

Response from Fleet / Master

Command Usage Example Description
FleetState key:value key:value FleetState robotinoid:3 x:0.5 y:11.4 phi:56.32 batteryvoltage:22.5 ipaddress:192.168.1.241 robotinoid:3 x:0.5 .... info of all robots in the fleet
RobotIDMasterComponentsRunOn id RobotIDMasterComponentsRunOn 1
RobotFleetType robotinoId master or slave RobotFleetType 1 master the fleet type of robotino asked
AllPosition id x y phi type, id x y phi type... AllPosition 1 0.4 3.7. 10 pose If id is not a number id must not contain comma (0x2C) or whitespace.
AllStation id x y phi numbelts type docking-type approach-location, id x y phi numbelts type docking-type approach-location... AllStation 1 0.4 3.7. 10 1 SMALL-MPS LASER-IR 22 If id is not a number id must not contain comma (0x2C) or whitespace. If no approach-location is set the value will be -1
AllRobotinoID ID, ID ... AllRobotinoID 1, 2 ... ID must not contain comma (0x2C)
<NOT YET> EstimatedJobDuration TimeInSec TimeInSec = TimeToCompleteCurrentJob + TimeToCompleteReqestedJob
AckClearAllPathNetworkNodes RobotinoID Pushed by SmartSoft when ClearAllPathNetworkNodes is called and all nodes have been cleared.
GetManualAcknowledge RobotinoID Pushed by SmartSoft when manual pose(no docking station) reached and waiting for his acknowledgement after placing/removing the box
DeleteJob jobid:"id" success OR failed DeleteJob jobid:11 failed Pushed by JobDispatcher as response to the DeleteJob message.
Robot State or Job Messages
RobotInfo key:value key:value ... RobotInfo robotinoid:3 x:0.5 y:11.4 phi:56.32 batteryvoltage:22.5 current:1.614 laserwarning:0 lasersafety:0 boxpresent:1 state:Idle Response to GETROBOTINFO or pushed by SmartSoft if cyclic response is enabled.State can be IDLE/BUSY/ERROR.
JobInfo key:value key:value ... DeliverFromTo: JobInfo robotinoid:10 jobid:10 priority:1 fromstation:2 frombelt:1 tostation:3 tobelt:4 state:STARTED
GotoPosition: JobInfo robotinoid:10 jobid:10 state:STARTED
with STATE being one of the following strings
  • NOTAVAILABLE
  • STARTED
  • DOCKING
  • UNDOCKING
  • DRIVING
  • LOADING
  • UNLOADING
  • FINISHED
  • ABORTED
  • NOTSTARTED
  • ERROR
  • CHARGER-DOCKING
  • CHARGER-UNDOCKING
  • CHARGER-UNDOCKING-DONE

Pushed by SmartSoft on state change.

JobError key:value key:value ... JobError robotinoid:1 jobid:10 error:"DockTo NO_DOCK_STATION"
ERROR string Description
NOERROR
GotoPosition PATH_BLOCKED Robots path blocked, no further movement possible
MPSDocking UNDOCK ROBOT_NOT_DOCKED Robot is not docked but job tells to undock
DockTo NO_DOCK_STATION Robot not close to the docking station(If the laser scanner intensity value is not as desired)
LoadBox BOX_PRESENT Robot is already having a box on top(detected by "Box available" digital signal)
LoadBox NO_RESPONSE_FROM_STATION The transport station has nothing to load(detected by "Station Ready" digital signal)
LoadBox NO_BOX The box was not sucessfully loaded from the transport station(detected by "Box available" digital signal)
UnloadBox NO_RESPONSE_FROM_STATION The transport station is not ready to receive a box(detected by "Station Ready" digital signal)
UnloadBox NO_BOX No box on top of the Robot(detected by "Box available" digital signal)
UnloadBox BOX_PRESENT Task terminated but a box is still present on the robot(detected by "Box available" digital signal)
DockToCharger NO_CHARGER External power supply not found(detected by internal sensor "Battery")
BatteryChargerDocking UNDOCK ROBOT_NOT_DOCKED Robot is not docked but job tells to undock
BatteryChargerDocking UNDOCK POWER_STILL_CONNECTED Undocking from charger failed powersupply still connected

Pushed by SmartSoft when error occurs.

Deprecated!!! Commands Pushed to Robots via Master

Command Usage Example Description
PushCommand RobotinoID Command_parameters PushCommand 1 GoToPosition 2 This command is used to send out individual commands.(GoToPosition PoseNo,DockTo BeltNo,LoadBox IsStationManual,Undock,UnloadBox IsStationManual,EndTask,DockToCharger,UnDockCharger)
GotoPosition RobotinoID PositionID GotoPosition 1 1 Drives to Position 1
DockTo BeltID DockTo 1 Docks to MPS Belt 1
Undock Undock Undocks from MPS station if already docked
DockToCharger DockToCharger Docks to robotino charger
UnDockCharger UnDockCharger UnDockCharger from robotino charger
LoadBox (loadManual) LoadBox 1 Loads on Box if no box already loaded on the belt and transport station ready to load, of parmeter (loadManual) is 1 manual loading performed
UnloadBox (loadManual) UnloadBox 1 Unloads the Box if box present on the belt and transport station ready to receive

Deprecated Responses !!!

Command Usage Example Description
CommandInfo key:value key:value ...<NOT YET IMPLEMENTED> CommandInfo robotinoid:10 state:"Started-* or Finished-* or Error-*" with STATE being one of the following strings
  • Started-GotoPosition
  • Finished-GotoPosition

--

  • Started-DockTo
  • Error-DockTo NO_DOCK_STATION
  • Finished-DockTo

--

  • Started-Undock
  • Error-MPSDocking UNDOCK ROBOT_NOT_DOCKED
  • Finished-Undock

--

  • Started-DockToCharger
  • Error-DockToCharger NO_CHARGER
  • Finished-DockToCharger

--

  • Started-UnDockCharger
  • ERROR-BatteryChargerDocking UNDOCK ROBOT_NOT_DOCKED
  • ERROR-BatteryChargerDocking UNDOCK POWER_STILL_CONNECTED
  • Finished-UnDockCharger

--

  • Started-LoadBox
  • Error-LoadBox NO_RESPONSE_FROM_STATION
  • Error-LoadBox BOX_PRESENT
  • Error-LoadBox NO_BOX
  • Finished-LoadBox

--

  • Started-UnloadBox
  • Error-UnloadBox NO_RESPONSE_FROM_STATION
  • Error-UnloadBox NO_BOX
  • Error-UnloadBox BOX_PRESENT
  • Finished-UnloadBox

--

  • Started-GripperOpen
  • Finished-GripperOpen EMPTY
  • Finished-GripperOpen FULL

--

  • Started-GripperClose
  • Finished-GripperClose EMPTY
  • Finished-GripperClose FULL

--

--

  • EndTaskACK
  • ClearErrorACK
  • AbortJobAndClearErrorACK

-- Pushed by SmartSoft on state change.

fleetcom_request topic items handled by fleetcomd

Command Usage Example Description
GetMapList
SetDefaultMap
UploadMap
DownloadMap
RenameMap
DeleteMap


Smartsoft