scieee AI-readable full text Open interactive document viewer

SMPL_ROS: A ROS 2 package with Parametric Human Body Models for Robotic Applications

Nardi, Davide; Martinelli, Giulia; Bisagno, Niccolò; Fontanelli, Daniele; Saveriano, Matteo; Palopoli, Luigi; Lamon, Edoardo

Abstract

We present smpl_ros, a ROS 2 package integrating the SMPL parametric human body model for robotic applications. It enables real-time volumetric human tracking, combining semantic and biomechanical realism, outperforming classical skeleton trackers in pose accuracy. Our toolbox, available at https://github.com/idra-lab/smpl_ros, facilitates efficient fitting, visualisation, and use of SMPL models, all within the ROS 2 middleware, bridging human modelling within applications in robotic perception and physical interaction.

Full text

SMPL ROS: A ROS 2 package with Parametric Human Body Models for Robotic Applications Davide Nardi1,2, Giulia Martinelli2, Niccol` o Bisagno2, Daniele Fontanelli1,3, Matteo Saveriano1,3, Luigi Palopoli1,2, and Edoardo Lamon1,2 Abstract—We present smpl ros, a ROS 2 package integrating the SMPL parametric human body model for robotic applications. It enables real-time volumetric human tracking, combining semantic and biomechanical realism, outperforming classical skeleton trackers in pose accuracy. Our toolbox, available at https://github.com/idra-lab/smpl ros, facilitates efficient fitting, visualisation, and use of SMPL models, all within the ROS 2 middleware, bridging human modelling within applications in robotic perception and physical interaction. Index Terms—SMPL, Human Modelling, Human Tracking I. INTRODUCTION In human–robot interaction, representing the human body in a way that balances semantic interpretability and biomechanical realism is a long-standing challenge. Skeletal models provide semantic information such as joint locations and kinematic constraints but lack volumetric and surface details, whereas accurate visual reconstructions derived from scans or point clouds capture volumetric information but remain nonsemantic, sparse, and heavily dependent on sensor quality and viewpoint. Some approaches rely on meshes generated by algorithms such as Poisson Surface Reconstruction or on local models, both derived directly from point clouds. However, these methods are computationally demanding, limiting their applicability in real-time scenarios. To address this gap, parametric body models such as the Skinned Multi-Person Linear model (SMPL) [1] offer a compact, smooth, and semantically meaningful representation of human shape and pose, which can be sampled, animated, and integrated into various applications. The research community is widely contributing to increasing the capability of SMPL-based models, including its expressive (SMPL-X), skeletal (SKEL) and anatomical extensions (SMPL-A), which could find applications in social robotics, biomechanics, and physical human-robot interaction. However, to the best of the author’s knowledge, the use of these models in the robotics community is still very limited due to their real-time performance and their low compatibility with the existing robotics software ecosystems, such as the Robot Operating System 2 (ROS 2). To address these issues, we introduce smpl_ros, a ROS 2 toolbox that integrates a C++ library implementing the SMPL model along with essential functionalities such as model We acknowledge the support of the MUR PNRR project FAIR - Future AI Research (PE00000013) and the European Union project INVERSE (ga no. 101136067). [email protected] 1Interdepartmental Robotics Labs (IDRA). 2Department of Information Engineering and Computer Science, Universit` a di Trento, Trento, Italy. 3Department of Industrial Engineering, Universit` a di Trento, Trento, Italy. Fig. 1. Multiple frames from the RViz visualization showing the SMPL mesh (orange) overlaid on the segmented point cloud of the subject, captured at different time instances. fitting to human scans and real-time visualisation. The library is meant to be efficient and portable, while the toolbox is designed for seamless integration into robotic applications by leveraging the widely adopted ROS 2 middleware. Our contribution bridges semantic volumetric human body modelling with robotic pipelines, establishing a foundation for future developments in the medical, biomechanical, and physical human-robot interactive domains. To demonstrate the potential of SMPL in robotics, we evaluated quantitatively its capability to represent the human body against a state-of-the-art skeleton tracker [2], reporting results for both real-time and offline keypoint estimation. Preliminary results show that SMPL outperforms standard skeleton trackers by enforcing realistic anatomical limits, preventing effects like unnatural limb elongations common in 2D keypoint models. Finally, the attached video provides an overview of the package functionalities: body fitting and online model update. The smpl_ros toolbox is available here: https://github.com/idra-lab/smpl ros. II. METHODOLOGY SMPL is a skinned 3D parametrised linear model of the human body that has been learnt from thousands of highresolution body scans. It provides three variants corresponding to male, female, and neutral body types. The pose of the model is parameterised by the orientations of 24 body frames, represented as θ∈R3×24, together with a global body translation t∈R3. Specifically, each θi(i= 1,...,23) encodes the local 3D rotation of a link relative to its kinematic parent, while θ0denotes the global orientation of the body, measured at the pelvis link. The body shape is encoded by a set of global shape coefficients, β∈R10. Body Shape Estimation: The shape parameter vector βis estimated via gradient-based minimisation using the Chamfer distance as the loss function L(·), defined as the average nearest neighbour distance between two sets of points. In our 2025 I-RIM Conference October 17-19, Rome, Italy ISBN: 9788894580570 10.5281/zenodo.17629894 249 case, it is computed between the point cloud points VPC and the SMPL vertices VSMPL: L(VSMPL, VPC)=LSMP L +LP C (1) where LSMP L =Px∈VSMPL miny∈VPC ∥x−y∥2 2and LP C = Py∈VPC minx∈VSMPL ∥y−x∥2 2. This optimisation aligns the SMPL surface with subject-specific body scans and is typically initialised in canonical poses (T-pose or A-pose) to stabilise convergence. The optimisation operates hierarchically, initially refining t, then θand finally β. The outcome of this procedure is an adapted SMPL body model that approximates the subject’s morphology and posture. We provide the full implementation as well as multiple examples of the parameter fitting on body scans in the smpl_ros toolbox. Body Pose Estimation: To combine the high-frequency updates of skeleton tracking with the volumetric and kinematic representation provided by SMPL, we fuse the two by mapping the tracker’s local joint orientations to the SMPL pose parameters θ1,...,23, its global orientation to θ0, and its root position to the body translation vector t. In our C++ implementation, the SMPL model animation does not constitute a computational bottleneck, as it easily reaches a 1kHz update rate. Rather, the update frequency is limited by the skeleton tracker and the underlying sensing hardware instead. Online and Offline Model Usage: By animating SMPL with the previously computed βand the continuously updated θand t, we inherently obtain a volumetric representation of the body that respects kinematic constraints, automatically correcting any skeletal keypoints that would otherwise be physically implausible. This is achieved by sending joint orientations from the tracker, while the SMPL model calculates the corresponding 3D positions using its kinematic and volumetric structure. Although this approach achieves a reasonable balance between update rate and accuracy in the case of dynamic motions, such as in physical humanrobot interaction or rehabilitation, it may not provide sufficient precision for tasks in which accuracy is demanded. Therefore, we also included a slower (0.025 Hz) but more complete model update, useful when the human is assumed to remain stationary. Here, the SMPL model parameters β,θ, and tare continuously updated using the point cloud, without relying on a skeletal tracker. As an initial guess, we used the latest estimated parameters. III. EXPERIMENTS Experimental Setup: The experimental setup comprised three calibrated RGB-D ZED 2i cameras arranged with converging fields of view. To assess the model’s accuracy in both online and offline conditions, we used OptiTrack, a motion capture system based on 41 markers, as a ground truth (GT) reference. The skeleton estimated from the motion capture system served as the ground truth for the pose estimation, taking advantage of the optical system’s submillimeter tracking accuracy. We first captured synchronised point clouds of a subject in an A-pose using three cameras. To isolate the human body, we applied the Yolo-seg model [3] at the pixel level, TABLE I REGION-LEVEL MPJPE COMPARISON BETWEEN ZED SKELETON TRACKER AND SMPL AGAINST GROUND TRUTH. Region Slow Sequence Fast Sequence ZED ST↓SMPL ↓ZED ST↓SMPL ↓ Torso 0.06458 0.06629 0.07787 0.06763 Head 0.18376 0.10977 0.24019 0.12544 Legs 0.13579 0.13631 0.21021 0.16726 Arms 0.17396 0.10145 0.25575 0.20043 filtering the point clouds to retain only points corresponding to the subject. We then estimated the SMPL shape parameters βusing the segmented point cloud. To obtain θand t, we used the joint orientations and global position provided by the ZED SDK’s skeleton tracker. Since ZED and SMPL share a similar kinematic chain and joint definitions, we directly mapped the ZED skeleton to the relative SMPL parameters. For skeleton trackers with different joint structures (e.g., OpenPose or MediaPipe), one should estimate geometric transformations to align their output with SMPL, ensuring consistent joint correspondence. Pose estimation error: To evaluate the accuracy of SMPL in modelling the human motion, we recorded two motion sequences: one involving slow, smooth movements (387 frames at 20 fps), and another with rapid, high-acceleration motions (158 frames at 20 fps). For both sequences, we computed the procrustes aligned mean per joint position error (PA-MPJPE) between the ZED skeleton and the SMPL model against the GT. As shown in Table I, the SMPL model generally improves joint localisation, with only a minor increase in the torso error in the slow sequence, likely due to the sligthly different spine keypoints definition. The overall improvement stems from SMPL’s anatomical and kinematic constraints, absent in standard keypoint-based trackers. Additionally, we explored the offline refinement strategy for low-frame-rate scenarios. Starting from the initial ZED pose and estimated β, we refined only θby minimising Chamfer distance, improving reconstruction accuracy (loss reduced from 10.40 ±1.82 to 9.58 ±1.72 m2over 50 frames). IV. CONCLUSIONS We introduced smpl_ros, a ROS 2 toolbox for using SMPL models in robotics. SMPL outperforms classical skeleton trackers in real-time joint estimation while offering richer, more robust representations. As we still observe non-negligible errors in joint position estimation, future work will focus on increasing accuracy by refining joint mapping, including biomechanical constraints and incorporating additional sensor data, like tactile information. REFERENCES [1] M. Loper, N. Mahmood, J. Romero, G. Pons-Moll, and M. J. Black, “SMPL: a skinned multi-person linear model,” ACM Trans. Graph., vol. 34, no. 6, pp. 248:1–248:16, 2015. [2] N. Aharony, A. Meshurer, M. Krakovski, Y. Parmet, I. Melzer, and Y. Edan, “Comparative Analysis of Cameras and Software Tools for Skeleton Tracking,” IEEE Sensors Journal, vol. 24, no. 20, pp. 32 302– 32 312, Oct. 2024. [3] G. Jocher, A. Chaurasia, and J. Qiu, “Ultralytics yolov8,” 2023. 250