Skip to content

Robot Status

sk1ll10 edited this page Sep 14, 2021 · 25 revisions

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.

Parameters for Types

Available types:

confirm

The type confirm is sent to acknowledge the receipt of a task message. The parameter field must be left empty.

missing_info

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.

unkown

The type unkown is used if a received task is unkown to the recipient. The parameter field must be left empty.

progress

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.

PerformedAction

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.

success

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.

assistance

With the status type assistance the robot can tell the speech interface that it found alternative objects / locations

  • dangerous object (param 1 object, param2 list of possible locations)
  • location unknown (param 1 object, param2 list of possible objects to place next to)

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.

Example

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"
      }
    ]    
  }
}
Clone this wiki locally