cd ~/3D_detector/3D_bounding_box_gb_visual_detection
source install/setup.bash
ros2 launch person_speed_tracker person_tracking_system.launch.pyThis single command launches:
- ✅ YOLO detector (person detection)
- ✅ 3D bounding box generator
- ✅ Person speed tracker
In a new terminal:
source install/setup.bash
ros2 topic echo /person_speed_tracker/person_infoExample output:
persons:
- person_id: 0
position:
x: 2.45
y: -1.23
z: 0.85
velocity:
x: 0.45
y: 0.12
z: 0.0
speed: 0.47 # m/s (walking speed)
confidence: 0.92
tracking_duration: 45# Faster (lighter model)
ros2 launch person_speed_tracker person_tracking_system.launch.py yolo_model:=yolov8n
# More accurate (heavier model)
ros2 launch person_speed_tracker person_tracking_system.launch.py yolo_model:=yolov8lyolov8n- Nano (fastest, least accurate)yolov8s- Smallyolov8m- Medium (default, balanced)yolov8l- Large (more accurate)yolov8x- Extra large (most accurate, slowest)yolov11m- YOLO v11 Medium
ros2 launch person_speed_tracker person_tracking_system.launch.py use_sim_time:=falseros2 launch person_speed_tracker person_tracking_system.launch.pyros2 launch person_speed_tracker person_tracking_complete.launch.pyIf YOLO and 3D bbox are already running:
ros2 launch person_speed_tracker person_speed_tracker.launch.pyros2 node listYou should see:
yolo_detector_nodedarknet3d_nodeperson_speed_tracker
ros2 topic list | grep -E "(darknet|person)"ros2 topic hz /darknet_ros_3d/bounding_boxes
ros2 topic hz /person_speed_tracker/person_inforos2 topic echo /person_speed_tracker/person_info --field persons[0].speedEdit configuration file:
nano src/person_speed_tracker/config/tracker_params.yamlFor noisy/crowded environments:
- Increase
min_speed_threshold: 0.1 - Increase
velocity_history_size: 8
For fast-moving persons:
- Increase
max_tracking_distance: 2.0 - Increase
max_speed_threshold: 5.0
For smoother tracking:
- Decrease
smoothing_alpha: 0.2
For more responsive tracking:
- Increase
smoothing_alpha: 0.5
After editing, rebuild:
colcon build --packages-select person_speed_tracker --symlink-install
source install/setup.bash-
Check camera is running:
ros2 topic hz /camera/color/image_raw
-
Verify YOLO is detecting:
ros2 topic echo /darknet_ros/bounding_boxes
- Persons need to be tracked for at least 2 frames
- Try decreasing
min_speed_threshold - Check persons are actually moving in simulation
- Decrease
smoothing_alpha(e.g., 0.2) - Increase
velocity_history_size(e.g., 8)
Camera Image ──────► YOLO Detector ──────► 2D Bounding Boxes
(ultralytics_ros)
│
Point Cloud ─────────────────────────────────────► │
▼
3D Bbox Generator
(darknet_ros_3d)
│
▼
Person Speed Tracker
(person_speed_tracker)
│
▼
PersonInfoArray
(ID, position, speed, etc.)
- Detailed usage:
src/person_speed_tracker/USAGE.md - Package README:
src/person_speed_tracker/README.md - Configuration:
src/person_speed_tracker/config/tracker_params.yaml
- Social Navigation: Use person positions and velocities for path planning
- Crowd Monitoring: Count and track multiple persons
- Safety Systems: Alert when persons approach robot too quickly
- Data Collection: Log pedestrian movement patterns
- Interaction: Approach persons based on their speed and position