most functionality to splashdwon, find neutral and start mission. short timeouts still in code for testing, will adjust to go directly to sit_idle after splashdown

Dependencies:   mbed MODSERIAL FATFileSystem

Committer:
danstrider
Date:
Mon Oct 23 12:50:53 2017 +0000
Revision:
10:085ab7328054
Child:
11:3b241ecb75ed
checked out on the hardware

Who changed what in which revision?

UserRevisionLine numberNew contents of line
danstrider 10:085ab7328054 1 #ifndef OUTERLOOP_HPP
danstrider 10:085ab7328054 2 #define OUTERLOOP_HPP
danstrider 10:085ab7328054 3
danstrider 10:085ab7328054 4 #include "mbed.h"
danstrider 10:085ab7328054 5 #include "PidController.hpp"
danstrider 10:085ab7328054 6 #include "PosVelFilter.hpp"
danstrider 10:085ab7328054 7
danstrider 10:085ab7328054 8 // This class is an outer loop controller with its own instance of a position velocity filter.
danstrider 10:085ab7328054 9
danstrider 10:085ab7328054 10 class OuterLoop {
danstrider 10:085ab7328054 11 public:
danstrider 10:085ab7328054 12 OuterLoop(float interval, int sensor);
danstrider 10:085ab7328054 13
danstrider 10:085ab7328054 14 // functions for setting up
danstrider 10:085ab7328054 15 void init();
danstrider 10:085ab7328054 16 void update();
danstrider 10:085ab7328054 17 void start();
danstrider 10:085ab7328054 18 void stop();
danstrider 10:085ab7328054 19
danstrider 10:085ab7328054 20 // setting and getting variables
danstrider 10:085ab7328054 21 void setCommand(float cmd);
danstrider 10:085ab7328054 22 float getOutput();
danstrider 10:085ab7328054 23
danstrider 10:085ab7328054 24 float getPosition();
danstrider 10:085ab7328054 25 float getVelocity();
danstrider 10:085ab7328054 26
danstrider 10:085ab7328054 27 void setControllerP(float P);
danstrider 10:085ab7328054 28 float getControllerP();
danstrider 10:085ab7328054 29
danstrider 10:085ab7328054 30 void setControllerI(float I);
danstrider 10:085ab7328054 31 float getControllerI();
danstrider 10:085ab7328054 32
danstrider 10:085ab7328054 33 void setControllerD(float D);
danstrider 10:085ab7328054 34 float getControllerD();
danstrider 10:085ab7328054 35
danstrider 10:085ab7328054 36 void setTravelLimit(float limit);
danstrider 10:085ab7328054 37 float getTravelLimit();
danstrider 10:085ab7328054 38
danstrider 10:085ab7328054 39 void setFilterFrequency(float frequency);
danstrider 10:085ab7328054 40 float getFilterFrequency;
danstrider 10:085ab7328054 41
danstrider 10:085ab7328054 42 void setDeadband(float deadband);
danstrider 10:085ab7328054 43 bool toggleDeadband(bool toggle);
danstrider 10:085ab7328054 44
danstrider 10:085ab7328054 45 protected:
danstrider 10:085ab7328054 46 PosVelFilter _filter;
danstrider 10:085ab7328054 47 PIDController _pid;
danstrider 10:085ab7328054 48 Ticker _pulse;
danstrider 10:085ab7328054 49
danstrider 10:085ab7328054 50 void refreshPVState();
danstrider 10:085ab7328054 51
danstrider 10:085ab7328054 52 float _SetPoint;
danstrider 10:085ab7328054 53 float _sensorVal;
danstrider 10:085ab7328054 54
danstrider 10:085ab7328054 55 // position and velocity in raw units
danstrider 10:085ab7328054 56 float _position;
danstrider 10:085ab7328054 57 float _velocity;
danstrider 10:085ab7328054 58
danstrider 10:085ab7328054 59 // setup parameters
danstrider 10:085ab7328054 60 float _Pgain;
danstrider 10:085ab7328054 61 float _Igain;
danstrider 10:085ab7328054 62 float _Dgain;
danstrider 10:085ab7328054 63 float _dt;
danstrider 10:085ab7328054 64 float _filterFrequency;
danstrider 10:085ab7328054 65 float _deadband;
danstrider 10:085ab7328054 66 char _sensor;
danstrider 10:085ab7328054 67 };
danstrider 10:085ab7328054 68
danstrider 10:085ab7328054 69 #endif