ZP-Jetson Communication

 

Introduction

Behaviour of both devices as they send and receive messages.

Relevant documentation

Communication & Message Formats

Search for Landing Pad

Odometry Data (type 0)

ZP sends Odometry Data (type 0) to Jetson at a rate of 10 Hz, in all flight modes.

Cruise to Search

Navigation control is transferred from ZP to Jetson by ZP sending Movement Request (type 1) to Jetson.

Search

ZP is the master device (client) and Jetson is the slave device (server). ZP will always initiate communication with Jetson.

Movement Request (type 1)

ZP sends Movement Request (type 1) with request ID of either 0, 1, or 2. Jetson responds with Relative Movement Command (type 2) or Landing Initiation Command (type 3) with the same ID.

When ZP sends a request, the drone is not moving and does not move until ZP has received a command.

Request ID

The initial ID to start search is 0. Jetson resets its search state, discarding all previous search work.

Subsequent IDs alternate between 1 and 2, allowing ZP to either send a new request or repeat the current request. Jetson stores the latest command to support request repeats.

ZP waits for Jetson to respond before sending the next request.

Timeout

If Jetson does not respond to a request within the timeout of TODO(Autonomy, EFS), the request has timed out. ZP either repeats the current request or goes to a fallback state.

See fallback section for consecutive timeouts.

Search to Landing

Navigation control is transferred from Jetson to ZP through Landing Initiation Command (type 3) with an ID of 1 or 2.

When Jetson sends Landing Initiation Command (type 3), the drone is between TODO(Autonomy, EFS) metres above the ground.

See fallback section for ID 0.

ZP Fallback

ZP considers the Jetson to have failed if any of the following occur:

  • TODO(EFS) consecutive request timeouts.

  • Jetson sends a command with ID that does not match the ZP request ID.

  • Jetson sends a Relative Movement Command (type 2) that would bring the drone outside of height limits.

  • Jetson sends a Landing Initiation Command (type 3) with ID 0.

  • Jetson sends a Landing Initiation Command (type 3) too high above the ground.

ZP must handle the Jetson failure case (e.g. by switching to operator override).

Â