手势识别

节点参数说明

参数名 描述 类型 默认值 说明
input_topic 订阅主题 String camera/image_raw 输入图像主题;可改为压缩图像主题(例如 /camera_jpeg)
input_encoding 输入图像编码 String bgr8 仅支持 bgr8 或 jpeg;据此自动选择订阅消息类型(sensor_msgs/Image 或 sensor_msgs/CompressedImage)
output_fps 发布帧率 int 6 定时器发布频率(Hz),影响图像/消息的发送速率
output_quality JPEG 压缩质量 int 60 范围 [0~100];仅对发布的压缩图像生效(值越大越清晰但更大)
output_image_close 关闭图像发布 bool false false:发布处理后图像到 /{name}/image_jpeg;true:仅发布文字消息

数字手势识别

节点基于 MediaPipe Hands 动态检测与识别中文数字手势(1~10),并以“稀疏标注”方式可视化手部关键点与连接线,显示更清爽。

内置节点 gesture_recognition_digits 订阅 /camera_raw,识别并可视化后发布图像与消息结果。特殊手势有优先级:10(拳头,全弯曲)、6(拇指+小指,shaka)、7(拇指与食/中指捏合,环/小指弯曲)、8(仅拇指+食指竖起,手枪)、9(食指钩形,其余弯曲);若不匹配再按伸直手指数计数 1~5。

启动命令

shell
ros2 run pycodevision gesture_recognition_digits

该节点默认绑定可以直接通过平台节点管理菜单启动。

参数使用方法

shell
# 订阅压缩图像输入(来自 camera_jpeg),并降低输出帧率、画质 ros2 run pycodevision gesture_recognition_digits --ros-args \ -p input_topic:=/camera_jpeg \ -p input_encoding:=jpeg \ -p output_fps:=5 \ -p output_quality:=50 # 仅发布文字消息(不发布处理后图像) ros2 run pycodevision gesture_recognition_digits --ros-args -p output_image_close:=true

视频查看

点击“数字手势识别”节点,进入该节点通信页面。

订阅图像输出示意

点击发布主题“/gesture_recognition_digits/image_jpeg”中的“订阅”按钮,类型默认选择“图片”,弹出视频显示窗口;
或点击发布主题“/gesture_recognition_digits/message”选择“文本”,即可查看发布消息。

消息输出示意

食指方向识别(四方向)

节点基于 MediaPipe Hands 动态检测手部关键点:当食指被判定为“伸直”且方向向量足够稳定时,输出指向方向标签:上 / 下 / 左 / 右。

内置节点 gesture_recognition_index_direction 订阅 /camera_raw(或按参数指定的输入主题),识别并可视化后发布图像与消息结果。

启动命令

shell
ros2 run pycodevision gesture_recognition_index_direction

该节点默认绑定可以直接通过平台节点管理菜单启动。

参数使用方法

shell
# 订阅压缩图像输入(来自 camera_jpeg),并降低输出帧率、画质 ros2 run pycodevision gesture_recognition_index_direction --ros-args \ -p input_topic:=/camera_jpeg \ -p input_encoding:=jpeg \ -p output_fps:=5 \ -p output_quality:=50 # 仅发布文字消息(不发布处理后图像) ros2 run pycodevision gesture_recognition_index_direction --ros-args -p output_image_close:=true

视频查看

点击“食指方向识别(四方向)”节点,进入该节点通信页面。

订阅图像输出示意

点击发布主题“/gesture_recognition_index_direction/image_jpeg”中的“订阅”按钮,类型默认选择“图片”,弹出视频显示窗口;
或点击发布主题“/gesture_recognition_index_direction/message”选择“文本”,即可查看发布消息(如 RIGHT、UP 等)。

消息输出示意

猜拳识别

节点基于 MediaPipe Hands 动态检测与识别手势,输出三类:“rock 石头 / scissors 剪刀 / paper 布”,并以关键点与手部骨架的“稀疏标注”方式可视化。

内置节点 gesture_recognition_rps 订阅 /camera_raw,识别并可视化后发布图像与消息结果(消息包含英文 value 与中文 message)。

启动命令

shell
ros2 run pycodevision gesture_recognition_rps

该节点默认绑定可以直接通过平台节点管理菜单启动。

参数使用方法

shell
# 订阅压缩图像输入(来自 camera_jpeg),并降低输出帧率、画质 ros2 run pycodevision gesture_recognition_rps --ros-args \ -p input_topic:=/camera_jpeg \ -p input_encoding:=jpeg \ -p output_fps:=5 \ -p output_quality:=50 # 仅发布文字消息(不发布处理后图像) ros2 run pycodevision gesture_recognition_rps --ros-args -p output_image_close:=true

视频查看

点击“猜拳识别”节点,进入该节点通信页面。

订阅图像输出示意

点击发布主题“/gesture_recognition_rps/image_jpeg”中的“订阅”按钮,类型默认选择“图片”,弹出视频显示窗口;
或点击发布主题“/gesture_recognition_rps/message”选择“文本”,即可查看发布消息。

消息输出示意