Difference between revisions of "SmartFestoFleetCom"
From RobotinoWiki
(→Jobs Pushed to the Fleet / Master) |
(→Fleet Management Commands Pushed to the Fleet / Master) |
||
(10 intermediate revisions by one other user not shown) | |||
Line 18: | Line 18: | ||
|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. | |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]* || || | + | |ReplacePositions [Position PositionID x y phi type]* || || type: pose parking charging charging4 |
|- | |- | ||
− | |ReplaceStations [Station StationID x y phi | + | |ReplaceStations [Station StationID x y phi station-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. | |DeletePosition PositionID||DeletePosition 3||Delete position with PositionID. If there is no position with PositionID nothing happens. | ||
Line 181: | Line 181: | ||
*'''[DOCK|UNDOCK]''' the action taken, docking or undocking to a mps station | *'''[DOCK|UNDOCK]''' the action taken, docking or undocking to a mps station | ||
|- | |- | ||
− | |PushJob '''MPSLoading''' JOBID PRIORITY ROBOTINOID [LOAD | UNLOAD] | + | |PushJob '''MPSLoading''' JOBID PRIORITY ROBOTINOID [LOAD | UNLOAD] STATIONID |
|PushJob MPSLoading 2 0 10 LOAD 1 | |PushJob MPSLoading 2 0 10 LOAD 1 | ||
| | | | ||
Line 189: | Line 189: | ||
*'''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. | *'''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 | *'''[LOAD|UNLOAD]''' the action taken, load or unload something from a map station | ||
− | *''' | + | *'''STATIONID''' station id to load or unload from |
|- | |- | ||
|PushJob '''BatteryChargerDocking''' JOBID PRIORITY ROBOTINOID [DOCK | UNDOCK] | |PushJob '''BatteryChargerDocking''' JOBID PRIORITY ROBOTINOID [DOCK | UNDOCK] | ||
Line 268: | Line 268: | ||
|If id is not a number id must not contain comma (0x2C) or whitespace. | |If id is not a number id must not contain comma (0x2C) or whitespace. | ||
|- | |- | ||
− | |AllStation id x y phi | + | |AllStation id x y phi type approach-location, id x y phi type approach-location... |
− | |AllStation 1 0.4 3.7. 10 | + | |AllStation 1 0.4 3.7. 10 SMALL-MPS 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 | |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 | ||
|- | |- | ||
− | |AllStationTypes name min-station-width max-station-width offset-between-center-of-belts offset-left-reflector-to-1stBelt-center ir-dock-stop-dist-l2-min ir-dock-stop-dist-l2-max ir-dock-stop-dist-l1 ir-dock-center-sensor-zero docking-type commincation-type number-of-belts, name min-station-width ... | + | |AllStationTypes name min-station-width max-station-width offset-between-center-of-belts offset-left-reflector-to-1stBelt-center ir-dock-stop-dist-l2-min ir-dock-stop-dist-l2-max ir-dock-stop-dist-l1 ir-dock-center-sensor-zero docking-type commincation-type number-of-belts max-reflector-dist laser-dock-stop-dist, name min-station-width ... |
− | |AllStationTypes CS-MPS 0.200 2.000 0.390 0.200 8.000 8.500 10.000 10.000 LASER-IR IR 2, MANUAL-STATION 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 NONE NONE 0 | + | |AllStationTypes CS-MPS 0.200 2.000 0.390 0.200 8.000 8.500 10.000 10.000 LASER-IR IR 2 1.200 0.280, MANUAL-STATION 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 NONE NONE 0 |
| | | | ||
|- | |- | ||
Line 303: | Line 303: | ||
|- | |- | ||
|JobInfo key:value key:value ... | |JobInfo key:value key:value ... | ||
− | |'''DeliverFromTo:''' JobInfo robotinoid:10 jobid:10 priority:1 fromstation:2 frombelt:1 tostation:3 tobelt:4 state: | + | |'''DeliverFromTo:''' JobInfo robotinoid:10 jobid:10 priority:1 fromstation:2 frombelt:1 tostation:3 tobelt:4 state:DRIVING life-cycle-state:RUNNING <br>'''GotoPosition:''' JobInfo robotinoid:10 jobid:10 state:DRIVING life-cycle-state:RUNNING |
− | |with | + | |with life-cycle-state being one of the following strings |
*NOTAVAILABLE | *NOTAVAILABLE | ||
− | * | + | *NOTSTARTED |
+ | *RUNNING | ||
+ | *FINISHED | ||
+ | *ABORTED | ||
+ | *ERROR | ||
+ | |||
+ | with STATE being one of the following strings | ||
+ | *NIL | ||
*DOCKING | *DOCKING | ||
+ | *DOCKING-DONE | ||
*UNDOCKING | *UNDOCKING | ||
+ | *UNDOCKING-DONE | ||
*DRIVING | *DRIVING | ||
+ | *DRIVING-DONE | ||
*LOADING | *LOADING | ||
+ | *LOADING-DONE | ||
*UNLOADING | *UNLOADING | ||
− | * | + | *UNLOADING-DONE |
− | |||
− | |||
− | |||
*CHARGER-DOCKING | *CHARGER-DOCKING | ||
+ | *CHARGER-DOCKING-DONE | ||
*CHARGER-UNDOCKING | *CHARGER-UNDOCKING | ||
*CHARGER-UNDOCKING-DONE | *CHARGER-UNDOCKING-DONE | ||
Line 371: | Line 380: | ||
Pushed by SmartSoft when error occurs. | Pushed by SmartSoft when error occurs. | ||
|- | |- | ||
− | | | + | |LatestJobs key:value key:value ... |
− | + | |LatestJobs jobid:8 robotinoid:6 jobtype:MPSDOCKING state:NOTSTARTED, jobid:9 robotinoid:6 jobtype:MPSDOCKING state:NOTSTARTED | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | | | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|} | |} |
Latest revision as of 09:56, 25 June 2020
Contents
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 18.04.
For the latest smartsoft-robotino version running on Ubuntu 16.04 version see this page: SmartFestoFleetCom_16.04
For the latest smartsoft-robotino version running on Ubuntu 12.04 version see this page: SmartFestoFleetCom_12.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]* | type: pose parking charging charging4 | |
ReplaceStations [Station StationID x y phi station-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 |
| |
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 |
GetAllStationTypes | GetAllStationTypes | Reads the list of all station types defined in the station-types.config |
GetRobotFleetType robotinoId | GetRobotFleetType 1 | Get the fleet-type of the robotino (transport, manipulation, etc.) |
GetRobotInfo RobotinoID |
| |
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 |
|
PushJob DeliverFromTo JOBID PRIORITY ROBOTINOID FROMSTATION FROMBELT TOSTATION TOBELT | PushJob DeliverFromTo 2 3 1 2 1 3 2 |
|
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 |
|
PushJob FollowPerson JOBID PRIORITY ROBOTINOID | PushJob FollowPerson 2 0 10 |
|
UpdateJob StartFollowPerson JOBID X Y | UpdateJob StartFollowPerson 2 -1.12 3.21 |
|
PushJob MPSDocking JOBID PRIORITY ROBOTINOID [DOCK | UNDOCK] STATIONID TOBELT | PushJob MPSDocking 2 0 10 DOCK 3 1 |
|
PushJob MPSLoading JOBID PRIORITY ROBOTINOID [LOAD | UNLOAD] STATIONID | PushJob MPSLoading 2 0 10 LOAD 1 |
|
PushJob BatteryChargerDocking JOBID PRIORITY ROBOTINOID [DOCK | UNDOCK] | PushJob BatteryChargerDocking 2 0 10 DOCK |
|
PushJob RobotGripper JOBID PRIORITY ROBOTINOID [GRASP | RELEASE] | PushJob RobotGripper 2 0 10 GRASP |
|
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 | ||
GetXLatestJobs JOB-NUMBER | GetXLatestJobs 2 | Returns the latest x jobs, sort be the time they are pushed. |
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 | |
DeleteNotRunningJobs | Delete all jobs which are not running. | |
<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 type approach-location, id x y phi type approach-location... | AllStation 1 0.4 3.7. 10 SMALL-MPS 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 | ||||||||||||||||||||||||||||
AllStationTypes name min-station-width max-station-width offset-between-center-of-belts offset-left-reflector-to-1stBelt-center ir-dock-stop-dist-l2-min ir-dock-stop-dist-l2-max ir-dock-stop-dist-l1 ir-dock-center-sensor-zero docking-type commincation-type number-of-belts max-reflector-dist laser-dock-stop-dist, name min-station-width ... | AllStationTypes CS-MPS 0.200 2.000 0.390 0.200 8.000 8.500 10.000 10.000 LASER-IR IR 2 1.200 0.280, MANUAL-STATION 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 NONE NONE 0 | |||||||||||||||||||||||||||||
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:DRIVING life-cycle-state:RUNNING GotoPosition: JobInfo robotinoid:10 jobid:10 state:DRIVING life-cycle-state:RUNNING |
with life-cycle-state being one of the following strings
with STATE being one of the following strings
Pushed by SmartSoft on state change. | ||||||||||||||||||||||||||||
JobError key:value key:value ... | JobError robotinoid:1 jobid:10 error:"DockTo NO_DOCK_STATION" |
Pushed by SmartSoft when error occurs. | ||||||||||||||||||||||||||||
LatestJobs key:value key:value ... | LatestJobs jobid:8 robotinoid:6 jobtype:MPSDOCKING state:NOTSTARTED, jobid:9 robotinoid:6 jobtype:MPSDOCKING state:NOTSTARTED |
fleetcom_request topic items handled by fleetcomd
Command | Usage Example | Description |
---|---|---|
GetMapList | ||
SetDefaultMap | ||
UploadMap | ||
DownloadMap | ||
RenameMap | ||
DeleteMap |