Skip to content

Omni wheel drive odometry update#2286

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

Omni wheel drive odometry update#2286
Devdoot57 wants to merge 4 commits into
ros-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

codecov Bot commented Apr 11, 2026

Copy link
Copy Markdown

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 34 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.

@github-actions

github-actions Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

This PR is stale because it has been open for 45 days with no activity. Please tag a maintainer for help on completing this PR, or close it if you think it has become obsolete.

@github-actions github-actions Bot added the stale label Jun 1, 2026
@mergify

mergify Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

This pull request is in conflict. Could you fix it @Devdoot57?

@github-actions github-actions Bot removed the stale label Jun 2, 2026
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