Ground-Jetson Comms Implementation

Requirements

Comm Subsystem Requirement

Competition Requirement

Priority

Comm Subsystem Requirement

Competition Requirement

Priority

Send the results of a QR Scan to the ground.

Task 2: Send coordinates after QR Scan

high

Schema

Jetson → Ground (JOGI)

// Format schema here as JSON { info: char array, 100 characters, 8 bits * 100 = 800 bits = 100bytes, // Encompasses the second line of the QR scan result date: MMDDYY, 6 characters, 8 bits * 6 chars = 48 bits = 6 bytes, time: HHMM, 4 chars, 32 bits = 4 bytes }

Encoding - This will go into the frame message section of the zigbee

Frame protocol: Comms

Message Size: 110 bytes* (Note that this does NOT mean the message length in the frame will be 110, it will be 110 + everything before the message)

info (bytes 0-99) | date (bytes 100-105) | time (bytes 106-109)

*The use of bytes here is intentional, we mean bytes not bits

Implementation - Computer Vision (OUTDATED, NEW ONE SOON)

GOJI:

All functionality for GOJI will be contained in the GroundRecieve module. We’ll define a function called recieveGround in the module that uses the decode method of the mavlink dialect then constructs a response object which gets put into a RxPy Subject. The worker will subscribe to the subject and push its latest value to the output pipeline.

GIJO

All functionality relating to GIJO will be contained in the GroundSend module. We’ll use the fifo buffer, pack and decode methods from the mavtest.py example to encode the message in the sendGround function. The worker will get messages in the request format as defined here as a “QR_INFO” message type. The GroundSendWorker will take from the pipeline in then use the sendGround method to get an encoded buffer which is then sent to the XBee interface to write.