UC3D系列线激光轮廓测量传感器(Halcon安装使用说明)
目录
一、支持Halcon版本5
二、接口库文件命名规则5
三、手动安装接口库5
四、使用方法6
五、接口参数说明14
前言
本手册是对《UC3D系列线激光轮廓测量传感器》在Halcon软件中的安装使用说明,为了最大限度地发挥《UC3D系列线激光轮廓测量传感器》的性能及其使用功能,请认真阅读本手册,在充分理解其内容的基础上再使用。
一、支持Halcon版本
目前发布的Halcon接口库支持如下Halcon版本:
Halcon版本 | 32位 | 64位 |
---|---|---|
HALCON-11.0 | 支持 | 支持 |
HALCON-12.0 | 支持 | 支持 |
HALCON-17.12-Progress | 支持 | 支持 |
HALCON-18.11-Progress | 支持 | 支持 |
HALCON-19.05-Progress | 支持 | 支持 |
HALCON-19.11-Progress | 支持 | 支持 |
HALCON-20.11-Steady | 不支持 | 支持 |
其他版本请联系凯视佳。 |
二、接口库文件命名规则
主文件名:hAcqKsjCamera3D不变。
发布版:Release为发布版本,Debug为调试版本。
32位/64位:x86对于32位程序,x64对应64位程序。
下文的说明都以主文件名进行说,文件的全称请跟进实际情况确定。
三、手动安装接口库
如果运行安装包安装,所支持的Halcon插件会自动安装,不需要手动安装。如下为手动安装步骤:
- 如果您安装的是64位Halcon程序,将凯视佳Halcon插件相应版本文件夹下的x64-win64文件夹下的hAcqKsjCamera3D_Release _x64.dll、KSJ3DApi_x64.dll、KSJApi64.dll两个文件拷贝到HALCON安装目录下bin\x64-win64目录下。如果您安装的是32位Halcon程序,将凯视佳Halcon接口库相应版本文件夹下的x86sse2-win32文件夹下的文件拷贝到HALCON安装目录下bin\x86sse2-win32目录下。我们以HALCON-19.11 64位版本配图进行说明,其他版本基本操作是相同的。
64位拷贝位置
四、使用方法
4.1打开图像采集设备操作对话框
文件拷贝之后,即可在HALCON软件的“助手”菜单下选择“打开新的 Image Acqusition”。
选择打开新的Image Acquisition
选择“打开新的Image Acquisition”后会出现采集设备操作对话框,如下图:在“资源”页里的“图像获取接口”列表下,找到相应的主文件名为KsjCamera3D的接口并选择,这个就是凯视佳相机设备对Halcon软件的支持接口,这个接口库支持所有凯视佳UC3D系列线激光轮廓测量传感器,并且支持多台操作,这个接口名称也可作为open_framegrabber函数的Name参数。
选择图像获取接口
4.2连接设备
选择好图像获取接口之后,点击“连接”页面,由于此接口支持多台传感器的操作,所以在“设备”的选择列表下会出现和您连接的传感器数目相同的号码,这个号码实际就是相机的序号(Serial Number),是固化到相机内部的,所以您可以预先使用KSJShow3D软件将相机的序号烧写进相机,这样列表中就会出现相应的序号。同时对于有相同序号的相机,接口库会自动进行处理,把相同的序号只保留一个,而把其他几个进行自动分配并改写序号,只要保证没有相同的序号,接口库就不会去改写。这个序列号可以作为open_framegrabber函数的Device参数。
“设备”列表下的数字对应相机的序列号(Serial Number)
选择“连接”
选择对应序列号的“设备”,再点击“连接”,会对相应的传感器进行参数的读取,并使得“参数”页面有效。
4.3设置参数
设备连接后,“参数”页面有效
参数设置页面
可读写参数
max_profiles:相机采集深度图像的高度,单位像素。
start_column:视场的水平偏移,单位像素。
column_size:相机采集深度图像的宽度,单位像素。
start_row:视场的垂直偏移,单位像素。
row_size:相机视场的宽度,单位像素。
capture_mode:相机采集模式。
start_trigger_mode:启动触发模式。
start_trigger_delay:启动触发延时,单位个。
start_trigger_filter:启动触发滤波,单位微秒。
data_trigger_mode:轮廓数据触发模式。
data_trigger_method:轮廓数据触发方法。
data_trigger_filter:轮廓数据触发滤波。
data_trigger_divider:轮廓数据触发分频。
fixed_frame_rate:轮廓数据触发模式为内触发时生效,表示每秒触发多少个轮廓数据采集。
x_resolution:深度图像的x方向精度。
y_resolution:运动方向精度。
exposure_time:曝光时间,单位毫秒。
gain:增益,这个值对应寄存器的值,没有具体含义。
threshold:灰度阈值。
width_threshold:宽度阈值。
low_threshold:灰度低阈值。
laser_mode:激光模式。
timeout:采集一帧深度图像的超时时间,单位秒。
这些参数同时可以通过set_framegrabber_param进行设置。
只读参数
capture_state:采集状态,表示是否开始采集,“Start Capture”表示当前正在采集,“Stop Capture”表示当前未采集。视场参数、触发模式、采集模式等只有未采集时设置才有效。
col_uniformsize:当前采集的深度图像宽度。
这些参数可以通过get_framegrabber_param读取。
只写参数
do_setting_page:弹出设备配置属性页面,这个属性页面主要方便客户进行更复杂的参数设置,此属性页的说明请参考《UC3D系列线激光轮廓测量传感器配置属性页说明书》。
StartAcquisition:启动采集,点击后启动采集,可以用grab_image进行采集。
StopAcquisition:停止采集,点击后停止采集,grab_image无效。
这些参数同时可以通过set_framegrabber_param进行设置。
启动采集后,只有增益、曝光、阈值、激光模式可以设置,其他均不可设置。
设备配置属性页
4.4采集
选择“文件/打开程序…”菜单:
选择UC3D的Halcon脚本文件,UC3D_ZMap.hdev对应采集模式“zmap”模式,采集的为ZMap浮点数,UC3D_Idensity.hdev对应采集模式“Idensity”模式,采集为一个双通道图像,通道1为ZMap浮点数,通道2为字节型表示亮度图;选择脚本文件并点击“打开”按钮:
点击“运行”快捷按钮运行脚本进行采集并显示图像:
五、接口参数说明
1、open_framegrabber接口参数
参数名称 | 参数值 | 默认值 | 参数类型 | 说明 |
---|---|---|---|---|
Name | ‘接口名称’,比如’hAcqKsjCamera3D_Release-19_11_x64’表示对应64位,19_11版本的halcon插件。 | 必须按照接口名称设置 | string | 参见接口命名规则 |
HorizontalResolution | 根据硬件决定 | 1 | integer | 忽略,默认值为1表示最大视场宽度。 |
VerticalResolution | 根据硬件决定 | 1 | integer | 忽略,默认值为1表示最大视场高度。 |
ImageWidth | 0 | integer | 忽略 | |
ImageHeight | 0 | integer | 忽略 | |
StartRow | 0 | integer | 忽略 | |
StartColumn | 0 | integer | 忽略 | |
Field | ‘progressive’ | string | 忽略 | |
BitsPerChannel | 8 | integer | 忽略 | |
ColorSpace | ‘default’ | string | 忽略 | |
Generic | -1 | 忽略 | ||
ExternalTrigger | ‘false’,’true’ | ‘false’ | string | 是否设置成外触发模式 |
CameraType | ‘default’ | string | 忽略 | |
Device | ‘1’,’2’,…’255’ | ‘default’ | string | 相机的唯一序号(这个序号必须保证唯一,可以通过KSJShow3D应用程序进行改写,改写后的序号掉电不丢失) |
Port | 0 | integer | 忽略 | |
LineIn | -1 | 忽略 | ||
AcqHandle | 函数返回参数,用于之后相机的操作 | halcon算子 | 相机句柄 |
2、set_framegrabber_param接口参数
参数名称 | 参数值 | 参数类型 | 说明 |
---|---|---|---|
max_profiles | 1~65535 | integer | 相机采集深度图的高度,单位像素 |
start_column | 根据硬件决定 | integer | 视场的水平偏移,单位像素 |
column_size | 根据硬件决定 | integer | 相机采集深度的宽度,单位像素 |
start_row | 根据硬件决定 | integer | 视场的垂直偏移,单位像素 |
row_size | 根据硬件决定 | integer | 相机视场的宽度,单位像素 |
capture_mode | ‘zmap’, ‘idensity’ | string | 采集触发模式 ‘zmap’模式时只采集zmap数据,返回浮点数类型图; ‘idensity’模式时返回一个双通道图,通道1为zmap图,浮点数类型;通道2为亮度图,字节类型 |
start_trigger_mode | ‘disable’, ‘rising edge’, ‘falling edge’, ‘high level’, ‘low level’ | string | 启动触发模式 |
start_trigger_delay | 0-9999 | integer | 启动触发延时,单位为数据触发脉冲的个数(如果数据触发为内触发,单位为触发轮廓数据的个数) |
start_trigger_filter | 0-9999 | integer | 启动触发滤波,单位微秒 |
data_trigger_mode | ’freerun’,’internal’ ‘external’ | string | 轮廓数据触发模式 |
data_trigger_method | ‘rising edge’ ‘falling edge’ | string | 轮廓数据触发信号有效选择 |
data_trigger_filter | 0-65535 | 轮廓数据触发滤波 | |
data_trigger_divider | 0-65535 | integer | 轮廓数据触发分频 |
fixed_frame_rate | 1-20000 | integer | 轮廓数据触发模式为内触发时生效,表示每秒触发多少帧采集 |
y_resolution | 0.001-10 | float | 运动方向精度,单位毫米 |
x_resolution | 根据硬件决定 | float | 深度图像的x方向精度,单位毫米 |
laser_mode | ’open’,’close’,’flash’ | string | 激光模式 |
exposure_time | 根据硬件决定 | float | 曝光时间,单位毫秒 |
gain | 根据硬件决定 | integer | 增益,这个值对应寄存器的值,没有具体含义 |
threshold | 0-255 | integer | 灰度阈值 |
width_threshold | 0-255 | integer | 宽度阈值 |
low_threshold | 0-255 | integer | 灰度低阈值 |
serial_number | 0-255 | integer | 相机的序号 |
timeout | 默认5秒,根据应用场景设置 | integer | 采集一帧深度图像的超时时间,单位秒 |
capture_state | 表示采集状态,只读 | string | “Start Capture”表示当前正在采集,“Stop Capture”表示当前未采集。 |
column_uniform_size | 根据硬件决定,只读 | integer | 当前采集的深度图像的像素宽度 |
StartAcquisition | 1 | integer | 设置时开启采集 |
StopAcquisition | 1 | integer | 设置时关闭采集 |
3、get_framegrabber_param接口参数
参数名称 | 参数类型 | 说明 |
---|---|---|
model_name | string | 设备型号名 |
serial_number | integer | 设备序列号 |
firmware_version | string | 固件版本 |
fpga_version | string | FPGA版本 |