资讯

玩转PiPER|挥手,用手势“隔空操控”机械臂

转载 2025-09-08 09:03 AgileX Robotics
松灵机器人(东莞)有限公司
前言

在前几期中,我们实现了PIPER机械臂的点位控制轨迹录制视觉识别陀螺仪控制。本期实现的是:通过深度相机(如奥比中光Gemini)检测手部关键点(指关节、掌心),将手部在三维空间中的姿态与位置映射到PIPER机械臂末端执行器上,实现低成本“手势驱动机械臂运动”。

这项技术不仅仅是“识别手势”,更是实现了从人体动作到机器人末端的坐标映射与运动同步。

更重要的是——所有代码已开源,欢迎动手实践!

开源链接:https://github.com/agilexrobotics/Agilex-College

功能演示一、硬件设备

• 奥比中光 Petrel(带对齐的深度图像与RGB图像:640*400@30fps)

• (可选):intel realsense D435(带对齐的深度图像与RGB图像:640*480@30fps)

• (可选):奥比中光 gemini(带对齐的深度图像与RGB图像:640*400@60fps)

• NVIDIA 3050laptop (带3050移动端的笔记本)

• AgileX robotics PiPer机械臂

二、软件环境

• Ubuntu 20.04

• ROS noetic

三、依赖

• 安装依赖的ROS功能包

sudoapt install -y ros-noetic-sensor-msgs ros-noetic-image-transport ros-noetic-cv-bridge ros-noetic-vision-msgs ros-noetic-image-geometry ros-noetic-pcl-conversions ros-noetic-pcl-ros ros-noetic-message-filtersgit cloen https://github.com/agilexrobotics/Agilex-College.gitcdAgilex-College/piper/cp-r piper_kinematics/ your_ws/src/catkin_make

• PIPER机械臂驱动部署请参考:https://github.com/agilexrobotics/piper_sdk/blob/1_0_0_beta/README(ZH).MD

• PIPER机械臂ROS控制节点部署参考:https://github.com/agilexrobotics/piper_ros/blob/noetic/README.MD

• 克隆并编译此功能包

cdyour_ws/srcgit cloen https://github.com/agilexrobotics/Agilex-College.gitcdAgilex-College/piper/cp-r handPoseTeleoperation/ your_ws/src/cdyour_ws/catkin_makesourcedevel/setup.bash四、启动相机ROS节点

• 需要相机能自动对齐深度图像与彩色图像(D2C),此项目暂时不支持没有自动对齐功能的相机,对齐后的深度图像与RGB图像长宽一致。此项目使用奥比中光 Genimi深度相机作为功能测试,具体配置运行示例以及设置请参考奥比中光相机驱动仓库

• 奥比中光 Genimi使用下面的命令启动,需要先在gemini.launch文件中配置深度对齐功能

sourcedevel/setup.bashroslaunch roslaunch astra_camera gemini.launch

• realsense D435使用下面的命令启动

roslaunch realsense2_camera rs_aligned_depth.launch五、定义Home点1.定义Piper的home点

• 将连接到机械臂的can模块插入PC,查找机械臂CAN总线,并启动机械臂驱动节点

# 寻找机械臂的CAN端口./find_all_can_port.sh# 连接到机械臂的CAN端口./can_activate.shroslaunch piper start_single_piper.launch

• 使用piper_kinematics中的交互式标记interactive_pose_marker工具,通过拖拽机械臂到达期望的home点

• 启动piper_kinematics中的逆解节点,下达对Piper的控制指令到控制节点

rosrun piper_kinematics piper_ik_node rosrun piper_kinematics interactive_pose_marker.py2.定义手部姿态的home点

• 启动手部姿态检测节点

rosrun handpose_det handpose_det_new_ik.py

• 启动rviz实时观察图像检测情况,其中MarkerArray中的红色圆点为指关节对应点,绿色圆点为手掌形心

• 保持握拳5秒姿势不动,五秒结束后会定义当前手部所处的姿态为手部坐标系的原点,随后张开五指开始映射手部相在手部坐标系的原点相对的姿态。(选取手部坐标系的原点时候,尽量选择图像中心的部位,且不宜距离相机过远导致手部识别不稳定,也不宜过近导致因相机视野受限导致的遥操作空间过小)

• 调整大拇指与食指的距离控制夹爪开合


结语

最后,不知道大家学‘废’了吗,控制机械臂不需要复杂的编程,脱离手机,直接通过手势识别控制机械臂,实现“手在哪,臂就到哪”的自然交互。下一期技术生态教程持续更新中,敬请期待!

0 0

网友评论

取消