ros2_controllers icon indicating copy to clipboard operation
ros2_controllers copied to clipboard

Allow option to compute odometry from unpowered wheels

Open wittenator opened this issue 3 months ago • 1 comments

Is your feature request related to a problem? Please describe. In the current ackermann controller the odometry is computed from the steering angle, the kinematic setup and the rotation of the traction wheels. Since the traction wheels have slip in contrast to unpowered wheels (which may be quite influential for car-like robots with high inertia), the odometry gets negatively affected by this. Maybe this also affects tickets like #937 since the default gazebo setup often results in high slip driving situations in my experiments.

Describe the solution you'd like It would be great to have an option to specify the non-traction wheels in the config of the ackermann controller and use them for the odometry computation.

Describe alternatives you've considered It would probably be possible to write a function on top of the ackermann controller that corrects for these issues by computing the slip, but that seems like an unnecessarily complex setup.

wittenator avatar Apr 28 '24 07:04 wittenator

Hi! I was thinking a bit in this direction, to make the steering_library more configurable with setups as you describe. It stopped with https://github.com/ros-controls/ros2_controllers/pull/954 waiting for reviews (you want to proofread it and leave a review there)? But I certainly won't have time before the Jazzy release to work on this again.

christophfroehlich avatar Apr 29 '24 12:04 christophfroehlich