How to launch the different components for person detection#
This how-to describes how to test the hri_person_manager
node in your
local environment to familiarise yourself with the ROS4HRI pipeline. The
node aggregates information about faces, bodies and voices in a single
structure, person
, which facilitates the management of the human features
detected around the robot.
Prerequisites#
You will need the
hri_face_detect
andhri_face_identification
nodes. These nodes will feedhri_person_manager
.You will also need a webcam and a calibration file for the camera. If you donβt have one,
here
you can find a standard calibration file sample that you can temporarily use for this tutorial. If you are using this calibration file, do not expect the face pose estimation to be precise.
Testing#
In terminal 1, start
usb_cam
:
$ ros2 run usb_cam usb_cam_node_exe --ros-args -p camera_info_url:="file:///<calibration_file_location>"
You must provide a calibration file for your camera (like this
generic file for webcams
),
otherwise hri_face_detect
will not be able to publish the TF frames of the
faces (note that the name of the camera in the calibration file should be
default_cam
, as I will assume this name for the camera TF frame).
Without calibration, hri_person_manager
will still partially work, but
for example, proximal zones will not be published, and the person TF frames
will not be available.
In terminal 2, start
hri_face_detect
:
$ ros2 launch hri_face_detect face_detect.launch.py
In terminal 3, start
hri_face_identification
:
$ ros2 launch hri_face_identification face_identification.launch.py
In terminal 4, publish a static (identity) transform between the camera and
/map
:
$ ros2 run tf2_ros static_transform_publisher --frame-id map --child-frame-id default_cam
In terminal 5, start the
hri_person_manager
node:
$ ros2 launch hri_person_manager person_manager.launch.py
In terminal 6, check the output of
/humans/persons/tracked
,/humans/persons/in_{personal,social,public}_space
,/humans/persons/<id>/*
β¦
For instance, you should see your own person ID:
$ ros2 topic echo /humans/persons/in_personal_space
Optionally, you can display the face - person association graph:
In terminal 7, run:
$ ros2 run hri_person_manager show_humans_graph
In terminal 8, view the output:
$ evince /tmp/graph.pdf
Thatβs all! You can now start developing your own code using the available libraries in C++ and python, or continue playing with other tutorials in the π₯ Social perception main page.