diff --git a/msg/WheelEncoders.msg b/msg/WheelEncoders.msg index ab310ac972..a4f3955dcb 100644 --- a/msg/WheelEncoders.msg +++ b/msg/WheelEncoders.msg @@ -1,5 +1,5 @@ uint64 timestamp # time since system start (microseconds) -# Two wheels: 0 left, 1 right +# Two wheels: 0 right, 1 left float32[2] wheel_speed # [rad/s] float32[2] wheel_angle # [rad] diff --git a/src/drivers/roboclaw/Roboclaw.cpp b/src/drivers/roboclaw/Roboclaw.cpp index ea12be76f0..28e0cee058 100644 --- a/src/drivers/roboclaw/Roboclaw.cpp +++ b/src/drivers/roboclaw/Roboclaw.cpp @@ -157,8 +157,8 @@ int Roboclaw::initializeUART() bool Roboclaw::updateOutputs(bool stop_motors, uint16_t outputs[MAX_ACTUATORS], unsigned num_outputs, unsigned num_control_groups_updated) { - float left_motor_output = -((float)outputs[1] - 128.0f) / 127.f; float right_motor_output = ((float)outputs[0] - 128.0f) / 127.f; + float left_motor_output = -((float)outputs[1] - 128.0f) / 127.f; if (stop_motors) { setMotorSpeed(Motor::Left, 0.f); @@ -234,10 +234,10 @@ int Roboclaw::readEncoder() int32_t position_right = swapBytesInt32(&buffer_positon[0]); wheel_encoders_s wheel_encoders{}; - wheel_encoders.wheel_speed[0] = static_cast(speed_left) / _param_rbclw_counts_rev.get() * M_TWOPI_F; - wheel_encoders.wheel_speed[1] = static_cast(speed_right) / _param_rbclw_counts_rev.get() * M_TWOPI_F; - wheel_encoders.wheel_angle[0] = static_cast(position_left) / _param_rbclw_counts_rev.get() * M_TWOPI_F; - wheel_encoders.wheel_angle[1] = static_cast(position_right) / _param_rbclw_counts_rev.get() * M_TWOPI_F; + wheel_encoders.wheel_speed[0] = static_cast(speed_right) / _param_rbclw_counts_rev.get() * M_TWOPI_F; + wheel_encoders.wheel_speed[1] = static_cast(speed_left) / _param_rbclw_counts_rev.get() * M_TWOPI_F; + wheel_encoders.wheel_angle[0] = static_cast(position_right) / _param_rbclw_counts_rev.get() * M_TWOPI_F; + wheel_encoders.wheel_angle[1] = static_cast(position_left) / _param_rbclw_counts_rev.get() * M_TWOPI_F; wheel_encoders.timestamp = hrt_absolute_time(); _wheel_encoders_pub.publish(wheel_encoders); diff --git a/src/drivers/roboclaw/Roboclaw.hpp b/src/drivers/roboclaw/Roboclaw.hpp index 26e7f9e628..768198be4e 100644 --- a/src/drivers/roboclaw/Roboclaw.hpp +++ b/src/drivers/roboclaw/Roboclaw.hpp @@ -65,8 +65,8 @@ public: virtual ~Roboclaw(); enum class Motor { - Left = 0, - Right = 1 + Right = 0, + Left = 1 }; static int task_spawn(int argc, char *argv[]); ///< @see ModuleBase