Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update README.md with lifecylce node info and fix minor typos #28

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
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
22 changes: 9 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,14 @@
![](https://github.com/open-rmf/rmf_obstacle_detectors/workflows/style/badge.svg)

Packages that infer and react to the presence of obstacles from sensor inputs.
- [rmf_human_detector](#rmf_human_detector)
- [rmf_human_detector_oakd](#rmf_human_detector_oakd)
- [rmf_obstacle_detector_laserscan](#rmf_obstacle_detector_laserscan)
- [rmf_obstacle_ros2](#rmf_obstacle_ros2)
- [rmf_human_detector](#rmf_human_detector)
- [rmf_human_detector_oakd](#rmf_human_detector_oakd)
- [rmf_obstacle_detector_laserscan](#rmf_obstacle_detector_laserscan)
- [rmf_obstacle_ros2](#rmf_obstacle_ros2)

## rmf_obstacle_detector_laserscan
![](../media/rmf_obstacle_detector_laserscan.gif)


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

The node is implemented as an [`rclcpp::lifecycle_node`](https://github.com/ros2/demos/tree/rolling/lifecycle) node where upon activation, it calibrates the surroundings based on the range values in the initial few `LaserScan` messages.
Expand All @@ -22,18 +21,19 @@ To run
```
ros2 run rmf_obstacle_detector_laserscan laserscan_detector
```

To configure and Activate
```
#to configure
ros2 lifecycle set /laserscan_obstacle_detector configure
```

```
#to activate
ros2 lifecycle set /laserscan_obstacle_detector activate
```


>Note: The node can also be loaded into a ROS 2 component container as a plugin (`LaserscanDetector`)
> Note: The node can also be loaded into a ROS 2 component container as a plugin (`LaserscanDetector`)

The node accepts the following parameters
| Parameter Name | Description | Default Value |
Expand Down Expand Up @@ -62,31 +62,27 @@ The node has several configurable parameters documented in the [launch file](rmf
The most important 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.


To visualize the detection frames, set `debug:=True`. Note: Frames will only be visualized when a human is actively detected.

For more information on setup and troubleshooting see [here](rmf_human_detector_oakd/README.md)

## 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.

To run:

```bash
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`, and checks whether
any of the obstacles intersect with any of the lanes across fleet navigation graphs.

any of the obstacles intersects 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
Loading