feat(hangar_sim): enable fuse velocity_decay to prevent drift after nav2 stops#674
feat(hangar_sim): enable fuse velocity_decay to prevent drift after nav2 stops#674bkanator wants to merge 2 commits into
Conversation
259fb3b to
cb84e1a
Compare
caeffa1 to
eade712
Compare
|
eade712 to
6c5ba26
Compare
|
6c5ba26 to
21a9024
Compare
📝 WalkthroughSummary by CodeRabbit
WalkthroughThis PR introduces a new ChangesMotion Model Velocity Decay Configuration
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/hangar_sim/config/fuse/fuse.yaml`:
- Around line 22-26: The new velocity_decay parameter in fuse.yaml may not be
supported by the installed fuse library; verify that PickNikRobotics/fuse#34 has
been merged and released, then pin or bump the required fuse package version in
the Dockerfile and dependency manifests (package.xml / rosdep keys) so the
runtime installs the release that adds velocity_decay, and confirm the
fixed_lag_smoother_node actually reads/validates the velocity_decay parameter
(search for fixed_lag_smoother_node and velocity_decay in the codebase and
update the node or wrapper to handle the parameter if missing).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 6858accb-009c-495f-a987-6c1239e76a56
📒 Files selected for processing (1)
src/hangar_sim/config/fuse/fuse.yaml
| # Exponential velocity decay rate (1/s). Predicted velocity decays toward zero when the | ||
| # odometry source goes silent (e.g., after a nav2 controller deactivates), preventing | ||
| # indefinite drift. Set to 0.0 to disable. k=1.0 chosen so velocity is ~95% decayed | ||
| # within 3s — long enough to not affect normal driving, short enough to kill post-nav2 drift. | ||
| velocity_decay: 1.0 |
There was a problem hiding this comment.
Verify that the fuse library version supports velocity_decay before merging.
The PR objectives state this depends on PickNikRobotics/fuse#34 being merged and the apt package being bumped in the Dockerfile. If the underlying fuse_models library doesn't yet support the velocity_decay parameter, this configuration will either:
- Fail with a parameter validation error at node startup, or
- Be silently ignored, leaving the drift issue unresolved
Before merging, confirm that:
- Add velocity_decay to Omnidirectional3D to prevent drift when odom goes silent fuse#34 has been merged and released
- The Dockerfile or dependency declarations (e.g.,
package.xml,rosdepkeys) pin or require the updated fuse version - The
fixed_lag_smoother_nodewill validate and use this parameter
#!/bin/bash
# Description: Check for fuse library version requirements and velocity_decay parameter usage
# Check if Dockerfile specifies fuse version requirements
echo "=== Checking Dockerfile for fuse version ==="
fd -t f -e Dockerfile -x rg -n "fuse"
# Check package.xml files for fuse dependencies
echo -e "\n=== Checking package.xml for fuse dependencies ==="
fd -t f "package.xml" -x rg -n -A2 "fuse"
# Search for other references to velocity_decay in the codebase
echo -e "\n=== Searching for velocity_decay references ==="
rg -n "velocity_decay"Is the velocity_decay parameter supported in the fuse ROS2 library, and in which version was it introduced?
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@src/hangar_sim/config/fuse/fuse.yaml` around lines 22 - 26, The new
velocity_decay parameter in fuse.yaml may not be supported by the installed fuse
library; verify that PickNikRobotics/fuse#34 has been merged and released, then
pin or bump the required fuse package version in the Dockerfile and dependency
manifests (package.xml / rosdep keys) so the runtime installs the release that
adds velocity_decay, and confirm the fixed_lag_smoother_node actually
reads/validates the velocity_decay parameter (search for fixed_lag_smoother_node
and velocity_decay in the codebase and update the node or wrapper to handle the
parameter if missing).
|
Summary
Enables `velocity_decay: 1.0` in `hangar_sim/config/fuse/fuse.yaml` to use the new parameter added in PickNikRobotics/fuse#34.
Fixes the fuse estimate drifting diagonally after a nav2 Objective completes and `platform_velocity_controller_nav2` deactivates. Tracked in PickNikRobotics/moveit_pro#18070.
Depends on PickNikRobotics/fuse#34 being merged and the apt package bumped in the Dockerfile first.
Claude agent checks