- API Modules
Debug
- Outputs to debug pins to communicate asynchronously without blocking.
JSON Serialize
- Serializes various structs into bytes that can be sent over the network.
JSON Deserialize
- Deserializes network bytes into their respective structs.
Pathfinding
- Takes weighted block grid and finds the lowest difficulty path to the target.
Geometry
- Manages the world view held by the robot.
- Can take local readings to approximate world location.
- Can map known geometry of world onto grid for pathfinding.
- Can take new data and make predictions of the world and position with probability based on data.
Ultrasound
- Process continuous ultrasound data into probability-based world-view.
Edge
- Use the photodetector to identify the boundaries of the arena based on past and current photodetector data.
- Tasks
Sound
- Is told which sound samples to play.
- Conveys sound sample information to interrupt to fill sound buffer.
Processing
- Processes sensor data.
- Aquires sonar
Processing Grabber
- Replaces
Processing
on grabber and only processes picking up information fromGrabber Rx
.
- Replaces
Movement
- Receives movement commands based on pathfinding information from the
Data Processing
module viaNetwork Recv
. - Attempts to fulfil movement requests and periodically sends back a timestamp and movement information and probabilities to
Data Processing
viaNetwork Send
.
- Receives movement commands based on pathfinding information from the
Network Send Processing/Movement
- Receives binary format messages from modules to be encoded as JSON and sent to the
Wifly Send
module. - Uses
JSON Serialize
API to serialize messages to be sent.
- Receives binary format messages from modules to be encoded as JSON and sent to the
Network Recv Processing/Movement
- Receives JSON encoded messages from
Wifly Recv
and decodes them into binary before forwarding them to their respective location. - Uses
JSON Deserialize
API to serialize messages to be sent.
- Receives JSON encoded messages from
Wifly Send Processing/Movement
- Receives JSON messages along with reliability requirements.
- Tracks the reliability and ordering requirements of messages so they are sent as intended, adding in some extra JSON data.
Wifly Recv Processing/Movement
- Receives JSON encoded messages and decodes only reliability information, passing the JSON back to
Network Recv
depending on reliability requirements. - Tracks the reliability and ordering requirements of messages so they are received as intended, adding in some extra JSON data.
- Receives JSON encoded messages and decodes only reliability information, passing the JSON back to
- Interrupts
Wifly Rx Processing/Movement
- Receives bytes from Wifly and forwards them to
Network Recv Processing/Movement
.
- Receives bytes from Wifly and forwards them to
Wifly Tx Processing/Movement
- Receives bytes from
Network Send Processing/Movement
and sends them to the Wifly.
- Receives bytes from
Wheel Rx
- Gets approximate location information back from the wheels and sends it to
Movement
.
- Gets approximate location information back from the wheels and sends it to
Wheel Tx
- Gets wheel commands from
Movement
and controlls wheels.
- Gets wheel commands from
Ultrasound Rx
- Gets inputs from ultrasound, formats them appropriately, and sends them to
Processing
.
- Gets inputs from ultrasound, formats them appropriately, and sends them to
Ultrasound Tx
- Gets ultrasound control commands from the
Processing
module and properly drives the ultrasound.
- Gets ultrasound control commands from the
Photodetector Rx
- Gets pixel data from photodetector sensors and forwards it to
Processing
.
- Gets pixel data from photodetector sensors and forwards it to
Photodetector Tx
- Sends commands to photodetector sensor from
Processing
to control its operation.
- Sends commands to photodetector sensor from
Servo Tx
- Receives rotation requirements from
Processing
and forwars them to the servo.
- Receives rotation requirements from
Grabber Rx
- Receives grabber data from whatever sensors.
Grabber Tx
- Sends grabber commands from
Processing Grabber
.
- Sends grabber commands from
Sound Tx
- Sends bytes from sound buffer to sound module from
Sound
task.
- Sends bytes from sound buffer to sound module from