Implement new controller

Dependencies:   mbed-rtos mbed QEI BNO055 MPU6050_DMP_Nucleo-I2Cdev virgo3_imuHandler_Orion_PCB MAX17048 Servo

Fork of Orion_newPCB_test by Team Virgo v3

05_TrajectoryTracking/purePursuit.h

Committer:
akashvibhute
Date:
2016-01-18
Revision:
2:761e3c932ce0

File content as of revision 2:761e3c932ce0:

#ifndef purePursuit_H
#define purePursuit_H

#include "mbed.h"
#include "generalFunctions.h"
#include "config.h"

class purePursuit
{
public:

    purePursuit();
    
    void GenVW(float* purePursuit_velocity, float* purePursuit_omega,
               float target_waypoint[2], float target_velocity, 
               float current_position[2], float current_heading);
    
private:
    static float const ld_min = 60.0; //min purepursuit lookahead distance
    static float const ld_max = 600.0; //max purepursuit lookahead distance
    static float const trackingLimit = 60.0; //purepursuit will track only until the target distance is greater than this limit
    
    static float const drive_minV = driveTrain_minV;
    static float const drive_maxV = driveTrain_maxV;
    
    static float const purePursuit_omega_limit = DEG_TO_RAD(120);
    
    float robotFrame_targetPos[2];
    float robotFrame_targetDistance;
    float purePursuit_ld;
    float purePursuit_r;
    float purePursuit_headingE;
};


#endif