目录
摘要
送餐机器人的出现可以为同属服务行业的餐饮业减轻大量用人成本,推动传 统餐厅向智慧餐厅的转变升级。
- ROS平台作为媒介
- 利用摄像头和六自由度机械臂
- 对食物的自主 抓取
关键词
- ROS;
- 六自由度机械臂;
- 深度学习摄像头;
- 手眼标定
1 主要任务
本文主要研究如何利用搭载于送餐机器人上的六 自由度机械臂与摄像头,实现机器人自主抓取的功能,从而实现机器人的高度自动化与智能化。
利用 ORB_SLAM 算法可以高效地建立三维空间模型,并且可以依据建模
结果获得某点的空间坐标值,传达至机器人主机进行后续处理。
完成抓取动作过程如下。
- 使用 usb 与机械臂 lsc 主控板进行连接;
- 摄像头建模后将采集空间坐标参数发送到机器人主机;
- 主机转换为 robot_arm/cmdstring 格式的 topic;
- 由 robot_arm 节点负责将这个 topic 内容经由 usb hid 协议发送给机械臂主控板,完成抓取的操作。
2 六自由度机械臂的二次开发
2.1 用户向控制板发送数据
CMD_SERVO_MOVE参数指令
参数 | 意义 |
---|---|
1 | 要转动舵机的数量 |
2 | 舵机转动时间的十六进制下的低两位 |
3 | 舵机转动时间的十六进制下的高两位 |
4 | 转动舵机的 ID 号 |
5 | 舵机转动角度位置的十六进制下的低两位 |
6 | 舵机转动角度位置的十六进制下的高两位 |
2.2 控制板向用户返回数据
参数 | 意义 |
---|---|
1 | 运行动作组的编号 |
2 | 动作组准备执行次数的十六进制下的低两位 |
3 | 动作组准备执行次数的十六进制下的高两位 |
3 基于 Tsai-Lenz 算法的自主抓取设计
手眼标定法根据摄像头固定的位置可分为两种类型。
- 摄像头固定在机械臂之上,称为眼在手上(eye-in-hand);
- 摄像头固定在机械臂之外,称为眼在手外 (eye-to-hand);
本文采用了 eye-to-hand 方式。
过程如下。
(1)物体识别:在图像中检测到物体。
(2)位姿估计:得到物体在相机坐标系下的位置和姿态。
(3)相机拟定:对物体在相机坐标系下的坐标进行 转换,得到其在机器人坐标系的坐标。
用 H \mathbf{H} H 表示坐标变换 ( H \mathbf{H} H 指 homogeneous matrices
齐次变换矩阵)。
已知多组机械臂在机器人坐标系中的坐标 H g \mathbf{H}_{g} Hg 、标定板在相机坐标系中的坐标 H c \mathbf{H}_{c} Hc 。 求解机械臂和相机之间的位姿关系 H g c \mathbf{H}_{gc} Hgc 。
A = H g i j , B = H c i j , X = H g c A=\mathbf{H}_{gij}, B=\mathbf{H}_{cij}, X=\mathbf{H}_{gc} A=Hgij,B=Hcij,X=Hgc
A X = X B AX=XB AX=XB
根据 Tsai-Lenz 算法即可求解 X X X,其核心等式如下。
S k e w ( P g i j + P c i j ) P ′ Skew(P_{gij}+P_{cij})P^{\prime} Skew(Pgij+Pcij)P′
c g = P c i j − P g i j c_{g} = P_{cij}-P_{gij} cg=Pcij−Pgij