用2D相机进行三维车门抓取(位置&姿态)

        在一些汽车企业经常会有纠偏引导项目,常规的2D方法只能得到图像中的x,y坐标,而采用三维相机成本高,且在x,y的精度上还不如RGB相机,所以再此分享一种2D相机获取物体三维姿态的方法。

1.该方法需要获取相机的内参和畸变参数生成内参文件,放置一块标定板至车门上,采集一张图开始进行相机标定; 

CalTabDescrName := 'caltab_200mm.descr'
*镜头焦距,  畸变系数, x靶面大小,y靶面大小, 图像中主点的列坐标,图像中主要点的行坐标,图像宽,图像高
gen_cam_par_area_scan_division (0.0160522, -402.331, 9.30632e-006, 9.3e-006, 640/2, 512/2, 640, 512, CamParam)
caltab_points (CalTabDescrName, X, Y, Z)
find_caltab (Image, Caltab, CalTabDescrName, 3, 112, 5)
find_marks_and_pose (Image, Caltab, CalTabDescrName, CamParam, 128, 10, 18, 0.9, 15, 100, RCoord, CCoord, Pose)
gen_cross_contour_xld (Cross, RCoord, CCoord, 6, 0.785398)

2.绘制车门的ROI轮廓区域,制作轮廓模板,用于轮廓模板的匹配;

reduce_domain (Image, ROI, ImageReduced)
dev_clear_window ()
dev_display (ImageReduced)

* 设置标定板的高度,一般为3mm
set_origin_pose (Pose, 0, 0, 0.03, PoseNewOrigin)
* 
create_planar_calib_deformable_model (ImageReduced, CamParam, PoseNewOrigin, 'auto', -0.1, 0.2, 'auto', 0.6, 1, 'auto', 0.6, 1, 'auto', 'none', 'use_polarity', 'auto', 'auto', [], [], ModelID)

*设置可变形模型参数
set_deformable_model_param (ModelID, 'get_deformable_model_contours_coord_system', 'world')
*返回可变形模型轮廓
get_deformable_model_contours (ModelContours, ModelID, 1)
count_obj (ModelContours, NumberContour)

3.进行模板匹配;

输入目标图像和模板进去,得到目标图的匹配姿态和得分等信息;

*Pose是匹配得到的匹配姿态,Score是匹配得分
find_planar_calib_deformable_model (ImageReducedSearch, ModelID, -0.1, 0.2, 0.6, 1.0, 0.6, 1.0, 0.7, 1, 1, 0, 0.7, [], [], Pose, CovPose, Score)

4.上几张匹配效果图; 

 

下一讲将介绍车门定位引导的手眼标定方法; 

 

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值