ZP-Jetson Communication
Â
Introduction
Behaviour of both devices as they send and receive messages.
Relevant documentation
Communication & Message Formats
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).
Â