This documentation page has been auto-generated.

It may be missing some details.

hri_fullbody Quick Facts


Social perception

Debian package



Maintainer: Lorenzo Ferrini <>



ROS node implementing 2D/3D full-body pose estimation, using Google Mediapipe. Part of ROS4HRI.

hri_fullbody is a ROS4HRI-compatible 3D body pose estimation node.

It is built on top of Google Mediapipe 3D body pose estimation.

The node provides the 3D pose estimation for the detected humans in the scene, implementing a robust solution to self-occlusions.

This node can be used in two different modes: single body and multi-body. In the former case, the node performs the whole body detection pipeline, publishing information under the ROS4HRI naming convention regarding the body id (on the /humans/bodies/tracked topic), the body bounding box, and the jointstate of the body’s skeleton. In the latter, the node only publishes jointstate information, expecting body detection to be performed by another node and subscribing to /humans/bodies/tracked to read the ids of the currently tracked bodies.

These two modes are required since Mediapipe body estimation is not able to estimate more than one body pose per frame. Therefore, in case we want more than one body pose estimated, the adopted strategy is to use a human bounding box detection algorithm to get a cropped image of each one of the humans in the scene, and then to run body pose estimation for each one of these images.

To estimate the body position, the node does not need a RGB-D camera, only RGB is required. However, using RGB-D camera provides a more accurate depth estimation.

Node management#

How to check the status of the node?#

# this  a copy-pastable snippet to check the status
# this  a copy-pastable snippet using rosnode/rostopic to check the node is working

How to access the node’s logs?#

# this  a copy-pastable snippet

How to start/stop/restart the node#

# this  a copy-pastable snippet

Using in your code/application#

Access via the robot’s GUI#

[insert screenshots here]

Access via ROS standard tools#

# this  a copy-pastable snippet

[insert screenshots here]

Using in Python#

# this  a copy-pastable snippet

Using in C++#

# this  a copy-pastable snippet


Subscribed topics#

Published topics#

Actions server#

Actions client#