-
Notifications
You must be signed in to change notification settings - Fork 0
Robot Status
Topic: /robots/status
Usage:
Status messages are sent via this topic to update the task sender about the current status and, if necessary, ask for additional information.
Message definition:
{
"source_id": String,
"timestamp": Long,
"task_id": String,
"type": String,
"parameter": {
<data>
}
}
Key | Description |
---|---|
task_id | Id of the task this status message is related to. |
type | Status type. Allowed types and their parameter payload is described in the following. |
parameter | Parameters needed to send additional information for the status type. |
Available types:
- confirm
- missing_info
- unkown
- progress
- success
- assistance
- alternatives
- todo -> dangerous object (param 1 object, param2 list of possible locations)
- todo -> location unknown (param 1 object, param2 list of possible objects to place next to)
The type confirm is sent to acknowledge the receipt of a task message. The parameter field must be left empty.
The type missing_info is sent, if the task message was incomplete and additional information are required. To update the original task message, the task message needs to be sent again with the same task id and added parameters that were missing the first time.
Parameter set:
{
"missing_parameters": [String]
}
Key | Description |
---|---|
missing_parameters | Lists all parameters missing from the original task message. |
The type unkown is used if a received task is unkown to the recipient. The parameter field must be left empty.
The status type progress is being used to send progress updates regarding the current task.
The parameter contains a list of performed action of the robot consisting of a performed action and a possible target object the action was
performed on.
Parameter set:
{
"performed_actions": [PerformedAction]
}
Key | Description |
---|---|
performed_actions | List of performed actions described as PerformedAction objects. The PerformedAction object is described in the following. |
Json object to describe a performed action.
{
"action": String,
"target": String
}
Key | Description |
---|---|
action | Key for the action performed by the robot. |
target | Target object related to the action. Can be Null for certain actions. |
The following action keys are defined:
Action | Description | Target Meaning |
---|---|---|
person_detected | A person was detected | Target contains the name of the person if familiar, else unknown. |
goto | Robot is driving to a location. | Name of the location. |
found | Robot found an object. | Name of the found object. |
search_database | Robot searches for object in database. | Name of the searched object. |
position_unknown | Robot does not know location of object. | Object with unknown position. |
search_category | Robot searches for information about a category of objects. | Name of the category. |
search | Robot searches for object, not in the database but in the real world. | Name of the searched object. |
not_found | Robot did not find an object. | Name of the object. |
search_alternatives | Robot searches for alternatives. | Name of the object for which alternatives are being sought. |
pick | Robot is picking an object. | Name of the object to be grasped. |
handover_start | Robot is starting an handover to a person. | Name of the person, if known just user. |
handover_completed | Robot completed the handover. | Name of the user, if known just user. |
The status type success is used to inform if the task finished successfully or was a failure.
Parameter set:
{
"success": Boolean
}
Key | Description |
---|---|
success | If set to true, the task was finished successfully. If it is false, the task was aborted to to a failure or could not be finished. |
With the status type assistance the robot can ask the speech interface to get some information from the user regarding the location of an object.
Parameter set:
{
"object": String
}
Key | Description |
---|---|
object | Object name the robot does not know the location for. |
With the status type alternatives the robot can tell the speech interface that it found alternative objects.
Parameter set:
{
"object": String,
"alternatives": [String]
}
Key | Description |
---|---|
object | Object for which the alternatives were found. |
alternatives | Alternative objects for the object specified in the object key. |
This example shows a status message of type progress. Other types look similar, only type and parameter fields are filled accordingly.
{
"source_id": "R_1",
"timestamp": 1552481472,
"task_id": "Task1236861",
"type": "progress",
"parameter": {
"performed_actions": [
{
"action": "goto",
"target": "Sofa"
},
{
"action": "found",
"target": "coke"
}
]
}
}