Skip to content

Manual control#

Description#

An interface to drive a vehicle manually through Autoware is necessary for a vehicle without a steering wheel or pedals, and for the development of a remote operation system.

Requirements#

  • The vehicle must be able to transition to a safe state when a communication problem occurs.
  • AD API must support the following commands and statuses.
    • Pedals, acceleration, or velocity as longitudinal control
    • Steering tire angle as lateral control
    • Gear
    • Turn indicators
    • Hazard lights
  • The following are under consideration.
    • Headlights
    • Wipers
    • Parking brake
    • Horn

Sequence#

The diagram shows remote control. Local control uses the same sequence with the /api/manual/local/* APIs and /api/operation_mode/change_to_local.

The application selects a manual control mode, changes the operation mode to remote, and then sends commands and the operator heartbeat while it receives the vehicle status.ApplicationAD API/api/manual/remote/control_mode/selectresponse status/api/manual/remote/control_mode/status/api/operation_mode/change_to_remoteresponse statusRepeat while driving: the three streams run in parallel/api/manual/remote/operator/heartbeat/api/manual/remote/command/*/api/vehicle/status
Select a control mode, change to the remote mode, then send commands while the vehicle status comes back.
  1. Select the control mode. Call /api/manual/remote/control_mode/select. This request fails while the operation mode is already remote. The default implementation supports only the PEDALS mode.
  2. Change the operation mode. Call /api/operation_mode/change_to_remote.
  3. Drive. Send /api/manual/remote/operator/heartbeat and the commands of the selected mode periodically. Watch /api/vehicle/status for the result.