No version for distro humble showing github. Known supported distros are highlighted in the buttons above.
Package symbol

hri_fullbody package from hri_fullbody repo

hri_fullbody

ROS Distro
github

Package Summary

Tags No category tags.
Version 2.2.2
License Apache License 2.0
Build type AMENT_PYTHON
Use RECOMMENDED

Repository Summary

Description A ROS4HRI-conformant node to track and extract 2D and 3D skeletons of humans from RGB/RGB-D cameras
Checkout URI https://github.com/ros4hri/hri_fullbody.git
VCS Type git
VCS Version humble-devel
Last Updated 2024-07-04
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Additional Links

No additional links.

Maintainers

  • Séverin Lemaignan
  • Lorenzo Ferrini

Authors

  • Séverin Lemaignan
  • Lorenzo Ferrini

hri_fullbody

skeleton detection

Overview

:warning: some of the links are yet to be updated and may be pointing to the original ROS page. As soon as all the involved components will be officially documented for ROS 2 as well, we will update this document.

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 rely on some other package implementing a human body detection (and tracking in the best case) algorithm. Such package should provide the hri_fullbody detect node the IDs of the detected bodies and the relative images, cropped from the original image following the detected bounding boxes.

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.

Important: to estimate the body depth without using a depth sensor, a calibrated RGB camera is required. You can follow this tutorial to properly calibrate your camera.

Launch

ros2 launch hri_fullbody hri_fullbody_with_args.launch.py <parameters>

ROS API

Parameters

Node parameters:

  • single_body (default: True): whether or not running in single body mode (see above for the single body vs multi-body modes).
  • use_depth (default: False): whether or not to rely on depth images for estimating body movement in the scene. When this is False, the node estimates the body position in the scene solving a P6P problem for the face and approximating the position from this, using pinhole camera model geometry.
  • stickman_debug (default: False): whether or not to publish frames representing the body skeleton directly using the raw results from mediapipe 3D body pose estimation. These debug frames are not oriented to align with the body links (ie, only the 3D location of the frame is useful).
  • human_description_<body_id> (read-only): the URDF generated for body_<body_id>. The node generates a URDF for each detected body and uses them to perform kinematically-consistent 3D body pose estimation.

hri_fullbody.launch parameters:

  • single_body (default: True): equivalent to single_body node parameter.
  • use_depth (default: False): equivalent to use_depth node parameter.
  • stickman_debug (default: False): equivalent to stickman_debug node parameter.
  • rgb_camera (default: ` `): rgb camera topics namespace.
  • rgb_camera_topic (default: $(arg rgb_camera)/image_raw): rgb camera raw image topic.
  • rgb_camera_info (default: $(arg rgb_camera)/camera_info): rgb camera info topic.
  • depth_camera (default: ` `): depth camera topics namespace.
  • depth_camera_topic (default: $(arg depth_camera)/image_rect_raw): depth camera rectified raw image topic.
  • depth_camera_info (default: $(arg depth_camera)/camera_info): depth camera info topic.

Topics

hri_fullbody follows the ROS4HRI conventions (REP-155). In particular, refer to the REP to know the list and position of the 2D/3D skeleton points published by the node.

Subscribed topics

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package hri_fullbody

2.2.2 (2024-07-04)

  • linting
  • Contributors: Séverin Lemaignan

2.2.1 (2024-07-04)

  • launch: use get_pal_configuration from launch_pal
  • Contributors: Séverin Lemaignan

2.2.0 (2024-05-27)

  • Updated topics naming convention in source code and configuration file. Fiexed bugs
  • add configuration management
  • removed unused import os
  • Contributors: Luka Juricic, Raquel Ros, lorenzoferrini

2.1.1 (2024-05-21)

  • removed old ros command
  • Contributors: lorenzoferrini

2.1.0 (2024-05-07)

  • Support 32bits depth
  • Publish bodies' URDF on a topic instead of a parameter
  • Contributors: ferrangebelli

2.0.1 (2024-04-24)

  • add module
  • Contributors: lorenzoferrini

2.0.0 (2024-02-14)

  • removing bridging bug when using CvBridge.imgmsg_to_cv2 function without specifying the desired encoding to "bgr8", the returned image only had two channels if it's coming from the usb_cam node. Fixed the issue
  • ros 2 porting
  • clarify documentation for multibody case
  • fix multibody diagnostics bug
  • Contributors: Luka Juricic, lorenzoferrini

0.1.10 (2023-07-14)

  • reset mediapipe backend in case of matrix inversion error
  • Contributors: Luka Juricic

0.1.9 (2023-07-05)

  • fix bug in left ear tragion publish
  • change RoI message type to hri_msgs/NormalizedRegionOfInterest2D
  • Contributors: Luka Juricic

0.1.8 (2023-05-23)

  • disable publishing of face_XXX and gaze_XXX frames See comment in code for rationale
  • Contributors: Séverin Lemaignan

0.1.7 (2023-05-18)

  • diagnostic_msgs: exec_depend -> depend
  • Contributors: Séverin Lemaignan

0.1.6 (2023-05-18)

  • add diagnostics
  • Contributors: lukajuricic

0.1.5 (2023-03-08)

  • ensure mediapipe can not be called from 2 threads in parallel This would cause internal mediapipe errors related to non-monotonic timestamps
  • Contributors: Séverin Lemaignan

0.1.4 (2023-02-03)

  • Merge branch 'devel' into 'master' Revert "have threshold params" See merge request ros4hri/hri_fullbody!7
  • Merge branch 'master' into 'devel' # Conflicts: # src/hri_fullbody/fullbody_detector.py
  • Revert "have threshold params" This reverts commit 78264248652879a1b572397e8edeee6202685bc6 and commit 5cc5c34f7a93f8030623ff78945095778374cd36.
  • Merge branch 'devel' into 'master' Introduced requirements.txt See merge request ros4hri/hri_fullbody!6
  • Merge branch 'uncalibrated_monocular_camera' into 'master' Correctly managing uncalibrated camera See merge request ros4hri/hri_fullbody!5
  • Introduced requirements.txt Introduced requirements.txt. Currently, the only requirement specified is ikpy. Using the requirements.txt file syntax, it was possible to specify the requested version, that is, 3.2.2
  • Enabled human jointstate estimation for uncalibrated RGB cameras It

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged hri_fullbody at Robotics Stack Exchange

No version for distro jazzy showing github. Known supported distros are highlighted in the buttons above.
Package symbol

hri_fullbody package from hri_fullbody repo

hri_fullbody

ROS Distro
github

Package Summary

Tags No category tags.
Version 2.2.2
License Apache License 2.0
Build type AMENT_PYTHON
Use RECOMMENDED

Repository Summary

Description A ROS4HRI-conformant node to track and extract 2D and 3D skeletons of humans from RGB/RGB-D cameras
Checkout URI https://github.com/ros4hri/hri_fullbody.git
VCS Type git
VCS Version humble-devel
Last Updated 2024-07-04
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Additional Links

No additional links.

Maintainers

  • Séverin Lemaignan
  • Lorenzo Ferrini

Authors

  • Séverin Lemaignan
  • Lorenzo Ferrini

hri_fullbody

skeleton detection

Overview

:warning: some of the links are yet to be updated and may be pointing to the original ROS page. As soon as all the involved components will be officially documented for ROS 2 as well, we will update this document.

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 rely on some other package implementing a human body detection (and tracking in the best case) algorithm. Such package should provide the hri_fullbody detect node the IDs of the detected bodies and the relative images, cropped from the original image following the detected bounding boxes.

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.

Important: to estimate the body depth without using a depth sensor, a calibrated RGB camera is required. You can follow this tutorial to properly calibrate your camera.

Launch

ros2 launch hri_fullbody hri_fullbody_with_args.launch.py <parameters>

ROS API

Parameters

Node parameters:

  • single_body (default: True): whether or not running in single body mode (see above for the single body vs multi-body modes).
  • use_depth (default: False): whether or not to rely on depth images for estimating body movement in the scene. When this is False, the node estimates the body position in the scene solving a P6P problem for the face and approximating the position from this, using pinhole camera model geometry.
  • stickman_debug (default: False): whether or not to publish frames representing the body skeleton directly using the raw results from mediapipe 3D body pose estimation. These debug frames are not oriented to align with the body links (ie, only the 3D location of the frame is useful).
  • human_description_<body_id> (read-only): the URDF generated for body_<body_id>. The node generates a URDF for each detected body and uses them to perform kinematically-consistent 3D body pose estimation.

hri_fullbody.launch parameters:

  • single_body (default: True): equivalent to single_body node parameter.
  • use_depth (default: False): equivalent to use_depth node parameter.
  • stickman_debug (default: False): equivalent to stickman_debug node parameter.
  • rgb_camera (default: ` `): rgb camera topics namespace.
  • rgb_camera_topic (default: $(arg rgb_camera)/image_raw): rgb camera raw image topic.
  • rgb_camera_info (default: $(arg rgb_camera)/camera_info): rgb camera info topic.
  • depth_camera (default: ` `): depth camera topics namespace.
  • depth_camera_topic (default: $(arg depth_camera)/image_rect_raw): depth camera rectified raw image topic.
  • depth_camera_info (default: $(arg depth_camera)/camera_info): depth camera info topic.

Topics

hri_fullbody follows the ROS4HRI conventions (REP-155). In particular, refer to the REP to know the list and position of the 2D/3D skeleton points published by the node.

Subscribed topics

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package hri_fullbody

2.2.2 (2024-07-04)

  • linting
  • Contributors: Séverin Lemaignan

2.2.1 (2024-07-04)

  • launch: use get_pal_configuration from launch_pal
  • Contributors: Séverin Lemaignan

2.2.0 (2024-05-27)

  • Updated topics naming convention in source code and configuration file. Fiexed bugs
  • add configuration management
  • removed unused import os
  • Contributors: Luka Juricic, Raquel Ros, lorenzoferrini

2.1.1 (2024-05-21)

  • removed old ros command
  • Contributors: lorenzoferrini

2.1.0 (2024-05-07)

  • Support 32bits depth
  • Publish bodies' URDF on a topic instead of a parameter
  • Contributors: ferrangebelli

2.0.1 (2024-04-24)

  • add module
  • Contributors: lorenzoferrini

2.0.0 (2024-02-14)

  • removing bridging bug when using CvBridge.imgmsg_to_cv2 function without specifying the desired encoding to "bgr8", the returned image only had two channels if it's coming from the usb_cam node. Fixed the issue
  • ros 2 porting
  • clarify documentation for multibody case
  • fix multibody diagnostics bug
  • Contributors: Luka Juricic, lorenzoferrini

0.1.10 (2023-07-14)

  • reset mediapipe backend in case of matrix inversion error
  • Contributors: Luka Juricic

0.1.9 (2023-07-05)

  • fix bug in left ear tragion publish
  • change RoI message type to hri_msgs/NormalizedRegionOfInterest2D
  • Contributors: Luka Juricic

0.1.8 (2023-05-23)

  • disable publishing of face_XXX and gaze_XXX frames See comment in code for rationale
  • Contributors: Séverin Lemaignan

0.1.7 (2023-05-18)

  • diagnostic_msgs: exec_depend -> depend
  • Contributors: Séverin Lemaignan

0.1.6 (2023-05-18)

  • add diagnostics
  • Contributors: lukajuricic

0.1.5 (2023-03-08)

  • ensure mediapipe can not be called from 2 threads in parallel This would cause internal mediapipe errors related to non-monotonic timestamps
  • Contributors: Séverin Lemaignan

0.1.4 (2023-02-03)

  • Merge branch 'devel' into 'master' Revert "have threshold params" See merge request ros4hri/hri_fullbody!7
  • Merge branch 'master' into 'devel' # Conflicts: # src/hri_fullbody/fullbody_detector.py
  • Revert "have threshold params" This reverts commit 78264248652879a1b572397e8edeee6202685bc6 and commit 5cc5c34f7a93f8030623ff78945095778374cd36.
  • Merge branch 'devel' into 'master' Introduced requirements.txt See merge request ros4hri/hri_fullbody!6
  • Merge branch 'uncalibrated_monocular_camera' into 'master' Correctly managing uncalibrated camera See merge request ros4hri/hri_fullbody!5
  • Introduced requirements.txt Introduced requirements.txt. Currently, the only requirement specified is ikpy. Using the requirements.txt file syntax, it was possible to specify the requested version, that is, 3.2.2
  • Enabled human jointstate estimation for uncalibrated RGB cameras It

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged hri_fullbody at Robotics Stack Exchange

No version for distro kilted showing github. Known supported distros are highlighted in the buttons above.
Package symbol

hri_fullbody package from hri_fullbody repo

hri_fullbody

ROS Distro
github

Package Summary

Tags No category tags.
Version 2.2.2
License Apache License 2.0
Build type AMENT_PYTHON
Use RECOMMENDED

Repository Summary

Description A ROS4HRI-conformant node to track and extract 2D and 3D skeletons of humans from RGB/RGB-D cameras
Checkout URI https://github.com/ros4hri/hri_fullbody.git
VCS Type git
VCS Version humble-devel
Last Updated 2024-07-04
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Additional Links

No additional links.

Maintainers

  • Séverin Lemaignan
  • Lorenzo Ferrini

Authors

  • Séverin Lemaignan
  • Lorenzo Ferrini

hri_fullbody

skeleton detection

Overview

:warning: some of the links are yet to be updated and may be pointing to the original ROS page. As soon as all the involved components will be officially documented for ROS 2 as well, we will update this document.

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 rely on some other package implementing a human body detection (and tracking in the best case) algorithm. Such package should provide the hri_fullbody detect node the IDs of the detected bodies and the relative images, cropped from the original image following the detected bounding boxes.

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.

Important: to estimate the body depth without using a depth sensor, a calibrated RGB camera is required. You can follow this tutorial to properly calibrate your camera.

Launch

ros2 launch hri_fullbody hri_fullbody_with_args.launch.py <parameters>

ROS API

Parameters

Node parameters:

  • single_body (default: True): whether or not running in single body mode (see above for the single body vs multi-body modes).
  • use_depth (default: False): whether or not to rely on depth images for estimating body movement in the scene. When this is False, the node estimates the body position in the scene solving a P6P problem for the face and approximating the position from this, using pinhole camera model geometry.
  • stickman_debug (default: False): whether or not to publish frames representing the body skeleton directly using the raw results from mediapipe 3D body pose estimation. These debug frames are not oriented to align with the body links (ie, only the 3D location of the frame is useful).
  • human_description_<body_id> (read-only): the URDF generated for body_<body_id>. The node generates a URDF for each detected body and uses them to perform kinematically-consistent 3D body pose estimation.

hri_fullbody.launch parameters:

  • single_body (default: True): equivalent to single_body node parameter.
  • use_depth (default: False): equivalent to use_depth node parameter.
  • stickman_debug (default: False): equivalent to stickman_debug node parameter.
  • rgb_camera (default: ` `): rgb camera topics namespace.
  • rgb_camera_topic (default: $(arg rgb_camera)/image_raw): rgb camera raw image topic.
  • rgb_camera_info (default: $(arg rgb_camera)/camera_info): rgb camera info topic.
  • depth_camera (default: ` `): depth camera topics namespace.
  • depth_camera_topic (default: $(arg depth_camera)/image_rect_raw): depth camera rectified raw image topic.
  • depth_camera_info (default: $(arg depth_camera)/camera_info): depth camera info topic.

Topics

hri_fullbody follows the ROS4HRI conventions (REP-155). In particular, refer to the REP to know the list and position of the 2D/3D skeleton points published by the node.

Subscribed topics

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package hri_fullbody

2.2.2 (2024-07-04)

  • linting
  • Contributors: Séverin Lemaignan

2.2.1 (2024-07-04)

  • launch: use get_pal_configuration from launch_pal
  • Contributors: Séverin Lemaignan

2.2.0 (2024-05-27)

  • Updated topics naming convention in source code and configuration file. Fiexed bugs
  • add configuration management
  • removed unused import os
  • Contributors: Luka Juricic, Raquel Ros, lorenzoferrini

2.1.1 (2024-05-21)

  • removed old ros command
  • Contributors: lorenzoferrini

2.1.0 (2024-05-07)

  • Support 32bits depth
  • Publish bodies' URDF on a topic instead of a parameter
  • Contributors: ferrangebelli

2.0.1 (2024-04-24)

  • add module
  • Contributors: lorenzoferrini

2.0.0 (2024-02-14)

  • removing bridging bug when using CvBridge.imgmsg_to_cv2 function without specifying the desired encoding to "bgr8", the returned image only had two channels if it's coming from the usb_cam node. Fixed the issue
  • ros 2 porting
  • clarify documentation for multibody case
  • fix multibody diagnostics bug
  • Contributors: Luka Juricic, lorenzoferrini

0.1.10 (2023-07-14)

  • reset mediapipe backend in case of matrix inversion error
  • Contributors: Luka Juricic

0.1.9 (2023-07-05)

  • fix bug in left ear tragion publish
  • change RoI message type to hri_msgs/NormalizedRegionOfInterest2D
  • Contributors: Luka Juricic

0.1.8 (2023-05-23)

  • disable publishing of face_XXX and gaze_XXX frames See comment in code for rationale
  • Contributors: Séverin Lemaignan

0.1.7 (2023-05-18)

  • diagnostic_msgs: exec_depend -> depend
  • Contributors: Séverin Lemaignan

0.1.6 (2023-05-18)

  • add diagnostics
  • Contributors: lukajuricic

0.1.5 (2023-03-08)

  • ensure mediapipe can not be called from 2 threads in parallel This would cause internal mediapipe errors related to non-monotonic timestamps
  • Contributors: Séverin Lemaignan

0.1.4 (2023-02-03)

  • Merge branch 'devel' into 'master' Revert "have threshold params" See merge request ros4hri/hri_fullbody!7
  • Merge branch 'master' into 'devel' # Conflicts: # src/hri_fullbody/fullbody_detector.py
  • Revert "have threshold params" This reverts commit 78264248652879a1b572397e8edeee6202685bc6 and commit 5cc5c34f7a93f8030623ff78945095778374cd36.
  • Merge branch 'devel' into 'master' Introduced requirements.txt See merge request ros4hri/hri_fullbody!6
  • Merge branch 'uncalibrated_monocular_camera' into 'master' Correctly managing uncalibrated camera See merge request ros4hri/hri_fullbody!5
  • Introduced requirements.txt Introduced requirements.txt. Currently, the only requirement specified is ikpy. Using the requirements.txt file syntax, it was possible to specify the requested version, that is, 3.2.2
  • Enabled human jointstate estimation for uncalibrated RGB cameras It

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged hri_fullbody at Robotics Stack Exchange

No version for distro rolling showing github. Known supported distros are highlighted in the buttons above.
Package symbol

hri_fullbody package from hri_fullbody repo

hri_fullbody

ROS Distro
github

Package Summary

Tags No category tags.
Version 2.2.2
License Apache License 2.0
Build type AMENT_PYTHON
Use RECOMMENDED

Repository Summary

Description A ROS4HRI-conformant node to track and extract 2D and 3D skeletons of humans from RGB/RGB-D cameras
Checkout URI https://github.com/ros4hri/hri_fullbody.git
VCS Type git
VCS Version humble-devel
Last Updated 2024-07-04
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Additional Links

No additional links.

Maintainers

  • Séverin Lemaignan
  • Lorenzo Ferrini

Authors

  • Séverin Lemaignan
  • Lorenzo Ferrini

hri_fullbody

skeleton detection

Overview

:warning: some of the links are yet to be updated and may be pointing to the original ROS page. As soon as all the involved components will be officially documented for ROS 2 as well, we will update this document.

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 rely on some other package implementing a human body detection (and tracking in the best case) algorithm. Such package should provide the hri_fullbody detect node the IDs of the detected bodies and the relative images, cropped from the original image following the detected bounding boxes.

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.

Important: to estimate the body depth without using a depth sensor, a calibrated RGB camera is required. You can follow this tutorial to properly calibrate your camera.

Launch

ros2 launch hri_fullbody hri_fullbody_with_args.launch.py <parameters>

ROS API

Parameters

Node parameters:

  • single_body (default: True): whether or not running in single body mode (see above for the single body vs multi-body modes).
  • use_depth (default: False): whether or not to rely on depth images for estimating body movement in the scene. When this is False, the node estimates the body position in the scene solving a P6P problem for the face and approximating the position from this, using pinhole camera model geometry.
  • stickman_debug (default: False): whether or not to publish frames representing the body skeleton directly using the raw results from mediapipe 3D body pose estimation. These debug frames are not oriented to align with the body links (ie, only the 3D location of the frame is useful).
  • human_description_<body_id> (read-only): the URDF generated for body_<body_id>. The node generates a URDF for each detected body and uses them to perform kinematically-consistent 3D body pose estimation.

hri_fullbody.launch parameters:

  • single_body (default: True): equivalent to single_body node parameter.
  • use_depth (default: False): equivalent to use_depth node parameter.
  • stickman_debug (default: False): equivalent to stickman_debug node parameter.
  • rgb_camera (default: ` `): rgb camera topics namespace.
  • rgb_camera_topic (default: $(arg rgb_camera)/image_raw): rgb camera raw image topic.
  • rgb_camera_info (default: $(arg rgb_camera)/camera_info): rgb camera info topic.
  • depth_camera (default: ` `): depth camera topics namespace.
  • depth_camera_topic (default: $(arg depth_camera)/image_rect_raw): depth camera rectified raw image topic.
  • depth_camera_info (default: $(arg depth_camera)/camera_info): depth camera info topic.

Topics

hri_fullbody follows the ROS4HRI conventions (REP-155). In particular, refer to the REP to know the list and position of the 2D/3D skeleton points published by the node.

Subscribed topics

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package hri_fullbody

2.2.2 (2024-07-04)

  • linting
  • Contributors: Séverin Lemaignan

2.2.1 (2024-07-04)

  • launch: use get_pal_configuration from launch_pal
  • Contributors: Séverin Lemaignan

2.2.0 (2024-05-27)

  • Updated topics naming convention in source code and configuration file. Fiexed bugs
  • add configuration management
  • removed unused import os
  • Contributors: Luka Juricic, Raquel Ros, lorenzoferrini

2.1.1 (2024-05-21)

  • removed old ros command
  • Contributors: lorenzoferrini

2.1.0 (2024-05-07)

  • Support 32bits depth
  • Publish bodies' URDF on a topic instead of a parameter
  • Contributors: ferrangebelli

2.0.1 (2024-04-24)

  • add module
  • Contributors: lorenzoferrini

2.0.0 (2024-02-14)

  • removing bridging bug when using CvBridge.imgmsg_to_cv2 function without specifying the desired encoding to "bgr8", the returned image only had two channels if it's coming from the usb_cam node. Fixed the issue
  • ros 2 porting
  • clarify documentation for multibody case
  • fix multibody diagnostics bug
  • Contributors: Luka Juricic, lorenzoferrini

0.1.10 (2023-07-14)

  • reset mediapipe backend in case of matrix inversion error
  • Contributors: Luka Juricic

0.1.9 (2023-07-05)

  • fix bug in left ear tragion publish
  • change RoI message type to hri_msgs/NormalizedRegionOfInterest2D
  • Contributors: Luka Juricic

0.1.8 (2023-05-23)

  • disable publishing of face_XXX and gaze_XXX frames See comment in code for rationale
  • Contributors: Séverin Lemaignan

0.1.7 (2023-05-18)

  • diagnostic_msgs: exec_depend -> depend
  • Contributors: Séverin Lemaignan

0.1.6 (2023-05-18)

  • add diagnostics
  • Contributors: lukajuricic

0.1.5 (2023-03-08)

  • ensure mediapipe can not be called from 2 threads in parallel This would cause internal mediapipe errors related to non-monotonic timestamps
  • Contributors: Séverin Lemaignan

0.1.4 (2023-02-03)

  • Merge branch 'devel' into 'master' Revert "have threshold params" See merge request ros4hri/hri_fullbody!7
  • Merge branch 'master' into 'devel' # Conflicts: # src/hri_fullbody/fullbody_detector.py
  • Revert "have threshold params" This reverts commit 78264248652879a1b572397e8edeee6202685bc6 and commit 5cc5c34f7a93f8030623ff78945095778374cd36.
  • Merge branch 'devel' into 'master' Introduced requirements.txt See merge request ros4hri/hri_fullbody!6
  • Merge branch 'uncalibrated_monocular_camera' into 'master' Correctly managing uncalibrated camera See merge request ros4hri/hri_fullbody!5
  • Introduced requirements.txt Introduced requirements.txt. Currently, the only requirement specified is ikpy. Using the requirements.txt file syntax, it was possible to specify the requested version, that is, 3.2.2
  • Enabled human jointstate estimation for uncalibrated RGB cameras It

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged hri_fullbody at Robotics Stack Exchange

Package symbol

hri_fullbody package from hri_fullbody repo

hri_fullbody

ROS Distro
github

Package Summary

Tags No category tags.
Version 2.2.2
License Apache License 2.0
Build type AMENT_PYTHON
Use RECOMMENDED

Repository Summary

Description A ROS4HRI-conformant node to track and extract 2D and 3D skeletons of humans from RGB/RGB-D cameras
Checkout URI https://github.com/ros4hri/hri_fullbody.git
VCS Type git
VCS Version humble-devel
Last Updated 2024-07-04
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Additional Links

No additional links.

Maintainers

  • Séverin Lemaignan
  • Lorenzo Ferrini

Authors

  • Séverin Lemaignan
  • Lorenzo Ferrini

hri_fullbody

skeleton detection

Overview

:warning: some of the links are yet to be updated and may be pointing to the original ROS page. As soon as all the involved components will be officially documented for ROS 2 as well, we will update this document.

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 rely on some other package implementing a human body detection (and tracking in the best case) algorithm. Such package should provide the hri_fullbody detect node the IDs of the detected bodies and the relative images, cropped from the original image following the detected bounding boxes.

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.

Important: to estimate the body depth without using a depth sensor, a calibrated RGB camera is required. You can follow this tutorial to properly calibrate your camera.

Launch

ros2 launch hri_fullbody hri_fullbody_with_args.launch.py <parameters>

ROS API

Parameters

Node parameters:

  • single_body (default: True): whether or not running in single body mode (see above for the single body vs multi-body modes).
  • use_depth (default: False): whether or not to rely on depth images for estimating body movement in the scene. When this is False, the node estimates the body position in the scene solving a P6P problem for the face and approximating the position from this, using pinhole camera model geometry.
  • stickman_debug (default: False): whether or not to publish frames representing the body skeleton directly using the raw results from mediapipe 3D body pose estimation. These debug frames are not oriented to align with the body links (ie, only the 3D location of the frame is useful).
  • human_description_<body_id> (read-only): the URDF generated for body_<body_id>. The node generates a URDF for each detected body and uses them to perform kinematically-consistent 3D body pose estimation.

hri_fullbody.launch parameters:

  • single_body (default: True): equivalent to single_body node parameter.
  • use_depth (default: False): equivalent to use_depth node parameter.
  • stickman_debug (default: False): equivalent to stickman_debug node parameter.
  • rgb_camera (default: ` `): rgb camera topics namespace.
  • rgb_camera_topic (default: $(arg rgb_camera)/image_raw): rgb camera raw image topic.
  • rgb_camera_info (default: $(arg rgb_camera)/camera_info): rgb camera info topic.
  • depth_camera (default: ` `): depth camera topics namespace.
  • depth_camera_topic (default: $(arg depth_camera)/image_rect_raw): depth camera rectified raw image topic.
  • depth_camera_info (default: $(arg depth_camera)/camera_info): depth camera info topic.

Topics

hri_fullbody follows the ROS4HRI conventions (REP-155). In particular, refer to the REP to know the list and position of the 2D/3D skeleton points published by the node.

Subscribed topics

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package hri_fullbody

2.2.2 (2024-07-04)

  • linting
  • Contributors: Séverin Lemaignan

2.2.1 (2024-07-04)

  • launch: use get_pal_configuration from launch_pal
  • Contributors: Séverin Lemaignan

2.2.0 (2024-05-27)

  • Updated topics naming convention in source code and configuration file. Fiexed bugs
  • add configuration management
  • removed unused import os
  • Contributors: Luka Juricic, Raquel Ros, lorenzoferrini

2.1.1 (2024-05-21)

  • removed old ros command
  • Contributors: lorenzoferrini

2.1.0 (2024-05-07)

  • Support 32bits depth
  • Publish bodies' URDF on a topic instead of a parameter
  • Contributors: ferrangebelli

2.0.1 (2024-04-24)

  • add module
  • Contributors: lorenzoferrini

2.0.0 (2024-02-14)

  • removing bridging bug when using CvBridge.imgmsg_to_cv2 function without specifying the desired encoding to "bgr8", the returned image only had two channels if it's coming from the usb_cam node. Fixed the issue
  • ros 2 porting
  • clarify documentation for multibody case
  • fix multibody diagnostics bug
  • Contributors: Luka Juricic, lorenzoferrini

0.1.10 (2023-07-14)

  • reset mediapipe backend in case of matrix inversion error
  • Contributors: Luka Juricic

0.1.9 (2023-07-05)

  • fix bug in left ear tragion publish
  • change RoI message type to hri_msgs/NormalizedRegionOfInterest2D
  • Contributors: Luka Juricic

0.1.8 (2023-05-23)

  • disable publishing of face_XXX and gaze_XXX frames See comment in code for rationale
  • Contributors: Séverin Lemaignan

0.1.7 (2023-05-18)

  • diagnostic_msgs: exec_depend -> depend
  • Contributors: Séverin Lemaignan

0.1.6 (2023-05-18)

  • add diagnostics
  • Contributors: lukajuricic

0.1.5 (2023-03-08)

  • ensure mediapipe can not be called from 2 threads in parallel This would cause internal mediapipe errors related to non-monotonic timestamps
  • Contributors: Séverin Lemaignan

0.1.4 (2023-02-03)

  • Merge branch 'devel' into 'master' Revert "have threshold params" See merge request ros4hri/hri_fullbody!7
  • Merge branch 'master' into 'devel' # Conflicts: # src/hri_fullbody/fullbody_detector.py
  • Revert "have threshold params" This reverts commit 78264248652879a1b572397e8edeee6202685bc6 and commit 5cc5c34f7a93f8030623ff78945095778374cd36.
  • Merge branch 'devel' into 'master' Introduced requirements.txt See merge request ros4hri/hri_fullbody!6
  • Merge branch 'uncalibrated_monocular_camera' into 'master' Correctly managing uncalibrated camera See merge request ros4hri/hri_fullbody!5
  • Introduced requirements.txt Introduced requirements.txt. Currently, the only requirement specified is ikpy. Using the requirements.txt file syntax, it was possible to specify the requested version, that is, 3.2.2
  • Enabled human jointstate estimation for uncalibrated RGB cameras It

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged hri_fullbody at Robotics Stack Exchange

No version for distro galactic showing github. Known supported distros are highlighted in the buttons above.
Package symbol

hri_fullbody package from hri_fullbody repo

hri_fullbody

ROS Distro
github

Package Summary

Tags No category tags.
Version 2.2.2
License Apache License 2.0
Build type AMENT_PYTHON
Use RECOMMENDED

Repository Summary

Description A ROS4HRI-conformant node to track and extract 2D and 3D skeletons of humans from RGB/RGB-D cameras
Checkout URI https://github.com/ros4hri/hri_fullbody.git
VCS Type git
VCS Version humble-devel
Last Updated 2024-07-04
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Additional Links

No additional links.

Maintainers

  • Séverin Lemaignan
  • Lorenzo Ferrini

Authors

  • Séverin Lemaignan
  • Lorenzo Ferrini

hri_fullbody

skeleton detection

Overview

:warning: some of the links are yet to be updated and may be pointing to the original ROS page. As soon as all the involved components will be officially documented for ROS 2 as well, we will update this document.

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 rely on some other package implementing a human body detection (and tracking in the best case) algorithm. Such package should provide the hri_fullbody detect node the IDs of the detected bodies and the relative images, cropped from the original image following the detected bounding boxes.

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.

Important: to estimate the body depth without using a depth sensor, a calibrated RGB camera is required. You can follow this tutorial to properly calibrate your camera.

Launch

ros2 launch hri_fullbody hri_fullbody_with_args.launch.py <parameters>

ROS API

Parameters

Node parameters:

  • single_body (default: True): whether or not running in single body mode (see above for the single body vs multi-body modes).
  • use_depth (default: False): whether or not to rely on depth images for estimating body movement in the scene. When this is False, the node estimates the body position in the scene solving a P6P problem for the face and approximating the position from this, using pinhole camera model geometry.
  • stickman_debug (default: False): whether or not to publish frames representing the body skeleton directly using the raw results from mediapipe 3D body pose estimation. These debug frames are not oriented to align with the body links (ie, only the 3D location of the frame is useful).
  • human_description_<body_id> (read-only): the URDF generated for body_<body_id>. The node generates a URDF for each detected body and uses them to perform kinematically-consistent 3D body pose estimation.

hri_fullbody.launch parameters:

  • single_body (default: True): equivalent to single_body node parameter.
  • use_depth (default: False): equivalent to use_depth node parameter.
  • stickman_debug (default: False): equivalent to stickman_debug node parameter.
  • rgb_camera (default: ` `): rgb camera topics namespace.
  • rgb_camera_topic (default: $(arg rgb_camera)/image_raw): rgb camera raw image topic.
  • rgb_camera_info (default: $(arg rgb_camera)/camera_info): rgb camera info topic.
  • depth_camera (default: ` `): depth camera topics namespace.
  • depth_camera_topic (default: $(arg depth_camera)/image_rect_raw): depth camera rectified raw image topic.
  • depth_camera_info (default: $(arg depth_camera)/camera_info): depth camera info topic.

Topics

hri_fullbody follows the ROS4HRI conventions (REP-155). In particular, refer to the REP to know the list and position of the 2D/3D skeleton points published by the node.

Subscribed topics

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package hri_fullbody

2.2.2 (2024-07-04)

  • linting
  • Contributors: Séverin Lemaignan

2.2.1 (2024-07-04)

  • launch: use get_pal_configuration from launch_pal
  • Contributors: Séverin Lemaignan

2.2.0 (2024-05-27)

  • Updated topics naming convention in source code and configuration file. Fiexed bugs
  • add configuration management
  • removed unused import os
  • Contributors: Luka Juricic, Raquel Ros, lorenzoferrini

2.1.1 (2024-05-21)

  • removed old ros command
  • Contributors: lorenzoferrini

2.1.0 (2024-05-07)

  • Support 32bits depth
  • Publish bodies' URDF on a topic instead of a parameter
  • Contributors: ferrangebelli

2.0.1 (2024-04-24)

  • add module
  • Contributors: lorenzoferrini

2.0.0 (2024-02-14)

  • removing bridging bug when using CvBridge.imgmsg_to_cv2 function without specifying the desired encoding to "bgr8", the returned image only had two channels if it's coming from the usb_cam node. Fixed the issue
  • ros 2 porting
  • clarify documentation for multibody case
  • fix multibody diagnostics bug
  • Contributors: Luka Juricic, lorenzoferrini

0.1.10 (2023-07-14)

  • reset mediapipe backend in case of matrix inversion error
  • Contributors: Luka Juricic

0.1.9 (2023-07-05)

  • fix bug in left ear tragion publish
  • change RoI message type to hri_msgs/NormalizedRegionOfInterest2D
  • Contributors: Luka Juricic

0.1.8 (2023-05-23)

  • disable publishing of face_XXX and gaze_XXX frames See comment in code for rationale
  • Contributors: Séverin Lemaignan

0.1.7 (2023-05-18)

  • diagnostic_msgs: exec_depend -> depend
  • Contributors: Séverin Lemaignan

0.1.6 (2023-05-18)

  • add diagnostics
  • Contributors: lukajuricic

0.1.5 (2023-03-08)

  • ensure mediapipe can not be called from 2 threads in parallel This would cause internal mediapipe errors related to non-monotonic timestamps
  • Contributors: Séverin Lemaignan

0.1.4 (2023-02-03)

  • Merge branch 'devel' into 'master' Revert "have threshold params" See merge request ros4hri/hri_fullbody!7
  • Merge branch 'master' into 'devel' # Conflicts: # src/hri_fullbody/fullbody_detector.py
  • Revert "have threshold params" This reverts commit 78264248652879a1b572397e8edeee6202685bc6 and commit 5cc5c34f7a93f8030623ff78945095778374cd36.
  • Merge branch 'devel' into 'master' Introduced requirements.txt See merge request ros4hri/hri_fullbody!6
  • Merge branch 'uncalibrated_monocular_camera' into 'master' Correctly managing uncalibrated camera See merge request ros4hri/hri_fullbody!5
  • Introduced requirements.txt Introduced requirements.txt. Currently, the only requirement specified is ikpy. Using the requirements.txt file syntax, it was possible to specify the requested version, that is, 3.2.2
  • Enabled human jointstate estimation for uncalibrated RGB cameras It

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged hri_fullbody at Robotics Stack Exchange

No version for distro iron showing github. Known supported distros are highlighted in the buttons above.
Package symbol

hri_fullbody package from hri_fullbody repo

hri_fullbody

ROS Distro
github

Package Summary

Tags No category tags.
Version 2.2.2
License Apache License 2.0
Build type AMENT_PYTHON
Use RECOMMENDED

Repository Summary

Description A ROS4HRI-conformant node to track and extract 2D and 3D skeletons of humans from RGB/RGB-D cameras
Checkout URI https://github.com/ros4hri/hri_fullbody.git
VCS Type git
VCS Version humble-devel
Last Updated 2024-07-04
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Additional Links

No additional links.

Maintainers

  • Séverin Lemaignan
  • Lorenzo Ferrini

Authors

  • Séverin Lemaignan
  • Lorenzo Ferrini

hri_fullbody

skeleton detection

Overview

:warning: some of the links are yet to be updated and may be pointing to the original ROS page. As soon as all the involved components will be officially documented for ROS 2 as well, we will update this document.

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 rely on some other package implementing a human body detection (and tracking in the best case) algorithm. Such package should provide the hri_fullbody detect node the IDs of the detected bodies and the relative images, cropped from the original image following the detected bounding boxes.

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.

Important: to estimate the body depth without using a depth sensor, a calibrated RGB camera is required. You can follow this tutorial to properly calibrate your camera.

Launch

ros2 launch hri_fullbody hri_fullbody_with_args.launch.py <parameters>

ROS API

Parameters

Node parameters:

  • single_body (default: True): whether or not running in single body mode (see above for the single body vs multi-body modes).
  • use_depth (default: False): whether or not to rely on depth images for estimating body movement in the scene. When this is False, the node estimates the body position in the scene solving a P6P problem for the face and approximating the position from this, using pinhole camera model geometry.
  • stickman_debug (default: False): whether or not to publish frames representing the body skeleton directly using the raw results from mediapipe 3D body pose estimation. These debug frames are not oriented to align with the body links (ie, only the 3D location of the frame is useful).
  • human_description_<body_id> (read-only): the URDF generated for body_<body_id>. The node generates a URDF for each detected body and uses them to perform kinematically-consistent 3D body pose estimation.

hri_fullbody.launch parameters:

  • single_body (default: True): equivalent to single_body node parameter.
  • use_depth (default: False): equivalent to use_depth node parameter.
  • stickman_debug (default: False): equivalent to stickman_debug node parameter.
  • rgb_camera (default: ` `): rgb camera topics namespace.
  • rgb_camera_topic (default: $(arg rgb_camera)/image_raw): rgb camera raw image topic.
  • rgb_camera_info (default: $(arg rgb_camera)/camera_info): rgb camera info topic.
  • depth_camera (default: ` `): depth camera topics namespace.
  • depth_camera_topic (default: $(arg depth_camera)/image_rect_raw): depth camera rectified raw image topic.
  • depth_camera_info (default: $(arg depth_camera)/camera_info): depth camera info topic.

Topics

hri_fullbody follows the ROS4HRI conventions (REP-155). In particular, refer to the REP to know the list and position of the 2D/3D skeleton points published by the node.

Subscribed topics

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package hri_fullbody

2.2.2 (2024-07-04)

  • linting
  • Contributors: Séverin Lemaignan

2.2.1 (2024-07-04)

  • launch: use get_pal_configuration from launch_pal
  • Contributors: Séverin Lemaignan

2.2.0 (2024-05-27)

  • Updated topics naming convention in source code and configuration file. Fiexed bugs
  • add configuration management
  • removed unused import os
  • Contributors: Luka Juricic, Raquel Ros, lorenzoferrini

2.1.1 (2024-05-21)

  • removed old ros command
  • Contributors: lorenzoferrini

2.1.0 (2024-05-07)

  • Support 32bits depth
  • Publish bodies' URDF on a topic instead of a parameter
  • Contributors: ferrangebelli

2.0.1 (2024-04-24)

  • add module
  • Contributors: lorenzoferrini

2.0.0 (2024-02-14)

  • removing bridging bug when using CvBridge.imgmsg_to_cv2 function without specifying the desired encoding to "bgr8", the returned image only had two channels if it's coming from the usb_cam node. Fixed the issue
  • ros 2 porting
  • clarify documentation for multibody case
  • fix multibody diagnostics bug
  • Contributors: Luka Juricic, lorenzoferrini

0.1.10 (2023-07-14)

  • reset mediapipe backend in case of matrix inversion error
  • Contributors: Luka Juricic

0.1.9 (2023-07-05)

  • fix bug in left ear tragion publish
  • change RoI message type to hri_msgs/NormalizedRegionOfInterest2D
  • Contributors: Luka Juricic

0.1.8 (2023-05-23)

  • disable publishing of face_XXX and gaze_XXX frames See comment in code for rationale
  • Contributors: Séverin Lemaignan

0.1.7 (2023-05-18)

  • diagnostic_msgs: exec_depend -> depend
  • Contributors: Séverin Lemaignan

0.1.6 (2023-05-18)

  • add diagnostics
  • Contributors: lukajuricic

0.1.5 (2023-03-08)

  • ensure mediapipe can not be called from 2 threads in parallel This would cause internal mediapipe errors related to non-monotonic timestamps
  • Contributors: Séverin Lemaignan

0.1.4 (2023-02-03)

  • Merge branch 'devel' into 'master' Revert "have threshold params" See merge request ros4hri/hri_fullbody!7
  • Merge branch 'master' into 'devel' # Conflicts: # src/hri_fullbody/fullbody_detector.py
  • Revert "have threshold params" This reverts commit 78264248652879a1b572397e8edeee6202685bc6 and commit 5cc5c34f7a93f8030623ff78945095778374cd36.
  • Merge branch 'devel' into 'master' Introduced requirements.txt See merge request ros4hri/hri_fullbody!6
  • Merge branch 'uncalibrated_monocular_camera' into 'master' Correctly managing uncalibrated camera See merge request ros4hri/hri_fullbody!5
  • Introduced requirements.txt Introduced requirements.txt. Currently, the only requirement specified is ikpy. Using the requirements.txt file syntax, it was possible to specify the requested version, that is, 3.2.2
  • Enabled human jointstate estimation for uncalibrated RGB cameras It

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged hri_fullbody at Robotics Stack Exchange

No version for distro melodic showing github. Known supported distros are highlighted in the buttons above.
Package symbol

hri_fullbody package from hri_fullbody repo

hri_fullbody

ROS Distro
github

Package Summary

Tags No category tags.
Version 2.2.2
License Apache License 2.0
Build type AMENT_PYTHON
Use RECOMMENDED

Repository Summary

Description A ROS4HRI-conformant node to track and extract 2D and 3D skeletons of humans from RGB/RGB-D cameras
Checkout URI https://github.com/ros4hri/hri_fullbody.git
VCS Type git
VCS Version humble-devel
Last Updated 2024-07-04
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Additional Links

No additional links.

Maintainers

  • Séverin Lemaignan
  • Lorenzo Ferrini

Authors

  • Séverin Lemaignan
  • Lorenzo Ferrini

hri_fullbody

skeleton detection

Overview

:warning: some of the links are yet to be updated and may be pointing to the original ROS page. As soon as all the involved components will be officially documented for ROS 2 as well, we will update this document.

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 rely on some other package implementing a human body detection (and tracking in the best case) algorithm. Such package should provide the hri_fullbody detect node the IDs of the detected bodies and the relative images, cropped from the original image following the detected bounding boxes.

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.

Important: to estimate the body depth without using a depth sensor, a calibrated RGB camera is required. You can follow this tutorial to properly calibrate your camera.

Launch

ros2 launch hri_fullbody hri_fullbody_with_args.launch.py <parameters>

ROS API

Parameters

Node parameters:

  • single_body (default: True): whether or not running in single body mode (see above for the single body vs multi-body modes).
  • use_depth (default: False): whether or not to rely on depth images for estimating body movement in the scene. When this is False, the node estimates the body position in the scene solving a P6P problem for the face and approximating the position from this, using pinhole camera model geometry.
  • stickman_debug (default: False): whether or not to publish frames representing the body skeleton directly using the raw results from mediapipe 3D body pose estimation. These debug frames are not oriented to align with the body links (ie, only the 3D location of the frame is useful).
  • human_description_<body_id> (read-only): the URDF generated for body_<body_id>. The node generates a URDF for each detected body and uses them to perform kinematically-consistent 3D body pose estimation.

hri_fullbody.launch parameters:

  • single_body (default: True): equivalent to single_body node parameter.
  • use_depth (default: False): equivalent to use_depth node parameter.
  • stickman_debug (default: False): equivalent to stickman_debug node parameter.
  • rgb_camera (default: ` `): rgb camera topics namespace.
  • rgb_camera_topic (default: $(arg rgb_camera)/image_raw): rgb camera raw image topic.
  • rgb_camera_info (default: $(arg rgb_camera)/camera_info): rgb camera info topic.
  • depth_camera (default: ` `): depth camera topics namespace.
  • depth_camera_topic (default: $(arg depth_camera)/image_rect_raw): depth camera rectified raw image topic.
  • depth_camera_info (default: $(arg depth_camera)/camera_info): depth camera info topic.

Topics

hri_fullbody follows the ROS4HRI conventions (REP-155). In particular, refer to the REP to know the list and position of the 2D/3D skeleton points published by the node.

Subscribed topics

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package hri_fullbody

2.2.2 (2024-07-04)

  • linting
  • Contributors: Séverin Lemaignan

2.2.1 (2024-07-04)

  • launch: use get_pal_configuration from launch_pal
  • Contributors: Séverin Lemaignan

2.2.0 (2024-05-27)

  • Updated topics naming convention in source code and configuration file. Fiexed bugs
  • add configuration management
  • removed unused import os
  • Contributors: Luka Juricic, Raquel Ros, lorenzoferrini

2.1.1 (2024-05-21)

  • removed old ros command
  • Contributors: lorenzoferrini

2.1.0 (2024-05-07)

  • Support 32bits depth
  • Publish bodies' URDF on a topic instead of a parameter
  • Contributors: ferrangebelli

2.0.1 (2024-04-24)

  • add module
  • Contributors: lorenzoferrini

2.0.0 (2024-02-14)

  • removing bridging bug when using CvBridge.imgmsg_to_cv2 function without specifying the desired encoding to "bgr8", the returned image only had two channels if it's coming from the usb_cam node. Fixed the issue
  • ros 2 porting
  • clarify documentation for multibody case
  • fix multibody diagnostics bug
  • Contributors: Luka Juricic, lorenzoferrini

0.1.10 (2023-07-14)

  • reset mediapipe backend in case of matrix inversion error
  • Contributors: Luka Juricic

0.1.9 (2023-07-05)

  • fix bug in left ear tragion publish
  • change RoI message type to hri_msgs/NormalizedRegionOfInterest2D
  • Contributors: Luka Juricic

0.1.8 (2023-05-23)

  • disable publishing of face_XXX and gaze_XXX frames See comment in code for rationale
  • Contributors: Séverin Lemaignan

0.1.7 (2023-05-18)

  • diagnostic_msgs: exec_depend -> depend
  • Contributors: Séverin Lemaignan

0.1.6 (2023-05-18)

  • add diagnostics
  • Contributors: lukajuricic

0.1.5 (2023-03-08)

  • ensure mediapipe can not be called from 2 threads in parallel This would cause internal mediapipe errors related to non-monotonic timestamps
  • Contributors: Séverin Lemaignan

0.1.4 (2023-02-03)

  • Merge branch 'devel' into 'master' Revert "have threshold params" See merge request ros4hri/hri_fullbody!7
  • Merge branch 'master' into 'devel' # Conflicts: # src/hri_fullbody/fullbody_detector.py
  • Revert "have threshold params" This reverts commit 78264248652879a1b572397e8edeee6202685bc6 and commit 5cc5c34f7a93f8030623ff78945095778374cd36.
  • Merge branch 'devel' into 'master' Introduced requirements.txt See merge request ros4hri/hri_fullbody!6
  • Merge branch 'uncalibrated_monocular_camera' into 'master' Correctly managing uncalibrated camera See merge request ros4hri/hri_fullbody!5
  • Introduced requirements.txt Introduced requirements.txt. Currently, the only requirement specified is ikpy. Using the requirements.txt file syntax, it was possible to specify the requested version, that is, 3.2.2
  • Enabled human jointstate estimation for uncalibrated RGB cameras It

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged hri_fullbody at Robotics Stack Exchange

No version for distro noetic showing github. Known supported distros are highlighted in the buttons above.
Package symbol

hri_fullbody package from hri_fullbody repo

hri_fullbody

ROS Distro
github

Package Summary

Tags No category tags.
Version 2.2.2
License Apache License 2.0
Build type AMENT_PYTHON
Use RECOMMENDED

Repository Summary

Description A ROS4HRI-conformant node to track and extract 2D and 3D skeletons of humans from RGB/RGB-D cameras
Checkout URI https://github.com/ros4hri/hri_fullbody.git
VCS Type git
VCS Version humble-devel
Last Updated 2024-07-04
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Additional Links

No additional links.

Maintainers

  • Séverin Lemaignan
  • Lorenzo Ferrini

Authors

  • Séverin Lemaignan
  • Lorenzo Ferrini

hri_fullbody

skeleton detection

Overview

:warning: some of the links are yet to be updated and may be pointing to the original ROS page. As soon as all the involved components will be officially documented for ROS 2 as well, we will update this document.

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 rely on some other package implementing a human body detection (and tracking in the best case) algorithm. Such package should provide the hri_fullbody detect node the IDs of the detected bodies and the relative images, cropped from the original image following the detected bounding boxes.

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.

Important: to estimate the body depth without using a depth sensor, a calibrated RGB camera is required. You can follow this tutorial to properly calibrate your camera.

Launch

ros2 launch hri_fullbody hri_fullbody_with_args.launch.py <parameters>

ROS API

Parameters

Node parameters:

  • single_body (default: True): whether or not running in single body mode (see above for the single body vs multi-body modes).
  • use_depth (default: False): whether or not to rely on depth images for estimating body movement in the scene. When this is False, the node estimates the body position in the scene solving a P6P problem for the face and approximating the position from this, using pinhole camera model geometry.
  • stickman_debug (default: False): whether or not to publish frames representing the body skeleton directly using the raw results from mediapipe 3D body pose estimation. These debug frames are not oriented to align with the body links (ie, only the 3D location of the frame is useful).
  • human_description_<body_id> (read-only): the URDF generated for body_<body_id>. The node generates a URDF for each detected body and uses them to perform kinematically-consistent 3D body pose estimation.

hri_fullbody.launch parameters:

  • single_body (default: True): equivalent to single_body node parameter.
  • use_depth (default: False): equivalent to use_depth node parameter.
  • stickman_debug (default: False): equivalent to stickman_debug node parameter.
  • rgb_camera (default: ` `): rgb camera topics namespace.
  • rgb_camera_topic (default: $(arg rgb_camera)/image_raw): rgb camera raw image topic.
  • rgb_camera_info (default: $(arg rgb_camera)/camera_info): rgb camera info topic.
  • depth_camera (default: ` `): depth camera topics namespace.
  • depth_camera_topic (default: $(arg depth_camera)/image_rect_raw): depth camera rectified raw image topic.
  • depth_camera_info (default: $(arg depth_camera)/camera_info): depth camera info topic.

Topics

hri_fullbody follows the ROS4HRI conventions (REP-155). In particular, refer to the REP to know the list and position of the 2D/3D skeleton points published by the node.

Subscribed topics

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package hri_fullbody

2.2.2 (2024-07-04)

  • linting
  • Contributors: Séverin Lemaignan

2.2.1 (2024-07-04)

  • launch: use get_pal_configuration from launch_pal
  • Contributors: Séverin Lemaignan

2.2.0 (2024-05-27)

  • Updated topics naming convention in source code and configuration file. Fiexed bugs
  • add configuration management
  • removed unused import os
  • Contributors: Luka Juricic, Raquel Ros, lorenzoferrini

2.1.1 (2024-05-21)

  • removed old ros command
  • Contributors: lorenzoferrini

2.1.0 (2024-05-07)

  • Support 32bits depth
  • Publish bodies' URDF on a topic instead of a parameter
  • Contributors: ferrangebelli

2.0.1 (2024-04-24)

  • add module
  • Contributors: lorenzoferrini

2.0.0 (2024-02-14)

  • removing bridging bug when using CvBridge.imgmsg_to_cv2 function without specifying the desired encoding to "bgr8", the returned image only had two channels if it's coming from the usb_cam node. Fixed the issue
  • ros 2 porting
  • clarify documentation for multibody case
  • fix multibody diagnostics bug
  • Contributors: Luka Juricic, lorenzoferrini

0.1.10 (2023-07-14)

  • reset mediapipe backend in case of matrix inversion error
  • Contributors: Luka Juricic

0.1.9 (2023-07-05)

  • fix bug in left ear tragion publish
  • change RoI message type to hri_msgs/NormalizedRegionOfInterest2D
  • Contributors: Luka Juricic

0.1.8 (2023-05-23)

  • disable publishing of face_XXX and gaze_XXX frames See comment in code for rationale
  • Contributors: Séverin Lemaignan

0.1.7 (2023-05-18)

  • diagnostic_msgs: exec_depend -> depend
  • Contributors: Séverin Lemaignan

0.1.6 (2023-05-18)

  • add diagnostics
  • Contributors: lukajuricic

0.1.5 (2023-03-08)

  • ensure mediapipe can not be called from 2 threads in parallel This would cause internal mediapipe errors related to non-monotonic timestamps
  • Contributors: Séverin Lemaignan

0.1.4 (2023-02-03)

  • Merge branch 'devel' into 'master' Revert "have threshold params" See merge request ros4hri/hri_fullbody!7
  • Merge branch 'master' into 'devel' # Conflicts: # src/hri_fullbody/fullbody_detector.py
  • Revert "have threshold params" This reverts commit 78264248652879a1b572397e8edeee6202685bc6 and commit 5cc5c34f7a93f8030623ff78945095778374cd36.
  • Merge branch 'devel' into 'master' Introduced requirements.txt See merge request ros4hri/hri_fullbody!6
  • Merge branch 'uncalibrated_monocular_camera' into 'master' Correctly managing uncalibrated camera See merge request ros4hri/hri_fullbody!5
  • Introduced requirements.txt Introduced requirements.txt. Currently, the only requirement specified is ikpy. Using the requirements.txt file syntax, it was possible to specify the requested version, that is, 3.2.2
  • Enabled human jointstate estimation for uncalibrated RGB cameras It

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged hri_fullbody at Robotics Stack Exchange