12 using namespace mvsim;
36 const auto sp = setpoint();
37 this->veh_.setTwist(sp);
45 auto lck = mrpt::lockHelper(setpointMtx_);
61 setpoint_.omega += 2.0 * M_PI / 180;
66 setpoint_.omega -= 2.0 * M_PI / 180;
71 setpoint_ = {0, 0, 0};
78 if (in.
js && in.
js->axes.size() >= 2)
80 const auto& js = in.
js.value();
81 const float js_x = js.axes[0];
82 const float js_y = js.axes[1];
84 setpoint_.vx = -js_y * joyMaxLinSpeed;
85 setpoint_.omega = -js_x * joyMaxAngSpeed;
87 if (js.buttons.size() >= 7)
89 if (js.buttons[5]) joyMaxLinSpeed *= 1.01;
90 if (js.buttons[7]) joyMaxLinSpeed /= 1.01;
92 if (js.buttons[4]) joyMaxAngSpeed *= 1.01;
93 if (js.buttons[6]) joyMaxAngSpeed /= 1.01;
96 if (js.buttons[3]) setpoint_ = {0, 0, 0};
101 "maxLinSpeed=%.03f m/s\n"
102 "maxAngSpeed=%.03f deg/s\n",
103 joyMaxLinSpeed, mrpt::RAD2DEG(joyMaxAngSpeed));
109 "w/s=forward/backward.\n"
115 "setpoint: lin=%.03f ang=%.03f deg/s\n", setpoint_.vx, 180.0 / M_PI * setpoint_.omega);