get_calib_data_observ_points 名称get_calib_data_observ_points —从校准数据模型中获取基于点的观测数据。签名get_calib_data_observ_points(:::CalibDataID,CameraIdx,CalibObjIdx,CalibObjPoseIdx:行,列,索引,姿势)描述操作员get_calib_data_observ_points从校准数据模型CalibDataID读取基于点的观测数据。该操作员回读由先前
set_origin_pose 名称set_origin_pose —转换3D姿势的原点。签名set_origin_pose(::PoseIn,DX,DY,DZ:PoseNewOrigin)描述set_origin_pose 用DX, DY和DZ给定的向量转换3D姿势PoseIn的原点,并在PoseNewOrigin中返回结果。注意,相对于姿势本身的局部坐标系执行平移。例如,如果 PoseIn在相机坐标中描述对象的姿态,则 PoseNe
image_points_to_world_plane名称image_points_to_world_plane —将图像点转换为世界坐标系的平面z = 0。签名image_points_to_world_plane(:CameraParam,WorldPose,行,列数,刻度:X,ÿ)描述运算符image_points_to_world_plane在世界坐标系中将在Rows和Cols中给出的图像点转换为平面z = 0,并以X和 Y返回其3D坐标。通过传递相对于WorldPose中的相机坐标系的
get_calib_data名称get_calib_data —查询在校准数据模型中存储或计算的数据。签名get_calib_data(::CalibDataID,ItemType,ItemIdx,DataName:DataValue)描述使用运算符get_calib_data,可以查询校准数据模型CalibDataID的数据。请注意,在下文中,所有与“姿势”相关的数据都是相对于模型参考相机的坐标系给出的。可以分别通过set_calib_data或get_calib_data设置或查询
find_calib_object名称find_calib_object —查找HALCON校准板,并在校准数据模型中设置提取的点和轮廓。签名find_calib_object(图片:CalibDataID,CameraIdx,CalibObjIdx,CalibObjPoseIdx,GenParamName,GenParamValue:)描述find_calib_object在图像中从校准数据模型 CalibDataID中搜索与索引为CalibObjIdx的校准对象的描述相对应的HA
继续上篇《勇哥的视觉实验:眼在手上(eye in hand)的标定实验。相机挂在x,y平台上,全部九点标定特征在相机视野内可见》这次勇哥换用Epson四轴scara机器人来做实验。如下图所示,相机挂在第3轴上面,因此这种眼在手上的工作模式分为两种情况:(1) 相机移动,不旋转(2) 相机移动并且旋转本篇研究一下第(1)种情况。(图1)我们开始九点标定。请看上图,这里勇哥还是用笔尖做为标定特征点。要说明的是,在相机视野范围内看不到我们的笔尖。我们计划只做四个点的标定,下图是走到其中一个点时相机看到
我们知道图像坐标和机械坐标是相互独立的,需要通过移动9个点(常说的9点标定)的方式建立二者的关系,从而达到通过像素点的坐标关系得到机械坐标。相机的视野中心对准目标物中心这会延申到吸嘴是否准确的抓取到目标,如何达到这一操作见下(假设已经通过9点标定建立关系后,准确说方法1根本就没用到9点标定的关系式,它也不需要进行9点标定)方法1:如下图所示:假设大黑框里面的内容代表相机视野里的东西,绿色十字是视野的中心点,黑叉叉代表目标物。现在需要操作机械轴将视野沿蓝色箭头指示的方向移动使视野中心点落到黑叉叉中
首先使用拍照工具拍摄一些JPG格式的标定图片。然后放到特定的文件夹下,我这里是image文件夹。在标定前,首先读取该文件夹下的图片文件,获取这些图片文件的文件名,以备将来opencv读取图片使用。这样做的好处是不用特意给拍摄的图片按照特定格式重新命名,大大减小了工作量。标定时,程序会检查这些图片是否能正常提取格点,如果不能,程序自动舍去,在标定时该幅图片不参与计算。标定完成后,程序会把标定结果显示到控制图上,并把标定的更详细结果写入的txt文件。用到的opencv版本的2.4.10,vs版本是2
本文解决的问题: 机械手搭载双目相机,手眼标定。 本文有细致的推导过程,非常全面。 什么是手眼标定 确定像素坐标系和空间机械手坐标系的坐标转化关系; 为什么会存在这个? 举一个生活中常见的例子——用手移动物体: 第一步:眼睛观察到三维世界,并将其转换到视网膜平面(三维空间转换到二维平面)传送信息给大脑; 第二步:大脑想要移动某个物体,假设想要将物体从A点移动B
halcon的标定助手完成标定后,是可以自动生成一些代码。它是很好的参考。////////////////////标定数据Tuple////////////////CameraParameters := ['area_scan_division',0.00928003,-1009.07,2.50105e-06,2.5e-06,1236.62,1005.87,2592,1944]
CameraPose := [0.00527608,-0.0