Skip to content

Bunch of navigation improvements#118

Merged
ErikCald merged 9 commits into
mainfrom
erik-last-weekend-nav-scaryness
May 15, 2026
Merged

Bunch of navigation improvements#118
ErikCald merged 9 commits into
mainfrom
erik-last-weekend-nav-scaryness

Conversation

@ErikCald
Copy link
Copy Markdown
Contributor

This pull request introduces two main sets of changes: (1) enhancements to the compressed_telemetry_cpp package to support efficient and configurable TF message relaying and telemetry, and (2) the addition of a new "TruncatePoses" Behavior Tree node in the cprt_behavior_tree_plugins package. There are also minor updates to costmap plugins and RViz configurations.

TF Telemetry and Relay Enhancements

  • Added two new components to compressed_telemetry_cpp:
    • TFTelemetry: A node that subscribes to /tf, filters and caches transforms, and periodically publishes a reduced set on /telemetry/tf for efficient radio transmission. It supports allowed frame filtering and logs bandwidth/stats.
    • TFRelayNode: A node that bridges /telemetry/tf (best effort) to /viz/tf (reliable), ensuring RViz receives reliable TF data.
  • Updated CMakeLists.txt to build and register the new nodes, add dependencies (tf2_msgs, geometry_msgs), and install executables. [1] [2] [3]
  • Modified the launch file to include the new tf_relay_node and remap /tf in RViz to /viz/tf.
  • Simplified the RViz config by removing many frame visualizations and updating the camera view. [1] [2] [3] [4] [5]

Behavior Tree Plugins

  • Added a new TruncatePoses synchronous action node:
    • Allows truncating a list of PoseStamped goals to a configurable length within a Behavior Tree.
    • Includes implementation, header, CMake registration, and export. [1] [2] [3] [4]

Other Minor Changes

  • Extended GridmapLayer with new state members for bounds tracking and a parameter for interpolation. [1] [2]

These changes collectively improve the reliability and efficiency of TF data handling over unreliable links and add useful Behavior Tree functionality for navigation.

@ErikCald ErikCald requested review from ConnorNeed and Copilot May 15, 2026 04:06
@ErikCald ErikCald self-assigned this May 15, 2026
@ErikCald
Copy link
Copy Markdown
Contributor Author

im gonna merge this quickly once i see the copilot review so i can have a docker image tomorrow

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates rover navigation behavior with new TF telemetry/relay components, a new Behavior Tree pose truncation plugin, revised search patterns, and tuning/configuration changes for Nav2, costmaps, RViz, ZED, and localization.

Changes:

  • Adds TF telemetry publishing and relay support in compressed_telemetry_cpp.
  • Adds TruncatePoses BT plugin and wires it into search navigation.
  • Tunes planning/control/costmap/search parameters and updates RViz/search pattern configs.

Reviewed changes

Copilot reviewed 20 out of 20 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
src/Nav/navigation/rviz/costmap_trav.rviz Updates displayed frames, paths, visibility, and camera view.
src/Nav/navigation/params/nav2.yaml Adds BT plugin registration and retunes planners, smoothers, controllers, costmaps, and velocity smoothing.
src/Nav/navigation/config/zed/zed_override_params.yaml Adjusts ZED publish rate, depth range, and stabilization.
src/Nav/navigation/config/elevation_mapping/postprocessing_traversability.yaml Increases roughness weighting in traversability expression.
src/Nav/navigation/behavior_trees/bt_swerve_search_tree.xml Adds pose truncation and switches to search-specific planner/controller IDs.
src/Nav/navigation/behavior_trees/bt_swerve_dynamic_replanning.xml Switches to transit-specific planner/controller IDs and adjusts recoveries.
src/Nav/nav_commanders/nav_commanders/search_pattern_utils.py Adds filleted-square search pattern generation and plotting updates.
src/Nav/nav_commanders/nav_commanders/cprt_commander.py Switches mission configs to square search patterns and adds BT path fallback.
src/Nav/nav_commanders/config/search_patterns.yaml Adds square/filleted-square search pattern configs.
src/Nav/localization/launch/ekf.launch.py Launches TF telemetry with configurable rate and allowed frames.
src/Nav/cprt_costmap_plugins/src/gridmap_layer.cpp Adds interpolation/logging options and rewrites gridmap-to-costmap update logic.
src/Nav/cprt_costmap_plugins/include/cprt_costmap_plugins/gridmap_layer.hpp Adds bounds, interpolation, and logging state members.
src/Nav/cprt_behavior_tree_plugins/src/truncate_poses_action.cpp Implements the new synchronous TruncatePoses BT action.
src/Nav/cprt_behavior_tree_plugins/include/cprt_behavior_tree_plugins/truncate_poses_action.hpp Declares the new TruncatePoses BT action and ports.
src/Nav/cprt_behavior_tree_plugins/CMakeLists.txt Builds, installs, and exports the new BT plugin library.
src/Nav/compressed_telemetry_cpp/src/TFTelemetry.cpp Adds throttled/filtered /tf telemetry publisher.
src/Nav/compressed_telemetry_cpp/src/TFRelay.cpp Adds telemetry TF relay from /telemetry/tf to /viz/tf.
src/Nav/compressed_telemetry_cpp/rviz/compressed_nav2.rviz Simplifies TF display and updates RViz view.
src/Nav/compressed_telemetry_cpp/launch/compressed_nav2_viz.launch.py Starts TF relay and remaps RViz TF input to /viz/tf.
src/Nav/compressed_telemetry_cpp/CMakeLists.txt Builds/registers new TF telemetry and relay components.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +16 to +17
find_package(tf2_msgs REQUIRED)
find_package(geometry_msgs REQUIRED)
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot apply changes based on this feedback

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Applied in commit f272408 by adding <depend>tf2_msgs</depend> and <depend>geometry_msgs</depend> to compressed_telemetry_cpp/package.xml so package metadata matches CMake dependencies.

Comment thread src/Nav/localization/launch/ekf.launch.py
Comment thread src/Nav/compressed_telemetry_cpp/src/TFRelay.cpp Outdated
Comment thread src/Nav/nav_commanders/nav_commanders/search_pattern_utils.py
Comment thread src/Nav/navigation/params/nav2.yaml Outdated
ErikCald and others added 3 commits May 15, 2026 00:17
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Agent-Logs-Url: https://github.com/CPRT/rover/sessions/35c8b11c-efb7-4335-aa83-9a3c769fd5b0

Co-authored-by: ErikCald <43829793+ErikCald@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Agent-Logs-Url: https://github.com/CPRT/rover/sessions/26565cec-bb20-4b81-bacc-72bd2e764073

Co-authored-by: ErikCald <43829793+ErikCald@users.noreply.github.com>
@ErikCald ErikCald merged commit 46dec2d into main May 15, 2026
2 checks passed
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.

3 participants