1. 基础环境构建
1.1 机器人、测头、转台、墙壁等环境构建
目前来看,直接在URDF模型中构建即可,墙壁等可以额外在代码中添加,可以考虑参考https://blog.csdn.net/zhangpan333/article/details/130877121。具体推导过程,可以参考下面的推导文件。
坐标系构建时,Flang到PowerScan先手动计算出旋转矩阵,再根据代码计算出rpy角度,放入urdf(注意matlab算的需取反)。
1.1.1 机器人手眼标定
可以直接考虑使用PowerScan中自带的功能,获取结果,也可用贾总提供代码的结果。
模型获取:直接将原始模型导入3DMAX,导出dae,即可获取模型,单位可保证一致;为碰撞,需导出STL模型,需确认单位(暂时没太弄明白,需要试几次,修改3DMAX的单位),两个坐标系不一定一致,需注意(暂时没搞特别清楚)。
1.1.2 转台标定(目前尚未做)
1.1.3 导轨标定(目前尚未做)
1.1.4 测头放置
(1)在3dsmax打开stp文件,放置到和原来的测头(打开dae)相同的位姿和坐标系
(2)导出
1.1.5 其余物体,确保不碰撞即可
1.2 CAD模型
1.2.1 获取标准STL模型
在ug中打开原有stp文件,直接导出为STL模型(注意不要使用geomagic进行转换,否则质量会较差,易出现背面三角面片等问题)
1.2.2 将标准STL模型与实际物体对齐(转移到实际机器人基坐标系下)
- 移动机器人将powerscan测头带到指定位置,进行三维测量,并记录下当前左相机相对于基坐标系下的旋转变换矩阵 L e f t c a m B a s e T {}_{Leftcam}^{Base}T LeftcamBaseT;(目前需要在ROS平台下进行运行,点击指定按钮即可)
- 基于变换矩阵将测量点云转换到Base坐标系下;(注意坐标的单位是m,,因此需乘以1000,在vs平台下已实现)
- 将测量点云与原始SLT模型导入geomagic,并将数模转成点云,然后固定测量点云,进行点云对齐,导出数模点云的变换矩阵
- 再次导入原始STL模型,加载数模点云的变换矩阵,即可获取实际机器人基坐标系下的STL模型宽度,导出命名为“model_mm.stl”
1.2.3 将STL模型单位转换成m
直接将模型放在指定模型文件夹里,然后点击坐标转换按钮,即可获取以m为单位的模型。
1.2.4 去除背面点云
直接删除背面点云,保存为model.stl,upsurface.stl.
1.3 测量区域模型
- 首先在ug中画出来,导出step
- 转到3dmax调整位置,导出stl
- geomagic确认并删减