1. 课程导入与开发环境搭建
HALCON 机器人视觉定位与引导系统,本质上是一套把“相机看到的二维图像”转换为“机器人可执行的位姿指令”的工程链路。它并不是单一算法,而是由成像、标定、识别、位姿估计、手眼转换、通信与运动控制共同构成的闭环系统。理解这条链路的整体架构,是后续所有开发工作的前提。
一、系统整体架构与核心概念
从数据流角度看,系统可分为四个层次。第一层是感知层:工业相机、镜头、光源组成成像单元,负责稳定获取工件图像。第二层是计算层:HALCON 完成图像预处理、特征提取、模板匹配、亚像素边缘定位与位姿求解。第三层是转换层:通过手眼标定矩阵,把相机坐标系下的位姿换算到机器人基坐标系。第四层是执行层:机器人控制器接收位姿指令,完成抓取、放置或装配。
其中几个核心概念必须明确。位姿(Pose)在 HALCON 中用 Pose 类型表示,包含平移量 (x, y, z) 与旋转量 (Rx, Ry, Rz),默认采用“先绕 Z 轴旋转、再绕 Y 轴、最后绕 X 轴”的 ZYX 欧拉角约定,单位为米和弧度。若使用毫米,需在标定与通信中统一换算,否则会出现数量级错误。标定分为相机内参标定与手眼标定:前者修正镜头畸变、确定像素与物理尺寸的映射;后者确定相机与机器人末端的空间关系。模板匹配则是在图像中寻找已知形状,输出匹配位置与角度,是定位的起点。
典型应用场景包括:3C 行业的 PCB 上料定位、汽车零部件抓取、物流分拣中的包裹位姿识别、以及装配线上的螺丝锁付引导。这些场景的共同点是:工件位置存在随机偏差,必须依靠视觉实时修正机器人轨迹。
二、开发环境搭建:从安装到可运行
HALCON 的安装并不复杂,但许可证配置和接口选择是新手最容易卡住的地方。建议按以下顺序推进。
第一步:安装 HALCON。从 MVTec 官网下载对应版本(如 HALCON 23.11 Progress),运行安装程序。安装路径建议保持默认,避免中文路径和空格,否则部分接口在链接库时可能报错。安装完成后,bin\x64-win64 目录下会出现 hdevelop.exe 与核心 DLL。
第二步:配置许可证。HALCON 使用授权文件(.lic)或加密狗。若为软授权,将 license.dat 或对应 .lic 文件放入安装目录的 license 文件夹,或通过环境变量 HALCONLICENSEFILE 指向文件路径。验证方式是打开 HDevelop,执行 get_system ('license_file', Info),若返回有效路径且无报错,说明授权生效。若提示 “no license found”,优先检查文件是否过期、是否与版本匹配。
第三步:熟悉 HDevelop。HDevelop 是 HALCON 的集成调试环境,支持算子逐行执行、变量实时查看、图形窗口叠加显示。建议先跑通一个最小示例:读取图像、阈值分割、连通域分析、输出区域中心。通过 dev_display 系列算子观察中间结果,是理解算子行为最快的方式。
第四步:选择编程接口。实际工程中,HDevelop 用于算法验证,最终交付通常用 C++、C# 或 Python 调用 HALCON 库。C++ 性能最好,适合实时性要求高的产线;C# 开发效率高,适合上位机界面集成;Python 适合快速原型与算法研究。无论哪种接口,核心都是加载 halcon.dll、初始化算子、传入图像、取回结果。
三、最小可运行示例与验证
下面是一段 HDevelop 风格的最小流程,用于验证环境是否可用。它读取一张工件图像,提取亮区域,并输出区域中心坐标。
read_image (Image, 'part_01.png')
rgb1_to_gray (Image, GrayImage)
threshold (GrayImage, Region, 128, 255)
connection (Region, ConnectedRegions)
select_shape (ConnectedRegions, Selected, 'area', 'and', 500, 99999)
area_center (Selected, Area, Row, Column)
dev_display (GrayImage)
dev_display (Selected)
运行后,图形窗口应显示原图与选中区域叠加,变量窗口能看到 Row、Column 的数值。若图像路径正确、授权正常,这一步通常几秒内完成。若报错,优先排查:图像路径是否存在、许可证是否加载、算子是否被当前授权版本支持。
需要强调的是,环境搭建的目标不是“装完软件”,而是形成一条可重复验证的链路:图像能读入、算子能执行、结果能显示、接口能调用。只有这条链路稳定,后续的标定、匹配与机器人通信才有可靠基础。本章的架构图与参数约定,将贯穿后续所有章节,建议在进入下一阶段前,先确认自己的环境已满足上述四个条件。