2021-02-21 20:10:11
这篇是对halcon例程pick_and_place_with_2d_matching_stationary_cam.hdev的学习笔记。它讲得是利用halcon做了手眼标定后,怎么应用标定结果做机器人抓取物料。一般学习了halcon的手眼标定例程后,第一个想到的问题估计就是想到应用的问题。是不是想屏幕上指定一个像素点,然后转为机器人的坐标让它走到这个点上去?以前九点标定是用affine_tran...
2021-02-20 17:30:06
这份3D视觉指南pdf,我花了几十元用wps的vip收费全文翻译功能整出了个中文版来。翻译结果比较惨,特别是代码部分也被傻傻的翻译了。其它还有些图文混排的部分也乱套了。数学公式有些也被“翻译”了。不过纯文字阅读的部分还是可以勉强读一下,但是你也得中英文对照着一起看才行。话说许多halcon标定的图文资料都是从这份指南里copy出来的,还是很有参考价值。就弄个收费下载,收回点翻译费用吧。下载资源同时...
2021-02-19 23:05:03
勇哥碰到下面这个错误信息:标定对象姿势不够:对于手眼标定,至少需要三个标定对象姿势Not enough calibration object poses: For the hand-eye-calibration
at least three calibration object poses are necessary这个问题的原因是在标定的时候标定板没有倾斜和变换位置。正确的摆放应该是下面这...
2020-12-22 22:46:52
get_calib_data_observ_pose名称get_calib_data_observ_pose —从校准数据模型中获取观察到的校准对象的姿势。签名get_calib_data_observ_pose(::CalibDataID,CameraIdx,CalibObjIdx,CalibObjPoseIdx:ObjInCameraPose)描述操作员get_calib_data_obser...
2020-12-22 22:35:36
create_pose名称create_pose —创建3D姿势。签名create_pose(::TransX,TransY,TransZ,RotX,RotY,RotZ,OrderOfTransform,OrderOfRotation,ViewOfTransform:Pose)描述create_pose创建3D姿势Pose。姿势描述了刚性3D变换,即由任意平移和旋转组成的变换,具有6个参数: Tr...
2020-12-22 22:31:57
read_pose名称read_pose —从文本文件中读取3D姿势。签名read_pose(::PoseFile:Pose)描述read_pose用于从名称为PoseFile的文本文件中读取3D姿势Pose。3D姿势的默认HALCON文件扩展名是'dat'。姿势描述了一个刚性3D变换,即由任意平移和旋转组成的变换,具有6个参数,三个用于平移,三个用于旋转。使用第七个参数,可以指示...
2020-12-22 21:39:46
create_calib_data名称create_calib_data —创建一个HALCON校准数据模型。签名create_calib_data(::CalibSetup,NumCameras,NumCalibObjects:CalibDataID)描述操作员create_calib_data创建一个通用的校准数据模型,该模型存储相机校准设置的说明,校准过程的设置,校准数据,以及相机校准或手...
2020-12-09 20:07:51
引言:C#勇哥注:所谓的3d相机标定并不是指的3d相机的标定,而是指的是3d空间做相机的标定,
这个相机仍然是2D相机。
halcon的这套标定方法,同时可以应对测量、手眼标定。
并且由于是在3d空间做标定,因此你在做测量的时候相机和拍摄平面可以不是完全垂直,
或者物料可以任意方向倾斜(当然你的相机的景深要能做得到)。
如果你是做机器人手眼标定,这套标定方法无论是hand to eye,...
2020-12-06 22:55:51
引言:C#勇哥注:所谓的3d相机标定并不是指的3d相机的标定,而是指的是3d空间做相机的标定,这个相机仍然是2D相机。
halcon的这套标定方法,同时可以应对测量、手眼标定。
并且由于是在3d空间做标定,因此你在做测量的时候相机和拍摄平面可以不是完全垂直,
或者物料可以任意方向倾斜(当然你的相机的景深要能做得到)。
如果你是做机器人手眼标定,这套标定方法无论是hand to eye,还是...
2020-12-06 20:10:23
引言:C#勇哥注:所谓的3d相机标定并不是指的3d相机的标定,而是指的是3d空间做相机的标定,这个相机仍然是2D相机。
halcon的这套标定方法,同时可以应对测量、手眼标定。
并且由于是在3d空间做标定,因此你在做测量的时候相机和拍摄平面可以不是完全垂直,
或者物料可以任意方向倾斜(当然你的相机的景深要能做得到)。
如果你是做机器人手眼标定,这套标定方法无论是hand to eye,还是...
2020-12-05 22:17:50
引言:C#勇哥注:所谓的3d相机标定并不是指的3d相机的标定,而是指的是3d空间做相机的标定,这个相机仍然是2D相机。
halcon的这套标定方法,同时可以应对测量、手眼标定。
并且由于是在3d空间做标定,因此你在做测量的时候相机和拍摄平面可以不是完全垂直,
或者物料可以任意方向倾斜(当然你的相机的景深要能做得到)。
如果你是做机器人手眼标定,这套标定方法无论是hand to eye,还是...
2020-12-05 20:52:20
引言:勇哥注:所谓的3d相机标定并不是指的3d相机的标定,而是指的是3d空间做相机的标定,这个相机仍然是2D相机。
halcon的这套标定方法,同时可以应对测量、手眼标定。并且由于是在3d空间做标定,
因此你在做测量的时候相机和拍摄平面可以不是完全垂直,
或者物料可以任意方向倾斜(当然你的相机的景深要能做得到)。
如果你是做机器人手眼标定,这套标定方法无论是hand to eye,还是ey...
2020-12-02 17:22:47
gen_image_to_world_plane_map 名称gen_image_to_world_plane_map —生成一个投影图,该投影图描述图像平面与世界坐标系的平面z = 0之间的映射。签名gen_image_to_world_plane_map(:地图:CameraParam,WorldPose,WidthIn,HeightIn,WidthMapped,HeightMapped,缩放...
2020-11-30 20:34:44
outline_to_world_plane_xld 将XLD轮廓转换为世界坐标系的平面z = 0。签名contour_to_world_plane_xld(轮廓:ContoursTrans:CameraParam,WorldPose,刻度:)描述操作者contour_to_world_plane_xld变换轮廓在给定的点轮廓到在世界上平面z = 0坐标系和在返回该3D轮廓点ContoursTra...
2020-11-30 07:24:12
get_calib_data_observ_points 名称get_calib_data_observ_points —从校准数据模型中获取基于点的观测数据。签名get_calib_data_observ_points(:::CalibDataID,CameraIdx,CalibObjIdx,CalibObjPoseIdx:行,列,索引,姿势)描述操作员get_calib_data_observ...
2020-11-30 07:23:25
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在相...
2020-11-30 07:22:22
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中给出的图像...
2020-11-30 07:21:19
get_calib_data名称get_calib_data —查询在校准数据模型中存储或计算的数据。签名get_calib_data(::CalibDataID,ItemType,ItemIdx,DataName:DataValue)描述使用运算符get_calib_data,可以查询校准数据模型CalibDataID的数据。请注意,在下文中,所有与“姿势”相关的数据都是相对于模型参考相机的坐标...
2020-11-30 07:19:50
find_calib_object名称find_calib_object —查找HALCON校准板,并在校准数据模型中设置提取的点和轮廓。签名find_calib_object(图片:CalibDataID,CameraIdx,CalibObjIdx,CalibObjPoseIdx,GenParamName,GenParamValue:)描述find_calib_object在图像中从校准数据模...
2020-11-28 23:32:23
处理要求:根据客户给的宽度,计算出电路宽度太窄的为NG原图:处理程序:read_image (Image, '1.png')rgb1_to_gray(Image, GrayImage)threshold(GrayImage, Region, 130, 255)connection (Region, ConnectedRegions)select_shape(ConnectedReg...
2020-11-28 23:31:05
halcon相机标定完成后,世界坐标系原点在标定板的中间,如果要自定义坐标系原点该如何操作如图:方法1使用仿射变换*pose_to_hom_mat3d (FinalPose, HomMat3D)*hom_mat3d_translate_local (HomMat3D, dx, dy, 0, HomMat3DTranslate)*hom_mat3d_rotate_local (HomMat3DTra...
2020-11-28 15:41:44
(一)halcon标定步骤1、创建标定数据模型使用算子 create_calib_data( : : CalibSetup, NumCameras, NumCalibObjects : CalibDataID)CalibSetup:创建的内容NumCameras:相机个数NumCalibObjects :标定项目数CalibDataID:标定句柄例如:create_calib_data (‘cal...
2020-11-26 23:23:41
名称calibrate_hand_eye —执行手眼校准。原型calibrate_hand_eye( : : CalibDataID : Errors)描述操作员根据校准数据模型确定机器人(“手”)相对于相机或3D传感器(“眼睛”)的3D姿势。借助确定的3D姿态,可以将摄像机坐标系中的校准对象的姿态转换为机器人的坐标系,然后可以例如抓取被检零件。机器人摄像机(手眼)系统有两种可能的配置:摄像机可以...
2020-07-20 13:55:00
勇哥注:想搞清楚halcon的手眼标定,3d位姿的知识是基本功。本篇文章是其入门扫盲贴。程序运行后,有四个坐标系:相机坐标系(Camera coordinate system)世界坐标系(World coordinate system)对象坐标系(Object coordinate system)机器人基坐标系(Robot base coordinate system)你可以用鼠标指向四个坐标系的...
2020-05-01 14:36:07
一.3D位姿1.为什么用3D位姿齐次变换矩阵内容即矩阵的元素通常难以阅读,特别是旋转部分。将它转换位3D姿势后,便于阅读;【齐次变换矩阵】 【位姿】2. 3D位姿定义3D位姿用3个平移参数,3个旋转参数来表示; 3.位姿类型位姿为”gba类型”:(TransX = xt; TransY = yt; TransZ = zt; RotX = 0; RotY = 90; RotZ = -90) 位姿为”...
2020-04-29 22:28:36
****scara关节机器人眼在手上的手眼标定例程******** This example explains how to perform the hand-eye calibration for
* a SCARA robot. In this case, the camera is attached to the robot tool
* and the calibration obje...
2020-04-29 21:59:17
代码中有几个外部算子,没办法运行。只能看图识代码了。*
* This example visualizes different poses
* in the camera coordinate system
*
* A calibration plate is held at varying positions in different
* orientations with res...
2020-04-29 21:54:32
*外参标定即为相机坐标系和系统世界坐标系关系的旋转和平移矩阵;可以简化理解为一个3*3的矩阵
ImgPath:='3d_machine_vision/calib/'
dev_close_window()
dev_open_window(0,0,652,494,'black',WindowHandle)
dev_update_off()
dev_set_dr...
2020-04-29 07:27:28
http://www.ihalcon.com/read-7445.html在进行手眼标定时走了一些弯路,特在此总结,希望其他人少走一些弯路。实验了 1. 2D面阵相机,3DTOF相机 2. 固定相机以及移动相机的手眼标定。在进行手眼标定时(不管是移动相机还是固定相机,不管是2D还是3D sensor)需要的数据准备:1.ToolInBasePose即从机器人上读取的机械臂法兰盘当前的位姿,这...
2020-04-25 17:28:45
上一个博文说了一种手眼标定系统的特殊情况,就是相机随着机械手一起移动的情况。虽然前面简单介绍了一种办法,就是每次拍照时让相机回到之前标定的位置,但是这样处理机器人的工作效率就会大大降低,产生很多重复动作,所以这篇博文就来讲一种更简单的标定方案。下面是halcon官方给的手眼标定系统的案例代码。这个例子主要应用于相机固定在机械手末端的手眼系统中,而且标定板相对于机器人也是静止的。在这种情况下,手眼校...