日期: 2021/11/24

产品合集 | 仙工智能识别专栏之二维码导航

# 二维码导航的使用场景

仙工智能的 AGV 支持多种导航方式,二维码导航是其中一种。在狭窄的环境、环境空旷又或者是环境变化比较大的场景下,通过粘贴导航用的二维码和安装在 AGV 车身下的 PGV 读头,可以实现准确、稳定的定位和导航。PGV(Position Guided Vision):位置导引视觉,可以用于支持二维码导航或色带导航

# PGV 安装和注意事项

PGV 在安装的时候一般安装在小车底部,且垂直照向地面,在安装的时候,首先需要保证 PGV 的离地高度适中,保证当二维码处于 PGV 正下方的时候,PGV 可以完整的看到二维码;其次需要注意 PGV 的安装方向和安装角度,尽量保证 PGV 水平安装。

# 模型配置

PGV 的 yaw (r) 角,需要通过将二维码与车子平行,从 PGV 中读取 angle 角,然后 PGV 配置中的 yaw 即为 -angle。

正确填写 yaw 值后,执行 pgv 标定,在标定完之后可以看到如下图所示的参数列表,单位 xUnit、yUnit 为 pgv 配置的坐标值,按照实际配置填写;本文档配置坐标单位为 0.1mm,所以填写 0.0001m。



"func" 是指位置引导视觉系统的功能,请根据实际情况进行勾选。

adjust:调整;

localization:定位;

adjust Localization:定位+到点角度调整。



配置完成后可在【运行状态】-【PGV】一栏看到读码信息:



# PGV 的标定

仙工智能提供两种 PGV 标定方式

PGV 标定和 PGV -里程计标定



1. PGV 标定:

PGV 标定适用于安装有 PGV(上视或下视均可)设备的车辆,每个 PGV 设备都对应一个此类型的标定项。

PGV 标定需要采集:PGV 检测到的二维码位姿数据和里程计输出。使机器人在初始状态下能用待标定的 PGV 检测到二维码,机器人将执行如下动作:调整机器人位姿,使 PGV 对齐到二维码中心;前进-后退若干次;围绕(模型文件所描述的)PGV 中心旋转一周。

2. PGV-里程计标定:

PGV-里程计标定适用于未装备勾选了用于定位的激光雷达设备,同时装备了下视 PGV 的双轮差动车(这样的车辆始终依靠检测二维码进行定位)。每个下视 PGV 都对应一个该类型的标定项。PGV-里程计标定需要采集:源自 PGV 的车辆定位数据和行走电机编码器数据。鉴于 PGV-里程计标定过程中,需要尽可能多地获取源自 PGV 检测到的二维码位姿信息的定位数据,因此需要一个二维码密集的区域进行标定。该区域最简单的形式为一个连续的条状二维码区域,如下图所示:



此条状二维码区域同时还具有如下属性(参见下图)

二维码坐标系的 x 轴对应于条状区域的长边;二维码区域中,二维码坐标系下 x负方向那一端的二维码称为起始二维码,开始执行 PGV-里程计标定时机器人应位于 PGV 可检测到此二维码的范围内。



使机器人在初始状态下能用待标定的 PGV 检测到起始二维码,开始标定后机器人将执行如下动作:调整机器人位姿,使 PGV 对齐到起始二维码中心;前进-后退若干次;原地逆时针-顺时针旋转若干次。

3. PGV 标定操作说明:

① 将车辆移动至可使 PGV 检测到二维码的中心位置,且使得机器人原地旋转过程中始终能够检测到二维码;

② 将车头朝向可检测到二维码区域的中心位置,以使得车辆能在尽可能长的直行距离内检测到二维码;

③ 勾选标定执行标定,完成后设置标定结果 

注:如果与里程计相关的标定项显示为未标定,则执行相应标定并设置标定结果;目前 PGV 的标定要依赖激光,必须先标定激光后才能开始标定机器人。

# 二维码粘贴要求 

二维码一般粘贴在地面上,在粘贴的时候,首先要保证二维码粘贴平整,如果粘贴不平整会导致 PGV 识别失败;二维码上面的不可以出现打印不清晰或者有涂抹存在,这些都会导致 PGV 识别失败。在贴二维码的时候,需要保证二维码的朝向一致且最好要沿着一条直线粘贴。贴⼆维码前先规划好路径、特别是互斥区。张贴前线使⽤墨⽃打线、两条平⾏线需保证绝对平⾏ (不然地图规划将不好操作)。贴码时先把二维码中间的间距记录⽅便建图。

# 二维码建图说明

1. 建图在地图边缘⿊⾊地⽅建图(如图),调整设置参数与地图检测参数。先建⼆维码(间隔⼩于 ⼀⽶,与实际贴码情况⼀致)然后在建需要的点位,点位建在⼆维码上(Roboshop Pro2.3.1.4 以上 可以直接复制坐标)。





2. 确认机器人定位:使⽤⾼级区域如图设置,将地图框起来,当地图中机器⼈模型在⾼级区域且扫到了⼆维码机器⼈ 将⾃动找到定位。 



# 二维码导航设置教程

1. 二维码位置获取:

在使用二维码导航车辆之前务必保证机器人已经配置及标定完成;现场贴放完二维码之后,在 Roboshop Pro 首页选中机器人,然后在工具栏右侧会出现开始识别按钮。如下图:



点击开始识别,然后将机器人手动控制到二维码下方,机器人停止运动后会显示二维码的位置,然后会在地图上绘制二维码,依次控制到所有二维码下方直到所有二维码识别完,然后点击停止识别,这时候将当前地图上传,就成功记录所有二维码的世界坐标位置,如下图所示:



2. 在二维码上增加站点:

在二维码导航中,机器人通过读取二维码的信息确定机器人此时的位置,机器人通过地图上站点(例,AP 点)及线路来确定下一步的行进方向;在地图编辑模式,首选从左侧工具栏选择站点(例,AP),在靠近二维码的的任意位置落下,然后再拖动此 AP 点,当 AP 点靠近二维码时,AP 点会自动吸附至二维码上,如下图所示:



按照此步骤将所有二维码上均吸附上 AP 点,并规划路线,如下图所示;



注意:地图上二维码的朝向一定要与实际地面上二维码的朝向一致;AP 点的方向可以根据 .smap 的实际需要进行调整;

3. 二维码区域定位:

接下来选择需要使用二维码导航的区域,在地图编辑中,选择区域 ≥ 高级区域中选择二维码区域,覆盖在需要二维码导航的区域,如下图所示:



该区域配置完成后保存推送,然后机器人运行到该区域后自动切换为二维码定位,离开该区域后自动切换为激光定位;

4. 二维码导航注意事项:

① TagArea 区域务必覆盖所有需要二维码导航的站点及线路;

② 在 .smap 上保证二维码的编号与现实位置一一对应。

③ 贴二维码间隔一般要求在1m以内,(码和码之间走的是开环运动,理论上间距越小则到点精 度越准另外贴码间距小的情况下AP站点可以不建立在二维码上但到点精度也会有稍许影响)。

④ 二维码尽量要贴在一条直线上,如果贴歪可能会导致到点精度差和到此点后机器人减速。 

⑤ 注意二维码都有独立的编号,使用的二维码不要有同号的,扫描后面一个二维码时会覆盖前 面的二维码。

# 相关参数说明

在机器人模型PGV配置界面,需要配置一些参数,下面对这些参数做出说明:

首先是basic下的:

onOpenTime:pgv 开机时间,配置 pgv 开机时间;

id:设备 id,位置引导视觉系统的编号;

x:在 x 轴位置,右手坐标系下的 x 位置,如小车模型中坐标;

y:在 y 轴位置,右手坐标系下的 y 位置,如小车模型中坐标;

z:在 z 轴位置,右手坐标系下的 z 位置,镜头到二维码距离;

yaw:安装角度,右手坐标系下朝向角,如小车模型中坐标(不清楚 PGV 朝向时,可将二维码 x 方向与车体 x 方向对齐,并使其位于 PGV 视野中,读取此时 PGV 返回的角度(为弧度制,注意转换),取相反数填入模型文件);

upside:是否正装,所配置位置引导视觉系统的安装位置是否为正装,若正装则勾选该项,反装则不勾选;

xUnit:x 单位,PGV  返回  X  数值单位,换算为 m 需要乘的系数;可通过查看 PGV 使用说明书方式获得;

xRange:X 方向范围,PGV 能看到的 X 方向的范围,单位为 m,请根据实际情况进行填写;

yUnit:y单位,PGV 返回 Y 数值单位,换算为 m 需要乘的系数;可通过查看 PGV 使用说明书方式获得;

yRange:Y 方向范围,PGV 能看到的 Y 方向的范围,单位为 m,请根据实际情况进行填写;

angleUnit:角度单位,PGV 返回角度信息的单位,换算为"°"时的单位;

然后是 func 下面的参数:

adjust:调整,AGV 到达目标点,会根据二维码的位置做调整;

localization:定位;

adjust Localization:调整加定位;

最后是 brand 下面的参数:

P+F-R4-485:品牌名称,已适配可选用品牌;

MS-PGV-485:品牌名称,已适配可选用品牌;

# 相关报警及 FAQ

"55503": "rbk_pgv_loc is not activated",pgv 没有启用;

"54070": "PGV cannot find codes",pgv 没有识别到二维码;

"52127": "PGV connection error",pgv 连接错误;

"52128": "PGV info with mismatched device id",pgv 与设备 id 不匹配。