14 using namespace mvsim;
20 setpoint_lin_speed(0),
21 setpoint_steer_ang(0),
39 const double v = setpoint_lin_speed;
41 if (setpoint_steer_ang == 0.0)
49 const double R = r2f_L_ / tan(setpoint_steer_ang);
54 twist_control_.setpoint_lin_speed = v;
55 twist_control_.setpoint_ang_speed = w;
57 twist_control_.KP = KP;
58 twist_control_.KI = KI;
59 twist_control_.KD = KD;
60 twist_control_.max_torque = max_torque;
62 twist_control_.control_step(ci, co);
73 params[
"max_torque"] =
TParamEntry(
"%lf", &max_torque);
76 params[
"V"] =
TParamEntry(
"%lf", &this->setpoint_lin_speed);
77 params[
"STEER_ANG"] =
TParamEntry(
"%lf_deg", &this->setpoint_steer_ang);
91 setpoint_lin_speed += 0.1;
96 setpoint_lin_speed -= 0.1;
101 setpoint_steer_ang += 1.0 * M_PI / 180.0;
102 mrpt::keep_min(setpoint_steer_ang, veh_.getMaxSteeringAngle());
107 setpoint_steer_ang -= 1.0 * M_PI / 180.0;
108 mrpt::keep_max(setpoint_steer_ang, -veh_.getMaxSteeringAngle());
111 setpoint_lin_speed = .0;
115 "] Teleop keys: w/s=incr/decr lin speed. "
116 "a/d=left/right steering. spacebar=stop.\n";
118 "setpoint: v=%.03f steer=%.03f deg\n", setpoint_lin_speed,
119 setpoint_steer_ang * 180.0 / M_PI);