历史上的今天
返回首页

历史上的今天

今天是:2024年09月30日(星期一)

正在发生

2021年09月30日 | 技术干货 | 仙工智能识别专栏之料架识别篇

2021-09-30 来源:仙工智能(SEER)

一、料架识别的应用场景

为什么要进行料架识别?

因为料架不是一直都能固定摆放在某个位置上。AMR 对货架进行拉取或顶升等操作,需要精准货架位置。地图可准确定位 AMR,却无法定位料架所在位置,所以需要进行料架识别,以确定料架的位置。

料架标准要求:

1、料架四腿需形成一个矩形;

2、料架的其他部分都须成轴对称的形式,包含:和顶升机构配合的限位孔、料架腿上支撑的料架部分;

3、料架内侧宽度须大于机器人最大宽度 20cm,左右各冗余 10cm 的钻料架调整空间;

4、料架高度要求,根据顶升模块的行程确定;

二、仙工智能选用的识别方式

1、反光贴识别

图示:常用的3M反光贴

作用原理:反光贴是常用的强度高反射材料,反光贴识别主要利用激光接收反光贴的反射率远高于环境中的普通物体,因此可以很容易通过反射率来提取反光贴的具体位置。

使用反光贴方式所需的简单改造:

(1)操作方式:

剪取两小块反光贴贴于 AMR 要钻入的那个侧面的料架腿上。

(2)粘贴要求:

①反光条的中心与 AMR 上安装的激光雷达扫描平面在高度上要对齐

②反光条内侧与料架腿内侧平齐,如下图所示:

使用参数配置说明:

使用 Roboshop Pro 软件,点击【识别文件】标签页进入配置界面,选择一个【shelf】文件,在右侧的属性窗进行货架描述文件的参数配置。如下图所示:

width: 改造后,钻入方向上两个货架腿的外侧宽度。这里的宽度,是指改造后,两块反光条的最外侧宽度;

length: 垂直于钻入方向的两个货架腿的最外侧宽度;

leg_width: 反光条宽度,若选用标准 3M 汽车反光贴,即为 0.05(米);

除了这三个配置参数外,还留有丰富的配置接口,这些接口与使用形状识别是共享的,如钻入的深度(align_depth)、不同方向识别和钻入(detect_direction)、考虑货架重心用来调整钻入的偏移量(rec_off_x, rec_off_y, rec_off_angle)等参数。

2、使用形状识别:

激光雷达形状识别图示:图中蓝色坐标系为 AMR 的车体坐标系,虚线方形为可配置的激光雷达识别区域,方形中的虚线为激光雷达扫描 scan 的示意图

作用原理:通过激光点云进行形状识别,无需粘贴反光贴。在使用激光雷达形状识别时,需保证待识别的料架腿在激光雷达的识别范围内,识别区域可根据现场环境进行配置。

对料架腿的形状和材料的要求:

(1)料架腿的表面光滑平整;

(2)料架腿的形状为规则的方体;

(3)料架腿的表面不能为:呈镜面反射材料、半透明的材料、黑色的材料。

图示:典型的可用货架腿

使用参数配置说明:

使用 Roboshop Pro 软件,点击【识别文件】标签页进入配置界面,选择一个【shelf】文件,在右侧的属性窗进行货架描述文件的参数配置。如下图所示:

需要配置如图上所示的 5 数:

1:rightStandardLength,右侧料架腿的长度;

2:rightVerticalLength,右侧料架腿的宽度

3:leftVerticalLength,左侧料架腿的宽度;

4:leftStandardLength,左侧料架腿的长度;

5:distance,料架腿内侧之间的距离;

此外,料架腿长和宽之间的夹角默认为 90°,也可以额外配置,为了保证识别的精度,料架腿的长宽应大于 6cm。

三、识别操作使用说明

在完成上述反光膜或者形状识别的配置之后,只需在货架点位对应的前置点属性中配置识别模型文件,即 shelf 文件,然后将线路属性中的 ObsExpansion 设置为 0,避免钻料架过程中机器人停障。接着要进行执行动作的配置:

1.需要识别料架所在位置,并钻入料架顶升起来,需要勾选 Recognize,点击 Load;

2.不需要识别料架所在位置,开环的钻入到一个固定位置上,并顶升起来,不需要勾选Recognize,直接点击 Load;

3.需要识别位置上有没有料架,并放置料架,勾选 Recognize,点击 Unload,若有料架占用的话,会报错;不需要识别,直接开环放置,不用勾选 Recognize,直接点击 Unload;

4.需要点击 Wait 的情况比较少,若勾选了 Recognize,再点击 Wait,机器人就会识别料架位置,钻入料架底部,然后结束任务,不会动作顶升模块;若不勾选 Recognize,直接点击 Wait,机器人就会固定路径导航到工作站,然后结束任务,不会动作顶升。

那么在执行路径规划的时候选择执行动作,AMR 在这个前置点上会自动切换到识别模式,根据识别到料架腿的位置来推算出料架的中心位置并自动生成到达此位置的路线。

四、不同方向识别说明

针对车头车尾都安装激光雷达的全向车,可通过配置实现车头、车尾、车左侧和车右侧各个方向的识别,配置如下图所示:

五、其他说明

1、为了减小误识别的情况,使用激光识别料架时要求料架的前面两条腿中心距离和前置识别点的距离小于 2m,中心点到识别位置激光的连线和车体的角度偏差小于 10°,料架本身的角度和识别时的 AMR 的角度偏差小于 20°;

2、使用激光点云形状识别功能,需要将参数配置 method_type 配置为 by_legShape,在激光雷达的识别区域要避免遮挡住货架腿;

3、在使用反光贴的方法时,需要将参数配置 method_type 配置为 by_reflector,同样要保证不能遮挡料架腿;

4、反光板识别:x,y 方向的精度高于 ±1cm,角度精度高于 1°;

5、形状识别:x,y 方向精度高于 ±1cm,角度精度高于 1°。

推荐阅读

史海拾趣

ADPOW公司的发展小趣事

在市场竞争日益激烈的背景下,ADPOW公司深知品质是生存和发展的关键。因此,公司建立了严格的质量管理体系,从原材料采购到产品出厂的每一个环节都进行严格把控。同时,公司注重品牌建设,通过广告宣传、参加展会等方式提升品牌知名度和美誉度。这些举措有效提升了公司的市场竞争力。

芯海科技(CHIPSEA)公司的发展小趣事

芯海科技自2003年成立以来,便专注于高精度ADC(模数转换器)芯片的研发。在成立初期,公司面临国际巨头的激烈竞争,但凭借对技术的执着追求,成功打破了国内市场的垄断。公司推出的高精度ADC芯片在电能计量领域得到了广泛应用,为工业领域提供了稳定、可靠的解决方案。这一阶段的成功为芯海科技在电子行业奠定了坚实的基础。

DATATRONICS公司的发展小趣事

DATATRONICS高度重视人才战略的实施。公司积极引进和培养了一批高素质的技术人才和管理人才,为他们提供了良好的工作环境和发展空间。同时,DATATRONICS还建立了完善的激励机制和培训机制,鼓励员工不断创新和进取,共同推动公司的持续发展。

Amulet Technologies公司的发展小趣事

DATATRONICS深知产品质量是企业生存和发展的基石。因此,公司投入大量资源用于建立和完善质量管理体系,确保每一款产品都符合国际标准和客户要求。同时,DATATRONICS还注重品牌形象的塑造,通过一系列营销活动和公益活动,提高了品牌知名度和美誉度。

Hamamatsu公司的发展小趣事

DATATRONICS高度重视人才战略的实施。公司积极引进和培养了一批高素质的技术人才和管理人才,为他们提供了良好的工作环境和发展空间。同时,DATATRONICS还建立了完善的激励机制和培训机制,鼓励员工不断创新和进取,共同推动公司的持续发展。

BAE Systems公司的发展小趣事

BAE Systems公司的前身可以追溯到多个历史悠久的英国航空与电子企业。1910年成立的布里斯托飞机公司、1918年成立的英格兰电子公司,以及1927年成立的Vickers-Armstrongs,这些企业在各自的领域内都取得了显著的成就。到了1960年,这些企业经过整合,形成了英国飞机公司,这标志着英国航空与电子工业的一次重要合并。这一整合不仅增强了英国在航空领域的实力,也为后来的BAE Systems公司打下了坚实的基础。

问答坊 | AI 解惑

HTCAD 土石方量计算软件

HTCAD是一套基于AutoCAD平台上开发的土方工程量计算绘图软件,针对各种复杂地形况,软件采用了方格网法计算土石方量。软件具有良好的交互性,界面友好,贴近设计人员的设计思路,能够在最短的时间内计算出土石方量。适用于工业设计院总图专业,规划 ...…

查看全部问答>

开关电源要降低纹波主要要在三个方面下功夫

1、储能电感。储能电感在工作频率下的Q值越大越好,很多人只注意到电感量,其实Q值的影响要大得多,电感量只要满足要求允许在很大范围内波动。 2、滤波电容。滤波电容的ESR和ESL是非常重要的参数,越低越好,仅追求容量是远远不够的,当然在满 ...…

查看全部问答>

底板和芯片模块如何连接

有一个问题有点疑惑,以前没弄过焊接开发板的事,现在想想要是想把模块芯片焊接到开发板上那么引脚该怎么连啊,比如我想连接编解码芯片到开发板上,用iic总线传输控制信号,spi接口传输数据,通用i/o口传一些中断等信号,那么这块芯片怎么和开发板 ...…

查看全部问答>

周立功8962开发板全部实验例程

我也来做贡献,周立功8962开发板全部实验例程…

查看全部问答>

求教:TCPMP线程问题!?

小弟调用tcpmp的common.dll来做开发 Context_Init((tchar_t*)name, (tchar_t*)version, id, (tchar_t*)cmdline, application);                                 ...…

查看全部问答>

Wince 6.0 的补丁包在那里下载?

如题,太难找了? 有人有链接么? Thanks in advance!…

查看全部问答>

evc 编译完成 如何调试该程序?

我的意思是,用evc ide 直接连接 sdk 开发板(2410) 直接下载到板子上执行。 板子上已经用pb 4.2 编译的wince 下载完毕。 我目前只能evc ide 下载到 evc 的 模拟器上执行。 如何,让evc ide 连接 sdk (2410)直接执行呢? 需要配置什么?…

查看全部问答>

ARM7(单片机)LPC2XXX一个芯片同时烧录两段独立的工程主函数代码

在用LPC2378(LPC2XXX系列相同)做实验,想用KEIL FOR ARM做两个工程,也就是说有两个启动代码,有两个C语言main主函数,想在编译后分别烧录到同一芯片的不同地址处。 启动时先启动第一段代码,从第一段代码再跳到另一段代码处。 请高手们指点一 ...…

查看全部问答>

S3C2440中的Uart串口地址问题

请教S3C2440中的Uart串口地址问题:UART0的发送缓冲区地址为0X50000020,接收缓冲区地址为0X50000024,中间只相差4个字节,怎么来的64字节的FIFO缓冲区呢? 谢谢!…

查看全部问答>