SmartFestoFleetCom 12.04

From RobotinoWiki

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 12.04.

FleetManager to SmartSoft

Command Usage Example Description
GotoPosition RobotinoID PositionID GotoPosition 1 1 Drives to Position 1
DockTo BeltID DockTo 1 Docks to MPS station 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
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.
<NOT YET> InterceptJob RobotID InterceptJob Intercept the job, other commands can be executed meanwhile
<NOT YET> ContinueJob RobotID JobID Continue the intercepted job.
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.
TeachPosition PositionID x y phi numBelts distance TeachPosition 1 0.54 23.5 45.0 3 0.85 Teach Position with ID 1, in global coordinates x(in meters):0.54, y(in meters):23.5, phi(in degrees):45. In front of the position there is a station with 3 belts. The distance from position to station is 0.85m. If position ID already exists position is overwritten. If the position is not connected to a station set numBelts=0 and distance=0.
ReplacePositions [Position PositionID x y phi numBelts distance]+
DeletePosition PositionID DeletePosition 3 Delete position with PositionID. If there is no position with PositionID nothing happens.
DeleteAllPositions DeleteAllPositions Deletes all positions.
TeachCurrentPosition PositionID TeachCurrentPosition 1 Assign the current global position the ID 1
GetAllPosition GetAllPosition Reads the list of all taught positions with its ID and Name
StartMapping (mapname) StartMapping "MapName" Start creation of a new map (SLAM). The mapname is optional, if none is given a time-stamp is used (map-YYYY-MM-DD_HH-MM-SS).
AbortMapping AbortMapping Abort the creation of a new map (new map is discarded). The current default map is reloaded in the localization (global localization is triggered).
StopMapping StopMapping 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.
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.
GetMyRobotinoId GetMyRobotinoId Get the ID of the robotino
GetRobotFleetType robotinoId GetRobotFleetType 1 Get the fleet-type of the robotino (master or slave)
Commands for MASTER robot in Fleet
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
  • 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 IsFromManual TOSTATION TOBELT IsToManual PushJob DeliverFromTo 2 3 1 2 1 0 3 2 0
  • 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
  • IsFromManual True if the pick up station is a manual position(No docking station)
  • TOSTATION station id where to unload the box
  • TOBELT belt id where to unload the box
  • IsToManual True if drop-off station is a manual position(No docking station)
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
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)
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.
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
ManualAcknowledge RobotinoID Acknowledge the Robotino that the box is placed/removed from it after reaching the manual pose(no docking station)
<NOT YET> GETESTIMATEDJOBDURATION RobotinoID FROMSTATION FROMBELT TOSTATION TOBELT
ClearAllPathNetworkNodes RobotinoID Frees all nodes currently allocated by the robot
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.
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.
<NOT YET> SetDriveSystem X_speed Y_speed Teta_speed SetDriveSystem 0 0 0 This command overrides the default set value in Robot base server.

SmartSoft response to FleetManager requests

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
MyRobotinoId id MyRobotinoId 1 the id of the asked robotino
RobotFleetType robotinoId master or slave RobotFleetType 1 master the fleet type of robotino asked
AllPosition id x y phi numBelts distance,id x y phi numBelts distance ... AllPosition 1 0.4 3.7. 10 3 0.85 If id is not a number id must not contain comma (0x2C) or whitespace. If the position is not connected to a station than numBelts=0
AllRobotinoID ID, ID ... AllRobotinoID 1, 2 ... ID must not contain comma (0x2C)
RobotInfo key:value key:value ... RobotInfo robotinoid:1 x:2.272 y:1.124 phi:-31.825 batteryvoltage:28.860 current:17.190 laserwarning:0 lasersafety:0 boxpresent:0 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

Pushed by SmartSoft on state change.

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
  • Finished-Undock

--

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

--

  • Started-UnDockCharger
  • Finished-UnDockCharger

--

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

--

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

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
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")

Pushed by SmartSoft when error occurs.

<NOT YET> EstimatedJobDuration TimeInSec TimeInSec = TimeToCompleteCurrentJob + TimeToCompleteReqestedJob
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.

fleetcom_request topic items handled by fleetcomd

Command Usage Example Description
GetMapList
SetDefaultMap
UploadMap
DownloadMap
RenameMap
DeleteMap


Smartsoft