本教程主要介绍RM机械臂与Realsense D435相机用Python实现眼在手外标定的使用教程,本文中Python实现的代码已上传百度网盘,仅供参考。
链接:https://pan.baidu.com/s/1ITyItVkbbcJDOsxeEIaWaw?pwd=pno9 提取码:pno9
1 开始前准备
1.1 软件
python 3.8及以上
numpy 1.24.2
scipy 1.10.1
pyrealsense2 2.53.1.4623
1.2 硬件准备
一个标定板 棋格盘
机械臂
D435相机
1.3 相机/机械臂连接
将标定板通过支架与机械臂末端组合起来,如下图所示:
2 采集数据
步骤一:运行采集脚本
进入data_collection_d435_win文件夹,修改main.py文件里cam0_path变量为想要保存标定板图片的文件夹路径。
运行python文件,打开D435相机
python main.py
步骤二:挪动机械臂末端
保持相机和机械臂基座不动,挪动机械臂末端,使标定板出现在屏幕上,选择清晰 完整的图片 点击 键盘 "s" 获取当前界面里的标定板图片和当前机械臂末端的位姿。
采集十几组图片以及数据,图片保存到之前设置的标定板图片保存路径,位姿保存在相同路径下的poses.txt文件中。
3 计算相机坐标系到机械臂基座坐标系的齐次变换矩阵(旋转矩阵和平移向量)
进入到文件夹out_of_hand_homogeneous_matrix中
将python文件 main.py的数据源设置为上面采集数据时设置的路径
将python文件 main.py的 角点个数和棋盘格间距设置为实际使用的标定板
例如当前标定板的格式为12*9,每个间隔距离为0.03米
则修改main.py 的XX、YY和L变量为 11 8 0.03
运行python文件计算相机坐标系到机械臂末端坐标系的齐次变换矩阵
python main.py
输出旋转矩阵和平移向量