23 #include <boost/shared_ptr.hpp>
27 const double PI = 3.14159265358979323846;
32 if((x==0.0) && (y==0.0))
return 0;
37 double getWeightedDelta(
double current_position,
double old_target,
double new_target){
50 return 0.6*fabs(dtempDeltaPhi1RAD) + 0.4*fabs(dtempDeltaPhiCmd1RAD);
74 double dtempRelDistWheelsMM = sqrt( dtempDiffXMM*dtempDiffXMM + dtempDiffYMM*dtempDiffYMM );
91 for(std::vector<WheelParams>::const_iterator it = params.begin(); it != params.end(); ++it){
92 wheels_.push_back(boost::make_shared<WheelData>(it->geom));
116 double dtempAxVelYRobMMS = plt_state.
dVelLatMMS;
123 double dAngGearSteerTarget1Rad =
MathSup::atan4quad(dtempAxVelYRobMMS, dtempAxVelXRobMMS);
125 double dAngGearSteerTarget2Rad = dAngGearSteerTarget1Rad +
MathSup::PI;
129 double dVelGearDriveTarget1RadS = sqrt( (dtempAxVelXRobMMS * dtempAxVelXRobMMS) +
132 double dVelGearDriveTarget2RadS = -dVelGearDriveTarget1RadS;
155 }
else if (value < -limit) {
166 command.dVelGearSteerRadS = 0.0;
168 command.dAngGearSteerRadDelta = 0.0;
212 assert(
wheels_.size() == pos_ctrls.size());
213 for(
size_t i = 0; i <
wheels_.size(); ++i){
214 wheels_[i]->pos_params_ = pos_ctrls[i];