PointCloud Fast Filter for People Detection
The algorithm "PointCloud Fast Filter for People Detection" (PFF-PeD) detects people by processing effectively point-cloud data, independently of the specific 3D sensor employed. By focusing on the most informative observations, PFF-PeD is able to improve the accuracy and processing times compared to existing 2D and 3D solutions. We implemented PFF-PeD in C++ and integrated its operation in ROS Kinetic Kame in a laptop with Ubuntu 16.04.
- [/camera/depth/points] : Sensor PointCloud for peolple detection
- [/velodyne_points] : Sensor PointCloud for peolple detection
- [/PeopleCloud] : PointCloud with the final detection.
- [/TrunkCloud] : PointCloud filtered of the trunk range.
- [/LegsCloud] : PointCloud filtered of the Legs range.
- [resolution] : Angle resolution in degrees for filter the points in a cloud of size 360°/resolution.
- [sensorheight] : Sh, see the following image. in meters.
- [legs_begin] : Fr, see the following image. in meters.
- [legs_end] : Fr + Lr, see the following image. in meters.
- [trunk_begin] : Fr + Lr + Sr, see the following image. in meters.
- [trunk_end] : Fr + Lr + Sr + Tr, see the following image. in meters.
- [camera_fov] : Horizontal Field of View of the RGB-D camera in degrees.
- [min_vision_range] : Minimum Detection Range, in meters.
- [max_vision_range] : Maximum Detection Range, in meters.
- [horizontal_fov] : Desired horizontal field of view (from -theta/2 to theta/2), see the following image. in degrees.
$ cd ~/catkin_ws/src/
$ git clone https://github.com/cafemesa/PFF_PeD.git
$ cd ~/catkin_ws && catkin_make
To run the detection with the Astra Camera (from: https://github.com/orbbec/ros_astra_camera):
$ sudo apt install ros-$ROS_DISTRO-rgbd-launch ros-$ROS_DISTRO-libuvc ros-$ROS_DISTRO-libuvc-camera ros-$ROS_DISTRO-libuvc-ros
$ cd ~/catkin_ws/src
$ git clone https://github.com/orbbec/ros_astra_camera
$ ./ros_astra_camera/scripts/create_udev_rules
$ https://github.com/orbbec/ros_astra_launch.git
$ cd ~/catkin_ws && catkin_make
To run the detection with the Velodyne:
$ cd ~/catkin_ws/src
$ git clone https://github.com/ros-drivers/velodyne.git
$ cd ~/catkin_ws
$ rosdep install --from-paths src -i -y
$ catkin_make
$ roslaunch pff_ped astra_people.launch
The previous command run:
- roslaunch astra_launch astrapro.launch
- rosrun pff_ped astra_people
- rivz with the configuration
$ roslaunch pff_ped velodyne_people.launch
The previous command run:
- roslaunch velodyne_pointcloud VLP16_points.launch
- rosrun pff_ped velodyne_people
- rivz with the configuration
Create the correct folder to store the bags
$ cd ~/catkin_ws/src/pff_ped/
$ mkdir bags
Download the bags files and copy into the "bags" folder
Set the desired bag in the launch file and run
$ roslaunch pff_ped velodyne_people_bag.launch
The previous command run:
- rosrun pff_ped velodyne_people
- rivz with the configuration
- rosbag play [bag_name]
With the sensor:
$ rosrun pff_ped astra_people
$ roslaunch astra_launch astrapro.launch
$ rosrun rviz rviz -d ~/catkin_ws/src/pff_ped/rviz_cfg/astra_people.rviz
With a bag:
$ rosrun pff_ped astra_people
$ rosrun rviz rviz -d ~/catkin_ws/src/pff_ped/rviz_cfg/astra_people.rviz
$ rosbag play [BAG_FILE]
With the sensor:
$ rosrun pff_ped velodyne_people
$ roslaunch velodyne_pointcloud VLP16_points.launch
$ rosrun rviz rviz -d ~/catkin_ws/src/pff_ped/rviz_cfg/velodyne_people.rviz
With a bag:
$ rosrun pff_ped velodyne_people
$ rosrun rviz rviz -d ~/catkin_ws/src/pff_ped/rviz_cfg/velodyne_people.rviz
$ rosbag play [BAG_FILE]