12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- #ifndef _IV_DECITION__PID_CONTROLLER_
- #define _IV_DECITION__PID_CONTROLLER_
- #include <gps_type.h>
- #include <decition_type.h>
- #include <obstacle_type.h>
- #include<vector>
- #include <gnss_coordinate_convert.h>
- #include <adc_controller/base_controller.h>
- #include <adc_tools/transfer.h>
- namespace iv {
- namespace decition {
-
- class PIDController: public BaseController {
- public:
- float lastEA;
- float lastEP;
- float lastAng;
- float angleLimit=600;
- float lastU ;
- float lastEv ;
- float lastVt ;
- float Iv;
- float eAngSum=0;
- float ePosSum=0;
- PIDController();
- ~PIDController();
-
- iv::decition::Decition getControlDecition(GPS_INS now_gps_ins, std::vector<Point2D> path,float dSpeed, float obsDistacne,float obsSpeed,
- bool computeAngle, bool computeAcc, Decition *decition);
- float getPidAngle (float realSpeed, std::vector<Point2D> trace,int roadMode);
- float getAveDef (std::vector<Point2D> farTrace);
- float getPidAcc (GPS_INS gpsIns,float dSpeed, float obsDistacne, float obsSpeed);
- float computeU(float obsDistance, float ds,float vs,float vt,float vh,float vl,float ttc,float ttcr);
- float limiteU(float u ,float ttc);
- private:
- };
- }
- }
- #endif
|