-
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:
-
todo -> busy (robot is occupied, stall the user) -> not necessary since we are reporting what we are doing anyway anytime
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. |
place | Robot is placing an object. | Name of the object to be placed. |
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. |
way_blocked | robot cannot move to it's position | Name of the location that was the goal |
no_anomalies_found | Robot states that there are no anomalies in the scene | |
pause_task | Robot states that it is pausing a task to do something else | Name of the task |
resume_task | Robot states that is is resuming a task | Name of the task |
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 tell the speech interface which alternatives are possible for a certain type of request. This method can be used in two different scenarios:
- The robot does not know where an object should be placed -> offers alternative objects where this object could be placed alongside with a corresponding location
- The requested object is not available. The robot offers alternative objects and their current location
Parameter set:
{
"object": String,
"type": String
"alternatives": [AlternativeObject]
}
Key | Description |
---|---|
object | Object for which the alternatives were found. |
type | "no_location","not_available" |
AlternativeObject | A JSON object array containing alternative objects and their location |
Json object to describe a performed action.
{
"alternative_object": String,
"location": String
"db_location": String
}
The status type anomaly_detected is used to inform if there where one or more anomalous objects found in a specific location
Parameter set:
{
"location": String
"objects": [String]
}
Key | Description |
---|---|
location | location where the anomaly was found |
objects | list of anomalous objects |
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"
}
]
}
}