Skip to content

Commit

Permalink
Update README.md with lifecylce node info and fix minor typos. Signed…
Browse files Browse the repository at this point in the history
…-off-by: maverick-g00se mavg00se@gmail.com
  • Loading branch information
maverick-g00se authored and maverick-g00se committed Apr 1, 2024
1 parent 008df0c commit 93c4450
Showing 1 changed file with 19 additions and 7 deletions.
26 changes: 19 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,21 @@ Packages that infer and react to the presence of obstacles from sensor inputs.

A ROS 2 node that subscribes to `LaserScan` messages and publishes obstacles to `/rmf_obstacles`.

The node is implemented as an`rclcpp::lifecycle_node` node where upon activation, it calibrates the surroundings based on the range values in the initial few `LaserScan` messages.
The node is implemented as an `rclcpp::lifecycle_node` node where upon activation, it calibrates the surroundings based on the range values in the initial few `LaserScan` messages.
This essentially becomes the "obstacle-free" configuration.
Subsequently, any changes to the surroundings is detected as an obstacle.
Subsequently, any changes to the surroundings are detected as an obstacle.

Since this node is implemented as a `rclcpp::lifecycle_node`, before running, it is important to configure and activate the respective node as follows:
```
#to configure the node
ros2 lifecycle set /laserscan_obstacle_detector configure
```

```
#to activate the node
ros2 lifecycle set /laserscan_obstacle_detector activate
```
you can read more about `rclcpp::lifecycle_node` here: [ROS2 Lifecycle Node](https://design.ros2.org/articles/node_lifecycle.html)

To run
```
Expand All @@ -28,7 +40,7 @@ The node accepts the following parameters
| Parameter Name | Description | Default Value |
| --- | --- | --- |
| `scan_topic_name` | The topic over which `LaserScan` messages are published. It is strongly recommended to [filter the scan](http://wiki.ros.org/laser_filters) to remove out-of-range rays before passing it to this node. | `/lidar/scan` |
| `range_threshold` | For each ray, if the difference in range measurement between the latest `LaserScan` and the calibrated one is grater than this value, a new obstacle is assumed. | `1.0` meter |
| `range_threshold` | For each ray, if the difference in range measurement between the latest `LaserScan` and the calibrated one is greater than this value, a new obstacle is assumed. | `1.0` meter |
| `min_obstacle_size` | The minimum perceived size of an object for it to be considered an obstacle. | `0.75` meter |
| `level_name` | The level(floor) name on which the scanner exists. | `L1` |
| `calibration_sample_count` | The number of initial `LaserScan` messages to use for calibrating the "obstacle-free" configuration. | `10` |
Expand All @@ -47,7 +59,7 @@ To launch as a standalone node,
ros2 launch rmf_human_detector_oakd human_detection.launch.xml blob_path:=<PATH_TO_MOBILENET-SSD_BLOB>
```

THe node has several configurable parameters documented in the [launch file](rmf_human_detector_oakd/launch/human_detector.launch.xml).
The node has several configurable parameters documented in the [launch file](rmf_human_detector_oakd/launch/human_detector.launch.xml).
The most important of which is `blob_path` as it holds the absolute path to the NN model for inference. See `depthai` documentation for more information on how the various pre-trained models can be obtained.
It is recommended to use the [blobconverter](https://github.com/luxonis/blobconverter/) tool to obtain the `mobilenet-ssd_openvino_2021.4_6shave.blob` blob for inference.

Expand All @@ -59,7 +71,7 @@ For more information on setup and troubleshooting see [here](rmf_human_detector_
## rmf_human_detector
![](../media/rmf_human_detector.gif)

A ROS 2 node that subscribes to `sensor_msgs::Image` messages published by a monocular camera and runs `Yolo-V4` to detect the presence of humans. The relative pose of the humans with respect to the camera frame is estimated based on heuristics that can be configured through ROS 2 params.
A ROS 2 node that subscribes to `sensor_msgs::Image` messages published by a monocular camera and runs `Yolo-V4` to detect the presence of humans. The relative pose of the humans with respect to the camera frame is estimated based on heuristics that can be configured through ROS 2 parameters.

The use case for this node would be to detect crowds from existing CCTV cameras or vision sensors in the facility.

Expand All @@ -72,8 +84,8 @@ ros2 launch rmf_human_detector human_detector_launch.py
## rmf_obstacle_ros2
The `rmf_obstacle_ros2` package contains ROS 2 nodes that react to the presence of obstacles.

At present the `lane_blocker_node` is available which subscribes to `/rmf_obstacles`, checks whether
any of the obstacles intersects with any of the lanes across fleet navigation graphs.
At present the `lane_blocker_node` is available which subscribes to `/rmf_obstacles`, and checks whether
any of the obstacles intersect with any of the lanes across fleet navigation graphs.
If a new intersection is determined, the lanes for the corresponding fleets are closed.
Previously closed lanes are also opened once the obstacles no longer intersect with the lanes.

Expand Down

0 comments on commit 93c4450

Please sign in to comment.