2018 revision to classic DataBus AVC code.
Dependencies: LSM303DLM Servo SerialGraphicLCD L3G4200D IncrementalEncoder SimpleShell
SystemState.h
- Committer:
- shimniok
- Date:
- 2019-01-07
- Revision:
- 44:0d72a8a1288a
- Parent:
- 32:eb673f6f5734
File content as of revision 44:0d72a8a1288a:
#ifndef _SYSTEMSTATE_H #define _SYSTEMSTATE_H /** System State is the main mechanism for communicating current realtime system state to * the rest of the system for logging, data display, etc. */ #include <stdbool.h> /* struct systemState * structure containing system sensor data ****** System Status * millis number of milliseconds since epoch (or startup) * current current draw in amps * voltage voltage in volts ****** Data reported by IMU * g[3] raw 3-axis gyro values; if using 1-axis, then store data in gx * gTemp Gyro temperature * a[3] raw 3-axis accelerometer values * m[3] raw 3-axis magnetometer values; if using 2d then store data in mx and my * gHeading independently calculated gyro heading in degrees * cHeading independently calculated compass heading in degrees ****** AHRS Estimates * roll, pitch, yaw estimated attitude in degrees relative to the world frame ****** Data reported by GPS * gpsLatitude raw GPS latitude in fractional degrees (e.g., 39.123456) * gpsLongitude raw GPS longitude in fractional degrees (e.g., -104.123456 * gpsCourse_deg raw GPS course in degrees * gpsSpeed_mps raw GPS speed in m/s * gpsHDOP raw GPS Horizontal Dilution of Precision * gpsSats raw GPS Satellite fix count ****** Odometry data * lrEncDistance left rear encoder distance since last log update * rrEncDistance right rear encoder distance since last log update * lrEncSpeed left rear encoder speed * rrEncSpeed right rear encoder speed * encHeading estimated heading based on encoder readings ****** Estimated Position and Heading * estLagHeading estimated heading in degrees, lagged to sync with gps * estHeading estimated current heading * estLatitude estimated latitude in fractional degrees (e.g., 39.123456) * estLongitude estimated longitude in fractional degrees (e.g., -104.123456) * estNorthing some algorithms use UTM. Estimated UTM northing * estEasting estimated UTM easting * estX, estY some algorithms use simple x, y distance from origin (meters) ****** Waypoint data * nextWaypoint integer ID of the next waypoint * bearing estimated bearing to next waypoint in degrees * distance estimated distance to next waypoint in meters ****** Control data * throttle raw servo setting(units?) * steering raw servo setting(units?) */ typedef struct { uint64_t timestamp; double latitude; double longitude; float course; float speed; float hdop; int svcount; } GpsData; typedef struct { uint64_t timestamp; int encoder; int gyro[3]; int accel[3]; int mag[3]; } SensorData; #endif