23 #include "joystick_thread.h"
25 #include <interfaces/MotorInterface.h>
26 #include <interfaces/JoystickInterface.h>
30 #define CFG_PREFIX "/hardware/robotino/joystick/"
31 #define CFG_AXIS_FORWARD CFG_PREFIX"axis_forward"
32 #define CFG_AXIS_SIDEWARD CFG_PREFIX"axis_sideward"
33 #define CFG_AXIS_ROTATION CFG_PREFIX"axis_rotation"
35 using namespace fawkes;
46 :
Thread(
"RobotinoJoystickThread",
Thread::OPMODE_WAITFORWAKEUP),
84 RobotinoJoystickThread::send_transrot(
float vx,
float vy,
float omega)
93 RobotinoJoystickThread::stop()
95 send_transrot(0., 0., 0.);
101 joystick_if_->
read();
104 if (joystick_if_->
num_axes() == 0) {
107 }
else if (fabsf(joystick_if_->
axis(cfg_axis_forward_)) < 0.2 &&
108 fabsf(joystick_if_->
axis(cfg_axis_sideward_)) < 0.2 &&
109 fabsf(joystick_if_->
axis(cfg_axis_rotation_)) < 0.2) {
112 float vx = joystick_if_->
axis(cfg_axis_forward_) * cfg_max_vx_;
113 float vy = joystick_if_->
axis(cfg_axis_sideward_) * cfg_max_vy_;
114 float omega = joystick_if_->
axis(cfg_axis_rotation_) * cfg_max_omega_;
116 send_transrot(vx, vy, omega);