Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,14 @@ The data may be obtained from different data sources:
- Laser scanners (``sensor_msgs::msg::LaserScan`` messages)
- PointClouds (``sensor_msgs::msg::PointCloud2`` messages)
- IR/Sonars (``sensor_msgs::msg::Range`` messages)
- Costmap (``nav2_msgs::msg::Costmap`` messages)

.. warning::

**⚠️ when using CostmapSource**
Collision Monitor normally **bypasses the costmap** to minimize reaction latency using fresh sensor data.
Use at your own caution or when using external costmap sources from derived sources.


Parameters
**********
Expand Down Expand Up @@ -520,7 +528,7 @@ Observation sources parameters
============== =============================

Description:
Type of polygon shape. Could be ``scan``, ``pointcloud``, ``range`` or ``polygon``.
Type of polygon shape. Could be ``scan``, ``pointcloud``, ``range``, ``polygon`` or ``costmap``.

:``<source name>``.transport_type:

Expand Down Expand Up @@ -639,6 +647,32 @@ Observation sources parameters
Description:
Maximum time interval in which source data is considered as valid. If no new data is received within this interval, the robot will be stopped. Setting ``source_timeout: 0.0`` disables this blocking mechanism. Overrides node parameter for each source individually, if desired.

:``<source name>``.cost_threshold:

============== =============================
Type Default
-------------- -----------------------------
int 253
============== =============================

Description:
For ``costmap`` sources only. Minimum cell cost (0–255) to be treated as an
obstacle. By default this matches inscribed/lethal cells (253–254) and ignores
lower-cost cells.

:``<source name>``.treat_unknown_as_obstacle:

============== =============================
Type Default
-------------- -----------------------------
bool true
============== =============================

Description:
For ``costmap`` sources only. If ``true``, cells with cost ``255`` (``NO_INFORMATION``)
will also be turned into obstacle points. Set to ``false`` if your costmap has
large unknown areas you don’t want to trigger Collision Monitor.

:bond_heartbeat_period:

============== =============================
Expand Down Expand Up @@ -774,3 +808,9 @@ Here is an example of configuration YAML for the Collision Monitor.
max_height: 0.5
min_range: 0.2
enabled: True
# costmap:
# type: "costmap" # relative, respects namespaces
# topic: "local_costmap/costmap"
# cost_threshold: 254
# enabled: True
# treat_unknown_as_obstacle: True
8 changes: 8 additions & 0 deletions migration/Kilted.rst
Original file line number Diff line number Diff line change
Expand Up @@ -477,3 +477,11 @@ After
plugin: "nav2_regulated_pure_pursuit_controller::RegulatedPurePursuitController"
desired_linear_vel: 1.0
lookahead_dist: 0.6

New CostmapSource observation type for Collision Monitor and CollisionDetector
------------------------------------------------------------------------------

In `PR #5642 <https://github.com/ros-navigation/navigation2/pull/5642>`_, a new
``CostmapSource`` observation type was added to both Collision Monitor and
Collision Detector, allowing them to subscribe directly to
``nav2_msgs/msg/Costmap`` messages as an observation source. This source should be used with caution.
2 changes: 1 addition & 1 deletion tutorials/docs/using_3laws_supervisor.rst
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ However, it has the same limitations due to the slow-and-stop nature of the solu
:alt: Supervisor Solution Infographic
:align: center

The Supervisor ROS uses a dynamic approach to collision avoidance to enhance safety while addressing the efficiency challenges and lightening the system tuning load.
The Supervisor ROS uses a dynamic approach to collision avoidance to enhance safety while addressing the efficiency challenges and reducing the system tuning load.
Rather than solely stopping or slowing down when an obstacle is detected in proximity to the robot, the Supervisor takes over and adjusts the robot's trajectory in real-time to avoid collisions while still making progress towards its goal - also considering lower-level safety constraints described above if present (Pro version).
This allows the robot to dynamically react to the environment while not prematurely stopping or slowing when maneuvers are available which can prevent triggering safety system reactions - increasing throughput.
It will however still stop the robot is required as any other safety system might.
Expand Down
Loading