This package provides 6-DoF head pose estimation from depth data. head_pose.png


  1. Install all required dependencies: sudo apt-get install ros-groovy-people ros-groovy-image-transport ros-groovy-openni-launch

  2. Build the head_tracking stack using rosbuild

On Ubuntu, installation can be done with apt:

apt-get install ros-hydro-head-pose-estimation



Node for performing head pose estimation

Subscribed Topics

cloud (sensor_msgs/PointCloud2)
  • The input point cloud
/face_detector/people_tracker_measurements_array (people_msgs/PositionMeasurementArray)
  • Face detections

Published Topics

head_pose (geometry_msgs/PoseStamped)
  • The head pose output


tree_path (string)
  • Defaults to string("trees/tree")
ntrees (double)
  • Defaults to 10
max_variance (double)
  • Defaults to 800.0
larger_radius_ratio (double)
  • Defaults to 1.0
smaller_radius_ratio (double)
  • Defaults to 6.0
stride (double)
  • Defaults to 5
head_threshold (double)
  • Defaults to 400
head_target_frame (string)
  • Defaults to string("/camera_depth_frame")
angular_bias_roll (double)
  • Defaults to 0.0
angular_bias_pitch (double)
  • Defaults to 0.0
angular_bias_yaw (double)
  • Defaults to 0.0

Example Usage

To run the head pose estimator with a Kinect sensor, first start up the openni driver from openni_launch.

estimator.launch runs the estimator with default parameters. Assuming the Kinect camera namespace is camera, estimator.launch can be run with roslaunch head_pose_estimation estimator.launch.

Wiki: head_pose_estimation (last edited 2014-10-09 19:47:30 by DanLazewatsky)