Skip to content

Robot Status

sk1ll10 edited this page Sep 16, 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.
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

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 which alternatives are possible for a certain type of request. This method can be used in two different scenarios:

  1. 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
  2. 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

AlternativeObject

Json object to describe a performed action.

{
  "alternative_object": String,
  "location": String
  "db_location": String
}

anomaly_detected

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

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"
      }
    ]    
  }
}