Pipol Tracker is a C++ multi-target and multi-detector people tracker for mobile robots. It is based on particle filtering, launching such a particle filter for each new target it tracks. As inputs, it requires an odometry source and at least a leg detector (usually come from laser scans), but it is currently ready to fuse detections from a monocular 2D body detector, a visual face detector and a depth image 3D body detector. The package is fully integrated with ROS-Hydro/Indigo and its catkin build system.
Required library dependencies:
- Developed and Tested under [Ubuntu 12.04 LTS and 14.04 LTS] (http://www.ubuntu.com)
- [ROS-Hydro, ROS-Indigo] (http://www.ros.org). Check it with
- OpenCV. (Already included with ROS)
- [Eigen3] (http://eigen.tuxfamily.org). Linear algebra. Header-only library. (Already included with ROS)
- [pal_detection_msgs] (https://github.com/pal-robotics/pal_msgs.git). ROS messages from [PAL robotics] (http://www.pal-robotics.com/) detectors.
How to get and build the code
Move to your ROS CATKIN Workspace. From there, execute:
$ source devel/setup.bash $ cd src $ git clone https://github.com/beta-robots/pipol_tracker.git $ cd .. $ catkin_make --only-pkg-with-deps pipol_tracker $ roscd pipol_tracker/launch $ roslauch LAUNCH_FILE_NAME.launch
Downloading a specific tag
After cloning as listed above:
$ cd pipol_tracker $ git tag -l //that lists the tags $ git checkout [tag name]
A set of markers very useful for debugging purposes, such as particles, leg and body detections, and targets coloured according their status.
The set of targets/people being tracked. It is a message composed by a ROS standard [Header] (http://docs.ros.org/hydro/api/std_msgs/html/msg/Header.html) and by an array of [person] (https://github.com/beta-robots/pipol_tracker/blob/master/msg/person.msg) type. Each person holds the following:
- an ID, which should be the same for a given person (that is the main goal and difficulty!)
- a status, which indicates a friendship degree between the target and the robot.
- (x,y), a 2D position, expressed in robot-centered coordinates (base_link)
- (vx,vy), a 2D velocity, expressed in robot-centered coordinates (base_link)
- a 4x4 covariance matrix, expressing the uncertainty of the above 4 estimated values.
Click [here] (http://www.beta-robots.com/web/reemATiri.html) to learn more about how the tracker works.
You can report bugs or pose questions by mailing to devel [AT] beta-robots.com