Repository Summary
Description | leg detection with ros2 |
Checkout URI | https://github.com/mowito/ros2_leg_detector.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2021-01-15 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
leg_detector | 0.0.0 |
leg_detector_msgs | 0.0.0 |
README
ros2_leg_detector
This repository is developed for Mowito Obstacle Detection and Human Detection module in ROS2 Foxy Foxtrot.
To run Leg detector in ROS2 ensure you have OpenCV 3.4.12 installed
Here are the steps to Run leg_detector in ros2
- clone the repository
-
build the code with the following command
$> colcon build
-
source the newly buit package
$> source <path to ros2_leg_detector>/install/setup.bash
-
run the code with the launch file using the following command
$> ros2 launch leg_detector demo_stationary_simple_environment.launch.py
Subsribed topics
-
/scan
2D Lidar scan points.
-
/tf
TF transforms between LiDAR and other frames.
All subscribed topics can be changed in the launch file
Published topics
-
/people_tracked
Message of the type
PersonArray
containing the positions and velocities of the tracked people. -
/visualization_marker
Markers for the tracked people, other tracked objects and the centroids of the detected clusters.
Important parameters
-
scan_topic
Laser scan topic
-
scan_frequency
Right now, it’s only been tuned for 7.5, 10 or 15Hz laser scanners. If you’re using something faster than this, I would recommend downsampling to one of these frequencies.
-
fixed_frame
-
publish_people_frame
Other parameters
-
max_detected_clusters
If the program is running slow because there are a lot of objects to be tracked, you can set this so it only tracks the “max_detected_clusters” closest objects. Default: -1 (i.e., unlimited).
-
forest_file
where to find the configuration file for the OpenCV random forest which has been trained to determine the probability of a scan cluster being a human leg based on its shape.
-
detection_threshold
Confidence threshold in leg shape to publish detect clusters. We found be results publishing and tracking all clusters, regardless of confidence in leg shape. Default: -1 (i.e., no threshold).
-
cluster_dist_euclid
Euclidian distance for clustering of laser scan points. Any two laser scan points which are closer than this distance will be clustered together. If you change this, you might want to re-train the leg detector. Default: 0.13 (m).
-
min_points_per_cluster
Minimum scan points for a cluster to be valid. If a cluster has less than this, then we assume it’s noise and delete it. Default: 3.
-
max_detect_distance
Maximum distance from laser scanner to consider detected clusters. Farther is better but decreases run speed. Default: 10.0 (m).
-
max_leg_pairing_dist
Maximum separation of legs. Legs further apart than this distance will not be matched. Default: 0.8 (m).
-
confidence_threshold_to_maintain_track
How high the confidence needs to be of the current track’s leg shape to initiate and maintain a person track. Higher values will yield lower false positive people tracks and lower values higher false negatives. Will likely need re-tuning if you retrain the leg detector. Default: 0.1.
-
publish_occluded
File truncated at 100 lines see the full file