避障方案使用说明书
1. 应用简介
视觉避障是迈尔微视基于自主研发的S系列相机基于 TOF 原理的RGBD相机,整合深度学习与传统3D视觉算法,打造一款适合丰富场景的、精确的、实时的、单机可配置、多机可协同的并且具有一定主动性、预测性的避障系统。
该系统具有以下特点:实时动态检测、自适应检测地面、检测目标动态跟踪、支持多种信号输出、支持多种模式切换、可支持5种模式、支持多机协同工作。
2. 相机安装与选型
2.1 潜伏车
如下图所示,潜伏车相机安装的比较低,推荐使用相机S2 / S2 Max系列相机,安装至潜伏车移动方向前表面,且结构设计时注意规避视野干涉。
图2.1 潜伏车
2.2 叉车
如图2.2所示,智能叉车相机安装较高,推荐使用S2 Max系列相机,安装至叉车门架相机斜向下30°-55°,使相机视野边缘刚好在叉车前表面。且相机安装高度建议不得高于2m,若安装高度高于2m,请联系迈尔微视技术支持人员协助相机选型及评估。
图2.1 潜伏车
3. 相机连接设置
- 相机连接前需操作以下设置,相机出厂IP为192.268.100.82连接前需将本地网口IP设置成同网段,如图3.1所示。
图3.1 IP设置关闭
- 将防火墙设置成关闭状态,如图3.2所示。
图3.2 防火墙关闭
- 若需要修改相机IP,可打开“LxCameraViewer”上位机软件,点击“其他工具”,网络相关→IP配置工具→点击IP地址进行修改后,回车后再点击确认修改,修改完成后相机自动重启并重连。
- 可通过左下角的状态栏观察IP是否修改成功,不同网段时需修改本地IP方可重新连接相机。
- 打开提前安装的上位机软件LxCameraViewer,上位机软件自动检索到当前网段下的相机,点击打开相机会自动打开深度图与点云图,如图3.3所示。
图3.3 上位机软件显示
- 打开相机后展开3d设置与滤波设置进行相机参数调整,避障应用推荐使用的配置参数,高积分650、低积分200,滤波设置低信号阈值推荐设置成10-20,不同的车型的安装和参数配置,建议与迈尔微视技术支持人员进行沟通。
4. 避障参数配置
- 完成以上相机参数设置后点击应用算法按钮,右边状态栏会弹出算法设置项,根据应用设置成常开模式或者断开时关闭,S2相机应用算法需选择【避障算法】。其余相机需选择【避障算法2.0】,下方显示算法版本号。S2相机不建议使用扇形避障区域类型,会导致避障结果偏差。
- 矩形避障区域与扇形避障区域如图4.1所示。
图4.1 矩形避障区域 与 扇形避障区域
- 如图4.2所示,避障参数分相机安装外参与避障区域配置参数,相机外参配置完成点击设置完成后,另外4个配置区域均自动更新成当前外参。
- 其中S2 / S2 Max2.0相机可通过IO切换四组避障区域配置0、配置1、配置2、配置3。
- 通过SDK / UDP / RS485最多可切换20组避障区域,可根据小车运行场景进行切换,如小车与当小车运动到窄通道是可以切换成窄通道配置,当小车运动到宽通道时可切换成宽通道配置。
5. 外参设置
5.1 参数说明
参数项 |
参数值 |
说明 |
---|---|---|
避障功能 |
|
通过设置不同的模式切换不同的避障参数 |
相机角度Roll(x轴) |
180 |
相机外参,俯仰角roll,默认相机正装,为180 |
相机角度Pitch(y轴) |
90 |
相机外参,翻滚角pitch,默认垂直安装,为90 |
相机角度Yaw(z轴) |
90 |
相机外参,航向⻆yaw,默认为90 |
相机位置(距离x) |
430 |
相机前后X方向距离视图中AMR前后距离,单位:毫米。 |
相机位置(宽度y) |
0 |
相机左右y方向距离视图中AMR左右距离,如果安装在中间,则为0。单位:毫米。 |
相机位置(高度z) |
120 |
相机安装高度参数即相机距地高度。单位:毫米。 |
5.2 参数设置
如相机安装在AGV的前表面时,关闭其他图像仅使用点云图调试相机参数,优先配置相机安装高度,在微调翻滚角RX,将翻滚角调整至水平后,再调整俯仰角RY,将效果调整至如下图所示效果后,点击“下发参数”,相机安装外参即同步到其他配置中。
6. 避障区域设置
6.1 区域参数说明
参数名称 |
数值 |
参数定义 |
---|---|---|
预警距离(x远) |
2000 |
避障范围,x方向距离车子中心的距离,障碍超出此距离视为安全; 预警距离x(远)与报警距离x(中)之间视为预警减速,界面显示黄色区域。单位:毫米 |
报警距离(x中) |
1500 |
避障范围,x方向距离车子中心的距离,障碍低于此距离视为报警停止,界面显示红色区域;预警距离x(中)与报警距离x(近)之间视为预警减速,界面显示红色区域。单位:毫米。 |
屏蔽距离(x近) |
600 |
屏蔽范围,x方向低于屏蔽距离x(近)为盲区,此区域无法避障。单位:毫米。 |
避障范围左(y左) |
-810 |
避障范围,y方向左侧距离车子中心的距离。单位:毫米。 |
避障范围右(y右) |
1270 |
避障范围,y方向右侧距离车子中心的距离。单位:毫米。 |
避障范围下(z下) |
10 |
避障范围,距离地面高度,低于此高度不处理。如果设置过小,可能由于测距误差导致误报;如果设置过大,可能会过滤掉地面较大障碍导致漏报。单位:毫米。 |
避障高度上(z上) |
1500 |
避障范围,距离地面高度,高于此高度不处理。单位:毫米。 |
6.2 避障区域设置
- 当前避障应用内置20组避障区域,用户完成相机参数配置后即可配置避障区域,AMR运动到不同避障范围时切换改配置区域进行控制避障范围(IO:可切换0、1、2三组避障区域,UDP、485、API、CAN可切换20组)。
- 预警距离(X远):表示相机预警(减速)避障范围2300,即预警距离2300-相机位置430=1870mm,如图6.1所示。
- 报警距离(X中):表示相机告警(停车)避障范围1200,即告警距离1200-相机位置430=770mm,如图6.1所示。
- 屏蔽距离(X近):表示相机屏蔽范围,即屏蔽距离450-相机位置430=20mm,如图6.1所示。
图6.1 预警距离图片
- 避障范围左(y左):表示相机检测避障相机左边-500mm范围的障碍物,如图6.2所示。
- 避障范围左(y右):表示相机检测避障相机右边500mm范围的障碍物,如图6.2所示。
图6.2 避障范围图片
- 避障高度(Z下):表示检测安装高度地面以下10mm范围内的障碍,如图6.3所示。
- 避障高度(Z上):表示相机检测地面以上500mm范围内的障碍物,如图6.3所示。
图6.3 避障高度图片
- 避障输出:
- 0:表示正常无障碍物
- 1:表示预警区域(黄色框范围内)检测到障碍物
- 2:表示告警区域(红色框范围内)检测到障碍物
- 使用上位机按照以上流程配置参数后,可以到软件安装路径\Tools\params\当前相机ID\avoidance.json备份avoidance.json文件然后为不同相机快速同步避障参数:开启相机后执行“从文件加载配置”,选择备份的avoidance.json文件后等待设置完成即可。
7. 通信方式
- 在了解或使用各种通信方式之前,必须使用我们提供的上位机逐一配置避障参数中的内容,才能使用非API通信方式切换不同的避障参数。
注意:部分通信协议是某款机型特有的,如RS485通信是M4Pro独有。
- S2 Max所有的避障相关参数可以通过我们提供的上位机、API进行设置,但对于其它通信方式(IO / UDP / CAN / 485)仅限于修改避障参数索引。S2的避障相关参数可以通过我们提供的上位机进行设置,但对于所有通信方式仅限于修改避障参数索引。
相机类型 |
支持的避障模块通信方式 |
---|---|
S2 |
API、UDP、IO |
S2Max |
API、UDP、CAN |
S2Max V2.0 |
API、UDP、IO、CAN |
M4Pro |
API、UDP、RS485 |
M4 |
API、UDP、CAN |
M4 Mega |
API、UDP、IO、CAN |
相机类型 |
避障参数索引修改 |
避障详细参数设置支持修改 |
---|---|---|
S2 |
所有通信方式均可修改 |
仅限使用我们提供的上位机修改 |
S2 Max、S2 Max2.0、M4、M4Pro、M4 Mega |
所有通信方式均可修改 |
仅限上位机、API可修改 |
注:避障参数索引指配置0、1、2等参数组索引;避障详细参数指除避障参数之外的所有参数,如相机角度、预警距离等。
优先级 |
通信方式 |
作用对象 |
---|---|---|
1 |
IO通信 |
参数即时生效,不可被其它方式干扰,悬空或不支持IO通信情况下使用默认参数或临时参数。 |
2 |
上位机、API设置 |
设置的是默认参数,不受断电影响。 |
2 |
其它(如485等) |
设置的是临时参数,断电或其他通信都会修改这个参数,可通过指令保存为默认参数, |
- 对于避障参数的修改,相机内部严格按照优先级的逻辑处理。
- 临时参数与默认参数的最大区别在于是否断电保存,使用哪一个参数取决于最后一次使用了什么通信方式。
- 如IO通信时(IO不悬空),使用优先级2的通信方式是无法修改当前参数的,但可以修改默认参数、临时参数,当IO通信断开时(IO悬空),具体使用默认参数或临时参数依据最后一次的设置方式,最后一次使用485、UDP设置时则使用临时参数,最后一次使用API调用或上位机设置时,则使用默认参数。逻辑如下
- 对于S2相机切换参数直到加载完成需要200~300ms不等,因此S2对切换参数操作做了滤波操作,前后相隔250ms内的后一次设置将会被忽略。无论是S2还是S2Max不建议过于频繁地切换参数,这会增加相机的资源占用,降低图像帧率。因为避障结果刷新与帧率有关,所以也会导致避障结果刷新率降低。避障结果刷新率等于图像帧率。
7.1 API调用方式
- API调用方式可支持windows、Linux、arm等环境的C++、C#、JAVA、ROS1、ROS2等环境,windows环境的SDK安装上位机软件后SDK文件及示例程序代码均在安装路径下(如:D:\Program Files\Lanxin-MRDVS)。Linux环境SDK可联系迈尔微视相关技术支持提供或官网下载。对于S2相机不推荐使用此种方式切换参数,建议使用UDP或IO切换参数。
- Document文件夹为SDK及上位机使用说明文档。
- FirmWare文件夹为相机固件包存放目录。
- Sample文件夹为示例代码源码存放目录,可根据开发环境自行选择。
- SDK文件夹为SDK库文件存放目录,可根据开发环境自行配置环境变量。
- 避障应用可参数Sampl目录下的C/application_obstacled的避障API源码程序。
7.2 485通信方式
- 485通信仅支持M4 pro相机,使用Modbus RTU传输协议,以下为相机线束定义:
端口 |
引脚 |
信号 |
说明 |
备注 |
插座定义 |
1 |
GND |
信号地 |
蓝色 |
2 |
485_A |
RS485_A |
灰色 |
|
3 |
485_B |
RS485_B |
白色 |
|
4 |
VIN + |
24V电源输入正端 |
棕色 |
|
5 |
VIN - |
24V电源输入负端 |
黑色 |
- 485调试方式如下:
- 通过RS485连接时,调试助手中,波特率设置为9600。
- 使用上位机查看当前Modbus地址,读取输入寄存器(0x04)从地址108(0x6C)开始的两个寄存器地址,反馈的寄存器值即为当前避障结果。
- 如果需要修改避障参数,可以写单个保存寄存器(0x06)的106(0x6A)地址。
7.3 UDP通信方式
避障功能类型字段含义:
编号 |
传输方向 |
报文 |
避障结果 |
---|---|---|---|
1 |
相机->本体 |
ACED0410XX000000 |
无障碍,XX代表当前避障参数 |
2 |
ACED0410XX000001 |
预警减速 |
|
3 |
ACED0410XX000002 |
报警停止 |
|
4 |
本体->相机 |
ACED040000000000 |
建立UDP连接 |
5 |
ACED041A00000000 |
避障参数0 |
|
6 |
ACED041A00000001 |
避障参数1 |
|
7 |
ACED041A00000002 |
避障参数2 |
|
8 |
ACED041A00000003 |
避障参数3 |
|
9 |
... |
(以此类推直到参数19) |
|
10 |
本体->相机 |
ACED041B00000000 |
设置当前参数为默认参数 |
11 |
相机->本体 |
ACED041B00000001 |
默认参数设置成功 |
- 通过UDP连接时,使用网络调试助手与相机测试通信连接,接受数据与发送数据选择十六进制收发。首次通信建议使用编号4指令,建立UDP连接后,避障结果将自动发送,发送频率与当前图像帧率有关。修改参数后可以通过相机发送到本体的报文信息中确认是否修改成功,编号1报文中的XX即为当前参数。
- DP设置的参数在相机重启前一直生效,除非断电或使用其它通信方式修改。如果想要在断电后依然生效,则可以使用编号10的报文保存为默认参数,保存为默认参数功能为UDP通信特有功能,CAN、485。
- 设置本地主机地址与本地主机端口,点击打开;远程主机为相机,填入相机IP端口:192.168.100.12 :6688 ,如果相机IP有更改,则为:相机IP :6688 ;以当前为参数19将其修改到参数0为例,点击发送编号5数据,设置成功的标志是第5个字节由0x13(参数19)更改为0x00(参数0),如下图。
7.4 CAN通信方式
- 通信协议采用CanOpen, CanOpen协议是在标准的CAN总线上运行的应用层协议,其通信模式也是工业通信协议常用的“主从”模式通信,也就是网络中会有一个主站+多个从站,从站之间不会直接互相通信,所有通信都是主站与从站之间进行的。主站也被称为“客户端”,从站也被称为“服务器”。
- 底层通信方式使用CAN标准帧格式,也就是CAN ID为11位(0x000~7FF),数据8字节。
- 对于CAN ID的使用约定:把11位的ID分割为4bit的功能码和7bit的节点ID,并且CAN ID也被称为COB ID:
CAN帧ID |
||||||||||
---|---|---|---|---|---|---|---|---|---|---|
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
功能码 |
节点号 |
- Can波特率:默认为250K,可根据应用进行配置。
- 节点号:默认0x212,可根据应用进行配置。
- SDO的通信报文是CanOpen中的一个基本协议格式,CAN报文中的8字节数据被通信协议定义为如下图的格式:
Data |
|||||||
---|---|---|---|---|---|---|---|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
命令码 |
索引 |
子索引 |
数据 |
避障模块通信协议:
- 本体向设备发送的报文格式。
Data |
|||||||
---|---|---|---|---|---|---|---|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
0x40 |
0x0000 |
0x00 |
MODE CTRL |
- 参考报文:40 00 00 00 0B 00 00 00,0B:即MODECTRL,表示设置避障参数为区域11。
- 设备向本体发送的报文格式。
Data |
|||||||
---|---|---|---|---|---|---|---|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
0x43 |
0x0000 |
0x00 |
MODECTRL |
result |
- 参考字符:43 00 00 00 0B 00 00 02,0B:即MODECTRL,表示当前避障参数为区域11;02:即result,表示当前避障结果。
- 注意:如下图所示,设置避障参数并不是立刻生效的。
7.5 IO通信方式
7.5.1 IO输入状态及避障参数对应表
Input1状态 |
Input2状态 |
备注 |
---|---|---|
高电平 |
高电平 |
避障参数2 |
高电平 |
低电平 |
避障参数1 |
低电平 |
高电平 |
避障参数0 |
低电平 |
低电平 |
避障使用默认参数或临时参数 |
- 注意:输入IO悬空时为低电平,高电平推荐电压5~25V。
- 注意:默认参数或临时参数使用逻辑参照第七章(通信方式)前言,简单来说,相机上电后没有使用其它(API除外的)通信方式配置避障参数时均使用默认参数,反之则使用临时参数。
7.5.2 IO输出状态及避障参数对应表
Output1状态 |
Output2状态 |
备注 |
---|---|---|
断路 |
断路 |
无障碍 |
断路 |
导通 |
减速信号 |
导通 |
断路 |
急停信号 |
导通 |
导通 |
未开启避障、初始化、异常 |
- 注意:当开启避障但输出IO均为接地状态时请确保当前避障参数已通过上位机设置。
7.5.3 S2 Max2.0相机I/O接线方法
功能接口水晶头对应接线说明:
颜色 |
属性 |
备注 |
---|---|---|
橙白 |
Can_L |
can信号低电位 |
橙 |
Can_H |
Can信号高电位 |
绿白 |
Can GND |
Can信号接地 |
绿 |
Out_1 |
I/O功能输出信号 |
蓝白 |
COM |
I/O功能公共端 COM,接地,共地点 |
蓝 |
Out_2 |
I/O功能输出信号 |
棕白 |
In_1 |
I/O功能输入信号 |
棕 |
In_2 |
I/O功能输入信号 |
7.5.4 S2相机I/O接线方法
带有电源标签的外接线详细信息,如下表所示:
标签名称 |
颜色 |
属性 |
备注 |
---|---|---|---|
24V+ |
棕 |
Power+ |
S2相机供电电源,正极 |
24V- |
黑 |
Power- |
S2相机供电电源,负极 |
IN_1 |
红 |
Input |
I/O功能输入信号,高有效,支持24V/开接入 |
IN_2 |
白 |
Input |
I/O功能输入信号,高有效,支持24V/开接入 |
IN_G |
蓝 |
GND_in |
I/O功能输入信号共地点(与OUT_G连通) |
OUT_1 |
绿 |
Output |
I/O功能输出信号,地/开信号,支持24V上拉 |
OUT_2 |
紫 |
Output |
I/O功能输出信号,地/开信号,支持24V上拉 |
OUT_G |
黄 |
GND_out |
I/O功能输出信号共地点(与IN_G连通) |
输入输出端电路如下图所示:
输入端内部电路图
输出端内部电路图
工作原理解释:
- 输入端:当外部输入为高组态、低电平时,光耦内LED不发光,光耦内光敏三极管不到同,相机内部MCU接收电平为高电平;当外部输入为高电平时,光耦内LED发光,光耦内光敏三极管导通,相机内幕MCU接收电平为低电平。
- 输出端:当S2相机MCU输出高电平时,光耦内LED不发光,光耦内光敏三极管不导通,OUT_*与OUT_G之间为开路;当S2相机MCU输出低电平时,光耦内LED发光,光耦内光敏三极管导通,OUT_*与OUT_G 之间为短路,即接地(因为IN_G与OUT_G连通接都与地平面相连)。
7.5.5 S2/S2 Max2.0相机与工控机I/O接线方式
注意相机24V-应连接工控机电源地,IN_G、OUT_G应连接工控机信号地,客户可根据实际情况修改共地连接方式。若工控机无电源地、信号地区分,可将相机24V-、IN_G、OUT_G都连至工控机GND。
7.5.5.1 输入端IN_*接线方法
- 下图为工控机PNP型输出与S2相机输入端(以下简写为IN_*,*代表1、2)接线方法:
- 下图为工控机NPN型输出与S2相机输入端接线方法:
- 由于不同厂家工控机输出电路设计不同,需根据实际情况判断是否需要加上拉电阻及阻值大小。
- 需要按如下步骤测试:
- 用万用表测量工控机输出端对24V的阻抗,若<50kΩ,则无需上拉电阻;若≥50kΩ,则需增加上拉电阻,推荐优先使用:插件式金属膜电阻(阻值10kΩ,功率≥1W)。其他电阻可临时测试使用但长期使用影响可靠性,且阻值不可小于3k欧姆,不可直连24V。
- 连接确认无误后,将工控机输出端拉高后使用万用表测量输出端对地电压,若电压≤2V,则断开相机电路连接后检查工控机是否能拉高电平;若电压>2V,则再把输出端拉低检查S2相机输入是否有变化,若有变化,则说明可以正常使用;若无变化,则将工控机输出端拉低后测量输出端对地电压,若电压大于1V,则说明上拉强度较大难以拉低,需增加上拉电阻阻值,再测量拉低后S2相机输入是否有变化;若电压小于1V,则断开工控机连线,将相机IN_*通过电阻连至24V、GND,检查相机输入是否有变化,若有变化则检查工控机与相机之间连接是否正确;若无变化则联系技术支持排查问题。
- 逻辑树如下图所示:
7.5.5.2 输出端Out_*接线方式
- 由于S2相机输出端为地/开信号,所以S2相机输出端与工控机输入端的连接方法无需区分工控机PNP、NPN型输入,主要区分为常态为高电平还是低电平,即工控机内部有无上拉,继而判断接线是否需要加上拉电阻。
- 下图为工控机输入端与S2相机输出端(以下简写为OUT_*,*代表1、2)接线方法:
- 是否需要接上拉电阻R的判断标准为,工控机上电,输入端悬空(不连相机),直接测量输入端对地电压,若对地电压≥5V,则无需加上拉电阻R;若对地电压≈0V,则需加上拉电阻R,推荐优先使用:插件式金属膜电阻(阻值10kΩ,功率≥1W)。其他电阻可临时测试使用但长期使用影响可靠性,且阻值不可小于3k欧姆,不可直连24V。
注:个别工控机输入端内部存在串联较大限流电阻情况,主要故障表现为S2相机OUT拉低之后,工控机输入端无变化,此时万用表测量工控机输入端对地电压较大,需要根据情况调整上拉电阻,增加阻值直至电压进入工控机判低范围即可。
8. 常见问题处理
8.1 黑色物体
因TOF原理S系列相机受黑色栈板反射率影响,黑色栈板5%反射率可使用S2max相机实现2m范围内的成像效果,调试时也可通过上位机软件高积分时间与低信号阈值优化黑色栈板成像效果。如果避障场景中存在黑色叉臂时建议用户在用户在叉尖部分增加反射率较高辅助避障,如将叉尖前一小段喷漆其他颜色的漆面。
8.2 低矮地面物体
地面上的物体无法避障,在避障应用中一般我们以地面为基准进行外参配置,如遇地面的低矮障碍物无法实现避障时可参考以下解决办法进行处理:
- 上位机点云图显示未框选到障碍物,需确认避障高度(下)是否为正值,若为正值建议暂时设置为0判断是否能检测到框选到障碍物,若依然不能建议调整相机安装高度。
- 上位机点云图能框选到障碍物体但避障结果输出为0,该现象可能相机安装高度配置不对导致,建议用户调整相机安装高度。
8.3 避障参数不生效
- 配置参数时未点击设置完成。
- 修改了非法参数导致设置失败。
- 相机连接不稳定出现断联导致下发参数失败。
8.4 安装结构干涉
- 安装时相机周边存在遮挡相机视野结构导致相机数据异常。
- 结构设计时相机设计靠后视野干涉导致相机数据异常。
- 相机镜面保护膜未撕掉,导致相机数据异常。
- 相机镜面安装了其他保护玻璃导致数据异常。
9. 其他
Eagel-S系列相机为视觉避障应用相机,S2 Max2.0和S2相机可支持IO方式,用户可根据项目进行选择相机类型。
建议用户使用最新版本的上位机固件与最新版本的上位机软件,可从Git获取。