14 using namespace mvsim;
20 setpoint_lin_speed(0),
21 setpoint_ang_speed(0),
41 if (setpoint_ang_speed == 0)
47 const double R = setpoint_lin_speed / setpoint_ang_speed;
54 PID_.max_out = max_torque;
56 const double vel_act = veh_.getVelocityLocalOdoEstimate().vx;
57 const double vel_des = setpoint_lin_speed;
70 params[
"max_torque"] =
TParamEntry(
"%lf", &max_torque);
73 params[
"V"] =
TParamEntry(
"%lf", &this->setpoint_lin_speed);
74 params[
"W"] =
TParamEntry(
"%lf_deg", &this->setpoint_ang_speed);
88 setpoint_lin_speed += 0.1;
93 setpoint_lin_speed -= 0.1;
98 setpoint_ang_speed += 1.0 * M_PI / 180.0;
103 setpoint_ang_speed -= 1.0 * M_PI / 180.0;
107 setpoint_lin_speed = .0;
108 setpoint_ang_speed = .0;
114 if (in.
js && in.
js->axes.size() >= 2)
116 const auto& js = in.
js.value();
117 const float js_x = js.axes[0];
118 const float js_y = js.axes[1];
120 setpoint_lin_speed = -js_y * joyMaxLinSpeed;
121 setpoint_ang_speed = -js_x * joyMaxAngSpeed;
123 if (js.buttons.size() >= 7)
125 if (js.buttons[5]) joyMaxLinSpeed *= 1.01;
126 if (js.buttons[7]) joyMaxLinSpeed /= 1.01;
128 if (js.buttons[4]) joyMaxAngSpeed *= 1.01;
129 if (js.buttons[6]) joyMaxAngSpeed /= 1.01;
133 setpoint_lin_speed = 0;
134 setpoint_ang_speed = 0;
140 "maxLinSpeed=%.03f m/s\n"
141 "maxAngSpeed=%.03f deg/s\n",
142 joyMaxLinSpeed, mrpt::RAD2DEG(joyMaxAngSpeed));
148 "w/s=forward/backward.\n"
154 "setpoint: lin=%.03f ang=%.03f deg/s\n", setpoint_lin_speed,
155 180.0 / M_PI * setpoint_ang_speed);