Adding Body Tracking in ROS 2
The ROS 2 wrapper offers full support for the Body Tracking module of the ZED SDK. The Body Tracking module is not available for the older ZED camera model.
The Body Tracking module can be configured to use one of the available detection models:
MODEL | Description |
---|---|
HUMAN_BODY_FAST | Keypoints based, specific to human skeleton, real time performance even on NVIDIA® Jetson or low end GPU cards |
HUMAN_BODY_MEDIUM | Keypoints based, specific to human skeleton, compromise between accuracy and speed |
HUMAN_BODY_ACCURATE | Keypoints based, specific to human skeleton, state of the art accuracy, requires powerful GPU |
The Body Tracking module can be configured to use one of the available body formats:
FORMAT | Description |
---|---|
BODY_18 | 18 keypoints model. Basic Body model |
BODY_34 | 34 keypoints model. Body model, requires body fitting enabled |
BODY_38 | 38 keypoints model. Body model, including feet simplified face and hands |
BODY_70 | 70 keypoints model. Body model, including feet and full hands models (and simplified face) |
The result of the detection is published using a new custom message of type zed_interfaces/ObjectsStamped defined in the package zed_interfaces.
Enable Body Tracking #
Body Tracking can be started automatically when the ZED Wrapper node starts by setting the parameter body_tracking.bt_enabled
to true
in the file common.yaml
.
It is also possible to start the Body Tracking processing manually by calling the service ~/
enable_obj_detwith the parameter
True`.
In both cases, the Body Tracking processing can be stopped by calling the service ~/
enable_obj_detwith the parameter
False`.
See the services documentation for more info.
Body Tracking results in RVIZ 2 #
To visualize the results of the Body Tracking processing in Rviz2 the new ZedOdDisplay
plugin is required. The plugin is available in the zed-ros2-examples GitHub repository and can be installed following the online instructions.
📌 Note: the source code of the plugin is a valid example about how to process the data of the topics of type zed_interfaces/ObjectsStamped.
Parameters:
Topic
: Selects the body tracking topic to visualize from the list of available images in the combo box.Depth
: The depth of the incoming message queue.History policy
: Set the QoS history policy.Keep Last
is suggested for performance and compatibility.Reliability Policy
: Set the QoS reliability policy.Best Effort
is suggested for performance and compatibility.Durability Policy
: Set the QoS durability policy.Volatile
is suggested for compatibility.Transparency
: the transparency level of the structures composing the detected bodies.Show skeleton
: enable/disable the visualization of the skeleton of the detected persons.Show Labels
: enable/disable the visualization of the label.Show Bounding Boxes
: enable/disable the visualization of the bounding boxes of the detected bodies.Link Size
: the size of the bounding boxes’ corner lines and skeleton link lines.Joint Radius
: the radius of the spheres placed on the corners of the bounding boxes and on the skeleton joint points.Label Scale
: the scale of the label of the bodies.