55 const ecl::DifferentialDrive::Kinematics& kinematics() {
return diff_drive_kinematics; }
56 void update(
const uint16_t &time_stamp,
57 const uint16_t &left_encoder,
58 const uint16_t &right_encoder,
59 ecl::linear_algebra::Vector3d &pose_update,
60 ecl::linear_algebra::Vector3d &pose_update_rates);
62 void getWheelJointStates(
double &wheel_left_angle,
double &wheel_left_angle_rate,
63 double &wheel_right_angle,
double &wheel_right_angle_rate);
64 void setVelocityCommands(
const double &vx,
const double &wz);
65 void velocityCommands(
const double &vx,
const double &wz);
66 void velocityCommands(
const short &cmd_speed,
const short &cmd_radius);
67 void velocityCommands(
const std::vector<double> &cmd) { velocityCommands(cmd[0], cmd[1]); }
68 void velocityCommands(
const std::vector<short> &cmd) { velocityCommands(cmd[0], cmd[1]); }
73 std::vector<short> velocityCommands();
74 std::vector<double> pointVelocity()
const;
79 double wheel_bias()
const {
return bias; }
82 unsigned short last_timestamp;
83 double last_velocity_left, last_velocity_right;
84 double last_diff_time;
86 unsigned short last_tick_left, last_tick_right;
87 double last_rad_left, last_rad_right;
90 std::vector<double> point_velocity;
95 const double tick_to_rad;
97 ecl::DifferentialDrive::Kinematics diff_drive_kinematics;
98 ecl::Mutex velocity_mutex, state_mutex;
101 short bound(
const double &value);