Ground-Jetson Comms Implementation
Requirements
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.