Skip to content

Add CCTV risk-aware navigation planning package - #19

Merged
seunghyun0108 merged 1 commit into
mainfrom
planning_branch
Jun 7, 2026
Merged

Add CCTV risk-aware navigation planning package#19
seunghyun0108 merged 1 commit into
mainfrom
planning_branch

Conversation

@seunghyun0108

@seunghyun0108 seunghyun0108 commented Jun 7, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Added planning_pkg for CCTV risk-aware navigation.
  • Added PathRiskState message, publisher, BT condition plugin, and CCTV risk behavior tree.
  • Updated Nav2 CCTV launch/config to use risk-aware navigation.

Changed files

  • src/planning_pkg/**
  • src/bringup_pkg/config/nav2_params_cctv.yaml
  • src/bringup_pkg/launch/scout_cctv_nav2.launch.py
  • src/bringup_pkg/README.md

Test

  • colcon build
  • basic runtime check

Notes

  • lookahead_dist is set to 5.0m for clearer comparison/demo behavior.

@seunghyun0108
seunghyun0108 requested a review from SuBamm88 as a code owner June 7, 2026 10:35

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 42966b6f4d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

configured_params = RewrittenYaml(
source_file=params_file,
root_key='',
param_rewrites={'default_nav_to_pose_bt_xml': bt_xml},

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Add the full BT XML parameter path

When launching with the default nav2_params_cctv.yaml, default_nav_to_pose_bt_xml is not an actual parameter (it only appears in a comment), so this leaf rewrite has nothing to replace; on Humble it will not add missing params, and on newer Nav2 releases adding missing params requires a full path containing ros__parameters. As a result, Proposed mode still uses Nav2's default behavior tree and the new IsDynamicPathOccupied branch is never loaded.

Useful? React with 👍 / 👎.

Comment on lines +43 to +44
path_sub_ = create_subscription<nav_msgs::msg::Path>(
path_topic_, rclcpp::QoS(rclcpp::KeepLast(1)).transient_local(),

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Subscribe to /plan with compatible QoS

Nav2's planner publishes plan with the standard volatile QoS, so requesting transient_local durability here is incompatible unless the publisher is also changed. In Proposed mode this leaves last_path_ unset, so /planning/path_risk_state keeps reporting that it is waiting for /plan and IsDynamicPathOccupied never succeeds even when perception reports an object on the path.

Useful? React with 👍 / 👎.

<!-- 동적 객체 단기 점유: replan 억제, SpeedPlanner 감속 -->
<ReactiveSequence name="DynamicPathOccupied">
<IsDynamicPathOccupied/>
<FollowPath path="{path}" controller_id="FollowPath" goal_checker_id="goal_checker"/>

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Stop instead of following the occupied path

When dynamic_path_occupied is true for a CCTV-only obstacle that is not present in /scan, this branch suppresses replanning but immediately ticks FollowPath on the stale path. I checked nav2_params_cctv.yaml: the local costmap now only has voxel_layer and inflation_layer, and this tree contains no SpeedController/wait action, so there is no component that will slow or stop for that perception-only obstacle; the robot can keep driving along the blocked path during the intended wait window.

Useful? React with 👍 / 👎.

@seunghyun0108
seunghyun0108 merged commit e1efc73 into main Jun 7, 2026
1 check passed
@seunghyun0108
seunghyun0108 deleted the planning_branch branch June 7, 2026 10:56
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