Skip to content

Robot API status

Peter Kazanzides edited this page Sep 26, 2018 · 17 revisions

Overview

A robot controller often includes a state machine to manage different phases of robot operation. CRTK does not mandate the use of a state machine, but there are some basic states that apply to most, if not all, robots. We call these meta-states. Thus, CRTK defines commands to initiate transitions from one meta-state to another and to query the current meta-state.

Robot Meta-States

The robot meta-states (hereafter called states) are illustrated in the following notional state machine:

Notional robot state machine

For clarity, all state names are UPPER-CASE and commands to transition between states are lower-case. Although not shown in the figure, state queries are also represented in lower-case. The following subsections describe the states.

DISABLED

In this state, the drive (motor) power is disabled. This is typically the initial state of the robot.

ENABLED

This state applies to robots that require a homing operation to determine the absolute joint positions. In this state, the motor power is enabled and the robot has limited motion capability. For example, it can perform homing motions, such as moving until a limit switch is encountered, or it may be able to make relative motions in joint space. For robots that do not require homing, this state is essentially combined with the HOMED state.

HOMED

In this state, the motor power is enabled and the robot is able to move, or is already moving. For robots that do not require homing, this state is essentially combined with the ENABLED state. Note that specific robot implementations may have several states in this category; for example, a separate state for each motion type.

PAUSED

In this state, the motor power is enabled, but the robot cannot be moved. The system transitions to this state in response to a pause command or some types of safety violations. Exiting this state requires an explicit command, such as resume to return to the HOMING or ENABLED state.

FAULT

The robot enters the FAULT state when a fault condition (safety violation) causes the motor power to be disabled. If robot system is able to monitor the fault condition, the system will remain in this state until the fault is cleared; once cleared, the system transitions to the DISABLED state. If the system cannot monitor the fault condition, the higher-level software can issue a disable command to attempt to transition to the DISABLED state.

State Transitions

The following table indicates the state transitions corresponding to the commands listed in the top row.

State transitions and commands
  1. Immediate transition to HOMED if robot does not require homing.
  2. home command initiates homing sequence; system remains in ENABLED state until it completes.

State Queries

The following table indicates the results of the state query commands listed in the top row.

State query commands
Clone this wiki locally