Skip to content

Manual control#

Description#

This API is used to manually control the vehicle, and provides the same interface for different operators: remote and local. For example, the local operator controls a vehicle without a driver's seat using a joystick, while the remote operator provides remote support when problems occur with autonomous driving. The command sent will be used when operation mode is remote or local.

Operator status#

The application needs to determine whether the operator is able to drive and send that information via the operator heartbeat API (/api/manual/*/operator/heartbeat). If the operator is unable to continue driving during manual operation, Autoware will perform MRM to bring the vehicle to a safe state. For level 3 and below, the operator status is referenced even during autonomous driving.

The default implementation reports a diagnostic warning if no heartbeat arrives for 1.0 second, and a diagnostic error after 2.0 seconds.

Control mode#

Since there are multiple ways to control a vehicle, such as pedals or acceleration, the application must first select a control mode.

ModeDescription
disabledThis is the initial mode. When selected, all command APIs are unavailable.
pedalsThis mode provides longitudinal control using the pedals.
accelerationThis mode provides longitudinal control using the target acceleration.
velocityThis mode provides longitudinal control using the target velocity.

The default implementation (the manual/local and manual/remote nodes of autoware_default_adapi_universe) supports only the pedals mode. The list API returns only PEDALS, and a request to select the acceleration or velocity mode fails. A request to select a mode also fails while the operation mode is the target mode of the API, for example remote for the remote API.

Commands#

The commands available in each mode are as follows.

Commanddisabledpedalsaccelerationvelocity
pedals-✓--
acceleration--✓-
velocity---✓
steering-✓✓✓
gear-✓✓✓
turn_indicators-✓✓✓
hazard_lights-✓✓✓