Skip to content

Omni wheel drive odometry update#2286

Open
Devdoot57 wants to merge 4 commits intoros-controls:masterfrom
Devdoot57:omni-drive-odom-update
Open

Omni wheel drive odometry update#2286
Devdoot57 wants to merge 4 commits intoros-controls:masterfrom
Devdoot57:omni-drive-odom-update

Conversation

@Devdoot57
Copy link
Copy Markdown
Contributor

Description

This PR updates the omni_wheel_drive_controller odometry implementation to use double dt for integration instead of relying on rclcpp::Time (matching #1854). It also introduces a comprehensive gtest suite to verify the holonomic kinematics and integration math (matching #2099).

This rolls out the architectural improvements requested in #2039 for the omni-wheel base.

Changes:

  • Odometry API: Deprecated updateFromPos, updateFromVel, and updateOpenLoop. Replaced with update_from_pos, update_from_vel, and try_update_open_loop.
  • Controller Loop: Updated the main controller update to account for the above mentioned changes.
  • Testing: Added test_odometry.cpp covering:
    • Independent holonomic Y and X movements.
    • Exact arc integration for simultaneous X, Y, and rotational velocities.
    • Boundary checks for small dt rejection.

@codecov
Copy link
Copy Markdown

codecov bot commented Apr 11, 2026

Codecov Report

❌ Patch coverage is 86.36364% with 9 lines in your changes missing coverage. Please review.
✅ Project coverage is 84.65%. Comparing base (6c1299f) to head (0f1d589).
⚠️ Report is 2 commits behind head on master.

Files with missing lines Patch % Lines
omni_wheel_drive_controller/src/odometry.cpp 80.64% 4 Missing and 2 partials ⚠️
...ive_controller/src/omni_wheel_drive_controller.cpp 25.00% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2286      +/-   ##
==========================================
- Coverage   84.72%   84.65%   -0.08%     
==========================================
  Files         153      154       +1     
  Lines       15362    15421      +59     
  Branches     1332     1334       +2     
==========================================
+ Hits        13016    13054      +38     
- Misses       1858     1878      +20     
- Partials      488      489       +1     
Flag Coverage Δ
unittests 84.65% <86.36%> (-0.08%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...r/include/omni_wheel_drive_controller/odometry.hpp 100.00% <ø> (ø)
omni_wheel_drive_controller/test/test_odometry.cpp 100.00% <100.00%> (ø)
...ive_controller/src/omni_wheel_drive_controller.cpp 82.62% <25.00%> (-0.39%) ⬇️
omni_wheel_drive_controller/src/odometry.cpp 65.04% <80.64%> (-16.29%) ⬇️

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant