This repository provides the cs4home_person_tracker ROS 2 package. It maintains person tracks from YOLO detections or from fused camera and laser detections, and publishes the resulting tracks for visualisation and downstream robot tasks.
The existing package directory cs4home_vision_module and dependency manifest thirparty.repos are retained unchanged.
The terms below follow the CoreSense Ontology (CSO).
- Camera and laser devices are Sensors that acquire observations of people.
- Detection association, filtering and track maintenance form a Cognitive Function.
- The module provides the Cognitive Capability to maintain a person estimate over time.
- That estimate supports Tasks such as person following and human-aware navigation.
flowchart LR
camera["YOLO person detections"] --> tracker["Person tracking cognitive function"]
laser["Optional laser leg detections"] --> tracker
tracker --> association["Association and track maintenance"]
association --> tracks["Tracked-person markers"]
tracks --> tasks["Following and navigation tasks"]
The default launch mode uses YOLO detections only. Laser and YOLO fusion can be enabled when the laser people detector and its model are available.
Use Ubuntu 22.04 and ROS 2 Humble. The workspace needs YOLO ROS, cs4home_architecture, the state observers, the UPO laser people detector for fusion mode, and cs4home_msgs from cs4home_vision_module.
mkdir -p ~/cs4home_ws/src
cd ~/cs4home_ws/src
git clone https://github.com/CoreSenseEU/cs4home_person_tracker_module.git
git clone https://github.com/CoreSenseEU/cs4home_vision_module.git
vcs import --recursive < cs4home_person_tracker_module/thirparty.repos
cd ..
rosdep install --from-paths src --ignore-src -r -y
colcon build --symlink-install --packages-up-to cs4home_person_tracker
source install/setup.bashStart YOLO and activate its lifecycle nodes:
ros2 launch yolo_bringup yolo.launch.py
ros2 lifecycle set /yolo_node configure
ros2 lifecycle set /yolo_node activate
ros2 lifecycle set /yolo_3d_node configure
ros2 lifecycle set /yolo_3d_node activateThen launch the tracker:
ros2 launch cs4home_person_tracker person_tracker.launch.pyThe tracker launch file configures and activates the person_tracker lifecycle node automatically.