SmartFestoFleetCom 16.04

From RobotinoWiki
Revision as of 09:46, 26 May 2014 by Verbeek (talk | contribs) (Channel Two: only used for order and error handling)

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

Status communication channel: Used only for sending status information(Will let this stay as it is now)

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.

FleetManager to SmartSoft
Command Usage Example 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
GotoPosition PositionID GotoPosition 1 Drives to Position 1
DockTo BeltID DockTo 1 Docks to Belt 1
Undock Undock Undocks if already docked
LoadBox LoadBox Loads on Box if no box already loaded on the belt and transport station ready to load
UnloadBox UnloadBox Unloads the Box if box present on the belt and transport station ready to receive
<NOT YET> Stop Stop Halt the Robotino, put the task on hold
<NOT YET> Continue Continue Resumes the task if a task is on hold
EndTask EndTask Terminates the ongoing task and stops any movement
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.
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.
DeletePosition PositionID DeletePosition 3 Delete position with PositionID. If there is no position with PositionID nothing happens.
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
SetNameForPosition PositionID name SetNameForPosition 1 RedParts Sets a tag RedParts for PostionID 1 if exists
ReloadPositionStorage ReloadPositionStorage Triggers a reload of the position storage file. This is neccessary after transfering a position storage file from another Robotino.
StartMapping StartMapping Start creation of a new map.
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)
ReLoadDefaultMap ReLoadDefaultMap ReLoadDeafault map for navigation and localization. Global localization is used unless SetRobotPose is called afterwards.
SetRobotPose x y phi SetRobotPose 1.2 2.5 90 Set the current pose of the robot x y in meter phi in DEG.
GetSystemState GetSystemState Get a SystemState message once
SmartSoft to FleetManager (Cyclic every 500ms)
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
BatteryState voltage voltageLow BatteryState 18 1 Battery voltage is 18Volts and voltage low is true
SystemState CurrentCommand CommandArgs
CurrentCommand: NoJob, StartJob, JobDone, JobError
SystemState "NoJob" Robot Idle and waiting for task
SystemState "Setup" Robot in Setup state, mapping etc.
SystemState "StartJob DeliverFromTo" A Job has been started to Drive, dock, Load, Undock, Drive to the next Position, dock , Unload, Undock
SystemState "JobDone DeliverFromTo" Box transported
SystemState "JobError DeliverFromTo PATH_BLOCKED" Robot path blocked to complete the task
SystemState "JobError GoToPosition PATH_BLOCKED" Robot path blocked to complete the task
SystemState JobError DockTo NO_DOCK_STATION Robot not close to the docking station(If the laser scanner intensity value is not as desired)
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)
SystemState JobError LoadBox NO_BOX The box was not sucessfully loaded from the transport station(detected by "Box available" digital signal)
SystemState JobError UnloadBox NO_RESPONSE_FROM_STATION The transport station is not ready to receive a box(detected by "Station Ready" digital signal)
SystemState JobError UnloadBox NO_BOX No box on top of the Robot(detected by "Box available" digital signal)
SystemState JobError UnloadBox BOX_PRESENT Task terminated but a box is still present on the robot(detected by "Box available" digital signal)
SystemState EndJob UnloadBox BOX_ABSENT Task terminated no box on the robot(detected by "Box available" digital signal)
Progress Progress 40 40% of the Job is complete

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.

FleetManager to SmartSoft
Command Usage Example Description
PUSHJOB JOBID PRIORITY ROBOTINOID FROMSTATION FROMBELT TOSTATION TOBELT

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.
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.
Order List has
No:of Orders = 2
OrderNo: 100

OrderPriority: 1
AssignedToRobot: 127.134.10.15
No:OfFromStation: 1
FromStation1: 2
FromBelt1: 1
Is1FromManual: False
No:OfToStation: 2
ToStation1: 3
ToBelt1: 1
Is1ToManual: False
ToStation2: 4
ToBelt2: 0
Is2ToManual: True

OrderNo: 101

OrderPriority: 0
AssignedToRobot: 0.0.0.0
No:OfFromStation: 2
FromStation1: 3
FromBelt1: 1
Is1FromManual: False
FromStation2: 4
FromBelt2: 0
Is2FromManual: True
No:OfToStation: 1
ToStation1: 2
ToBelt1: 1
s1ToManual: False
ErrorAck RobotID Retry/Abort ErrorAck 127.10.5.30 Retry Response of Fleet Manager to error message
Robot with IP 127.10.5.30 asked to retry its current task
ErrorAck 127.10.5.30 Abort Robot with IP 127.10.5.30 asked to Abort its complete order
ManualAck RobotID OrderID ManualAck 127.10.5.30 100 Acknowledge the box loaded or unloaded.
After receiving acknowledgement, check the “BoxPresent” sensor to give error or to continue.
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
SmartSoft to FleetManager (Responses in the order of query above)
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.

Order Assignment has
No:of Orders = 2
OrderNo: 100

AssignedToRobot: 127.134.10.15
FromStation: 1
FromBelt: 2
ToStation: 2
ToBelt1: 3

OrderNo: 101

AssignedToRobot: 120.150.10.45
FromStation: 2
FromBelt: 3
ToStation: 1
ToBelt: 2
Is2FromManual: True
RobotError Task ErrorParam RobotError DeliverFromTo PATH_BLOCKED" Robot path blocked to complete the task
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)
ManualGoal RobotID OrderID StationID StationType ManualGoal 12.10.15.1 100 1 FromStation Robot informs the fleet manager the goal position and type it reached
ManualGoal 12.10.15.1 100 1 ToStation Robot informs the fleet manager the goal position and type it reached
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

GetAllPosition id x y phi "name",id x y phi "name" ...

name must not contain comma (0x2C)

Smartsoft