Skip to content

System Overview

Jeremy Weed edited this page Feb 27, 2019 · 4 revisions

Software System Overview

Definitions

AHRS - “Altitude heading reference system” this sensor has an IMU (intertial measurement unit) and compass that it uses to give us our heading and acceleration. It connects to the Jetson over USB.

SMACH - (“smash”) A state machine written in Python that allows us to program complex robot behaviors

QSCU - “Qubo System Control Unit” This is the ROS node that communicates with our embedded system.

Qubobus - This is a byte-level protocol that we designed to aid in communication between the Tiva and the Jetson. It has checksumming, automatic connecting, and is written in C.

TIQU - “TIva Qubobus Unit” this is the Qubobus endpoint on the Tiva. It runs as FreeRTOS task and handles all communication with the Jetson.

I2C - This is a 2-wire, master and slave protocol we use to communicate with smaller devices in the system.

ADC - “Analog-to-digital converter” This chip converts analog readings to digital representations.

PWM - “Pulse-width modulation” This chip outputs PWM, and controls the ESCs.

ESC - “Electronic Speed Controller” These are connected to the thrusters, and control the speed and direction of the thrusters.

SLAM - “Simultaneous Location and Mapping”

Dataflow

Our robot takes in information from multiple sources - sensors on the embedded system, targets tracked by the camera system, and readings from the AHRS, and combines it into one, concrete location and heading estimate using something called a Kalman filter. Based on this location, our current progress in the course, and what we can currently see, the robot will decide what to do next using SMACH. Based on this decided target, the controls system will take the desired location/heading and current location/heading/speed and calculate the amount each thruster should spin. It sends these values to QSCU, which will transmit them over Qubobus to the embedded system, which will signal to the PWM chip what value to output to the ESCs to control the thrusters.

Clone this wiki locally