rzv_pose_estimation
A ROS 2 package for performing hand landmark estimation on the Renesas RZ/V2H platform. This package combines hand detection with landmark estimation to provide detailed hand pose analysis.
Overview
This package provides ROS 2 nodes for:
Hand detection and landmark estimation.
Support for multiple landmark estimation models.
Real-time camera-based estimation.
Static image-based estimation.
Smooth landmark tracking using EMA filtering.
Features
Two-stage pipeline:
Hand detection using YOLOX models.
Landmark estimation using various models.
Support for multiple landmark models:
MediaPipe Hand Landmark model
HRNetV2 Hand Landmark model
RTMPose Hand model
EMA-based landmark smoothing for temporal stability.
Integration with Foxglove Studio for visualization.
Multi-threaded processing support.
Node Parameters
Parameter Name |
Data Type |
Default |
Description |
|---|---|---|---|
|
string |
“” |
Path to the landmark model file. |
|
string |
“” |
Path to the hand detection model file. |
|
int |
1 |
Size of the image processing queue. |
|
float |
0.5 |
Threshold for detection confidence. |
|
int |
1 |
Number of processing threads. |
|
string |
“hrnetv2_hand_landmark” |
Type of landmark model ( |
|
bool |
true |
Whether to enable landmark smoothing. |
|
double |
0.7 |
Smoothing factor for EMA (0-1, higher = more smoothing). |
Topics
Subscriptions
Topic |
Type |
Description |
|---|---|---|
|
|
Input images for pose estimation. |
Publishers
Topic |
Type |
Description |
|---|---|---|
|
|
Hand detection results as pose arrays. |
|
|
Hand landmark results as pose arrays. |
Launch Files
# Hand landmark estimation using camera input
ros2 launch rzv_pose_estimation camera_hand_landmark_estimation.launch.py
# Hand landmark estimation on static image
ros2 launch rzv_pose_estimation static_hand_landmark_estimation.launch.py
Model Performance Comparison
Model Type |
Accuracy |
Speed |
Memory |
Notes |
|---|---|---|---|---|
|
High |
Medium |
Medium |
Best balance of accuracy and speed. |
|
Medium-High |
Fast |
Low |
Good for resource-constrained systems. |
|
Medium |
Fast |
Low |
Provides additional hand orientation data. |
Usage Examples
# Run with custom model type
ros2 run rzv_pose_estimation hand_landmark_estimation \
--ros-args -p landmark_model_type:=mediapipe_hand_landmark
# Run with custom model paths
ros2 run rzv_pose_estimation hand_landmark_estimation \
--ros-args -p landmark_model_path:=/path/to/landmark/model \
-p hand_detect_model_path:=/path/to/detection/model
# Run with modified smoothing
ros2 run rzv_pose_estimation hand_landmark_estimation \
--ros-args -p smoothing_enabled:=false -p smoothing_factor:=0.5
# Launch with custom camera device
ros2 launch rzv_pose_estimation camera_hand_landmark_estimation.launch.py \
video_device:=/dev/video1
Dependencies
ROS 2
OpenCV
rzv_modeland related AI model packagesimage_publisher(for static images)v4l2_camera(for camera input)foxglove_keypoint_publisher(for visualization)
License
This package is licensed under Apache 2.0.