Bunch of navigation improvements#118
Conversation
|
im gonna merge this quickly once i see the copilot review so i can have a docker image tomorrow |
There was a problem hiding this comment.
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
TruncatePosesBT 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.
| find_package(tf2_msgs REQUIRED) | ||
| find_package(geometry_msgs REQUIRED) |
There was a problem hiding this comment.
@copilot apply changes based on this feedback
There was a problem hiding this comment.
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.
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>
This pull request introduces two main sets of changes: (1) enhancements to the
compressed_telemetry_cpppackage to support efficient and configurable TF message relaying and telemetry, and (2) the addition of a new "TruncatePoses" Behavior Tree node in thecprt_behavior_tree_pluginspackage. There are also minor updates to costmap plugins and RViz configurations.TF Telemetry and Relay Enhancements
compressed_telemetry_cpp:TFTelemetry: A node that subscribes to/tf, filters and caches transforms, and periodically publishes a reduced set on/telemetry/tffor 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.CMakeLists.txtto build and register the new nodes, add dependencies (tf2_msgs,geometry_msgs), and install executables. [1] [2] [3]tf_relay_nodeand remap/tfin RViz to/viz/tf.Behavior Tree Plugins
TruncatePosessynchronous action node:PoseStampedgoals to a configurable length within a Behavior Tree.Other Minor Changes
GridmapLayerwith 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.