第3章 建图与导航

3.1 系统介绍

导航系统工作流程:

  1. 在图传遥控模式下,操作人员遥控设备环绕运动区域移动,建立机器人可以理解的地图。

  2. 利用控制软件在步骤1中建立的导航地图上手工规划绘制机器人导航路线(也可以不绘制路线)、设置目标点。

  3. 制定路径和目标点后,启动导航服务,选择目标点后机器人开始沿着步骤2中规划的轨迹自主移动(或自主规划最短路径),自动的向目标点移动。

3.2 地图的建立

根据第二章的操作打开遥控图传后,设置底盘移动速度为20%左右,点击主界面上的“开始建图”按钮,等待程序启动。

nav-1

打开视觉系统输出画面

nav-2

如果是摄像头或混合模式建图还可以打开特征点图像,激光雷达建图则没有特征点图像

nav-3

遥控机器人向前直线运动,直到视觉系统初始化成功,激光雷达和混合模式建图没有初始化过程可以跳过

nav-4

现在建图系统已经启动完成、开始遥控机器人在运动区域移动,遥控过程中尽量避免纯转动,只按左转或右转建图精度更差(建图模式下系统默认禁用了原地旋转,结束建图会自动解锁原地旋转),请按住前进键的同时按左转或右转键,使机器人沿大半径轨迹转弯。

遥控过程中,请确保主界面中的视觉指示状态为“追踪中”,一旦变成红色的“丢失”,请遥控机器人回退到上一段正常状态的地方,回退过程必须使用后退按键,保证机器人朝向、视角不变。在建图过程中要注意左下角追踪点数,追踪点数越多,建图质量越好。如果追踪点数较少可以降低机器人速度,来回移动。

遥控过程中视觉指示状态如果出现“闭环优化中”,请暂时不要操作机器人。当机器人走过的路径形成了一个圈时,机器人会自动的优化之前建立的地图,这样会极大的提高地图质量。因此在建图过程中可以遥控机器人多次走闭合的路径,这样会建立出更加精确的地图。建图的质量会极大的影响之后导航的效果。

建图过程可以后退,也可以纯后退方式建图。

一般比较好的建图方式,以下面的餐厅布局为例

建图示例

两侧为过道,中间是桌子。我们可以遥控机器人按照红色路线首先顺时针转一圈。在客户端提示闭环优化完成之后再逆时针转一圈(如果机器人是双摄像头建图模式,可以直接后退再转一圈,不用掉头),同样也需要闭环优化完成(双摄像头建图模式第二圈可以不用闭环)。这样就能获取到比较好的建图效果。

注意建图的质量会极大的影响之后导航的效果。

当机器人已经浏览整个运动区域后,停止移动,点击主界面上的“保存地图”按钮,等待弹出保存对话框。在对话框中输入地图名称,然后点击确定。等待地图载入完成。

nav_5

地图载入完成后可以看到刚才建立地图的大致效果。如果感觉比较满意可以点击结束建图按钮。这样建图部分就完成了。

二维码建图的注意事项

使用二维码建图,首先要把二维码贴在建图环境中。二维码要保证贴在机器人最终运动的路线上。直线路径上二维码大致相距2-3米贴一个,如果是长条形二维码则把长边方向垂直于机器人运动路径。在机器人拐弯的地方也要贴上二维码。二维码的贴法可以参考下图。

二维码贴法

图中红线是机器人需要运动的路径,两个方形的框为二维码。对于长条形二维码注意要把二维码长的一边垂直于机器人运行路径。二维码不要贴在拐点,而是贴在拐点的前面和后面1米左右处。这样机器人在入弯和出弯的时候都能识别到二维码。

注意二维码是有方向的,在需要精准对接的场景。合理的设置二维码贴的方向可以让后续的设置更加简单。二维码的方向如下图所示,以二维码上面的字为准。

二维码方向

对于需要精准对接的位置,不要在最终的对接位置贴二维码。因为机器人扫描到二维码的时候会进行位置修正,此时机器人可能会小范围旋转和移动。如果在最终位置贴二维码,机器人会在最终位置进行位置修正,而大部分情况下最终位置是禁止旋转和移动的。比如需要对接生产线,如果最终位置旋转极有可能会撞到生产线。在最终位置的前面贴二维码,这样机器人就会在最终位置前面进行位置修正。

二维码对接

如上图所示的对接过程。其中红色直线为机器人实际行走的路线。黑色的粗线框是生产线。黑色的细线框是机器人的最终对接位置。具体的二维码贴法可以参照上图。机器人导航的时候会先移动到对接位置前面的二维码位置。然后再通过自动化功能局部移动到最终位置。这样就可以保证最终对接位置的准确性。

在建图过程中要保证机器人经过所贴的二维码。建图时可以通过客户端查看底部摄像头图像。当二维码被成功识别后,图像中会出现二维码的彩色边框图像。如下图所示。

二维码识别

注意二维码的识别率会非常影响最后导航的稳定性。在建图时要注意二维码的识别情况。

贴二维码的位置附近地面上不要有其他图案,尽量保证纯色背景。否则可能会影响识别效率。

本节完整演示视频:

3.3 导航轨迹绘制和目标点设置

打开控制端软件,点击“未连接”按钮与底盘建立连接,点击主界面上的“绘制导航地图”按钮打开导航路径编辑界面。

nav-6

加载成功后,软件界面类似下图

nav-8

3.3.a 绘制导航轨迹

导航轨迹就是你想要机器人行走的路径。点击主界面上的“开始导航”后,机器人就会按照你画的路径进行移动,机器人移动过程中遇到障碍物可以自行绕开再回到路线上继续行使。 如果不绘制导航轨迹,机器人将完全通过地图轮廓和虚拟墙按最短距离原则进行路径规划,这种方式很轻松灵活,但更不安全,推荐尽量采用绘制导航轨迹的方式导航。 导航轨迹即可以手动绘制也可以通过“载入机器人轨迹”这个按钮自动生成。下面介绍一下路径绘图工具的使用方法。

  • nav-9 1. 基本操作

    基本操作包括平移和缩放。鼠标左键拖动地图可以实现地图的平移。鼠标滚轴前后滚动可以实现地图的缩放,这在绘制路径的过程中非常的有用。对于对运动要求比较细致的地方可以放大后进行绘图。

  • nav-10 2. 铅笔工具

    点击左侧工具栏里的铅笔一样的图标。这就是直线工具。鼠标左键点击图上任意一点,然后移动鼠标就会出现一条红色直线。移动鼠标到想要的终止位置,再次点击鼠标左键,一条直线就绘制完成了。如果想要画一条前后相连的折线构成的曲线,可以在绘制当前直线终止位置时连续点击鼠标两次就会自动继续下一段直线。

  • nav-11 3. 橡皮擦工具

    点击左侧工具栏中的橡皮擦工具,然后按下鼠标左键进行拖动就可以擦除之前绘制的点。橡皮擦的擦出范围很小,删除操作推荐使用下面的删除工具。

  • nav-12 4. 曲线工具

    点击左侧曲线工具,在曲线的起始点点击鼠标左键,然后在曲线的中间的再次点击一次鼠标左键,最后在曲线的结束点点击鼠标左键。这样一条曲线就绘制完成了。

  • nav-13 5. 删除工具

    如果想要大范围的删除之前绘制的点,那么就可以利用这个删除工具。点击左侧的删除工具然后鼠标左键点击删除的起始点,可以看到在鼠标的移动过程中有一个矩形一直在跟随。再次点击鼠标左键就可以删除矩形选中的范围。

利用这几个工具就可以绘制出机器人的导航路线了。注意要尽量沿着原有的轨迹进行来画线(蓝点),这样可以保证在运动过程中路线是畅通的。从绿色的地图点可以大致看出地形,根据这些信息画出运动所范围允许的点。对于服务机器人模式轨迹是连通的就可以了。

nav-14

3.3.b 设置虚拟墙和清除地图障碍物

机器人如果开启了绕行模式,或者没有绘制导航轨迹,我们需要通过虚拟墙来限制机器人的移动范围,提高安全性。注意虚拟墙不会限制手动绘制的红线导航轨迹(导航轨迹有最高通行权限,会覆盖虚拟墙)。因此如果不想机器人进入某个区域,除了要绘制虚拟墙,这个区域手动绘制的红线导航轨迹也要擦除。

  • nav-b-1 1. 忽略障碍物

    建图过程中,行人和移动障碍物可能会被记录到地图中,用这个工具遮挡可以表示忽略当前位置地图障碍物信息,用橡皮擦工具可以删除。

  • nav-b-2 2. 虚拟墙

    在地图中增加障碍物信息,类似直线工具一样操作绘制虚拟墙,用橡皮擦工具可以删除。

    nav-b-3

3.3.c 设置目标点位置和角度

对于服务机器人的应用场景。机器人需要在几个固定的位置间来回走动。比如从厨房走至一号桌,然后返回厨房走向二号桌等等。下面的工作就是在上面绘制的路线上标出各个目标点的位置。之后我们可以通过发送对应的目标点给机器人,然后让机器人自动的走到目标点。

点击nav-15激活导航目标点插入工具,在导航路线上依次点击插入导航目标点。同样可以利用橡皮擦和删除工具来删除导航目标点。

nav-16

在下方的当前选中的导航点中输入对应的目标点序号,对应的目标点会在图中显示绿色。通过这种方式我们可以知道每个目标点的序号。注意在送餐机器人模式中0号点对应着后厨位置。

qr4.png

对于需要精确设置目标点位置和角度的情况,我们可以通过通过右侧的对齐到二维码和对齐到当前位置两个按钮。首先选中需要设置的目标点,当点击对齐到二维码按钮时,此目标点会自动对齐到最近的二维码位置。当点击对齐到当前位置按钮时,此目标点会自动对齐到当前机器人的位置。这样就可以很方便的设置目标点的位置和角度。

在建图时如果成功将二维码保存到地图中,地图上会在二维码位置显示黑色的矩形。反之如果没有则说明二维码没有被成功保存。

nav-100

3.3.d 保存上传导航路线

点击界面上的“保存路径”按钮,输入文件名,点击“保存”即可。

nav-17

nav-18

本节完整演示视频:

3.4 导航服务的开启与关闭

打开控制端软件,点击“未连接”按钮与底盘建立连接。等待地图下载完成,客户端自动加载上几节绘制的导航地图和路径站点。

nav-19

nav-21

nav-22

将机器人遥控到能够追踪的位置,机器人必须在导航路线上,且机器人朝向必须和建图时的朝向一致。

点击“开始导航”按钮即开始导航服务,程序载入完成机器人开始自主移动,同时界面中指示机器人位置的蓝色块开始同步更新。

nav-23

nav-23-1

nav-23-2

如果想停止导航服务,直接点击“停止服务”按钮。

如果机器人在开启导航后在原地旋转。此时机器人正常尝试初始化定位。如果一直旋转这说明机器人定位失败,导致的原因可能是一下几个:

  1. 机器人未处在之前建图范围
  2. 机器人周围环境相对于之前建图时发生了较大变化。比如光照变化,物体移动等等。此时需要更新地图。可以参照后续更新地图的操作说明。
  3. 如果是纯二维码导航,机器人无法自动初始化,需要手动遥控到二维码位置。

当机器人自动初始化失败时我们也可以手动初始化机器人。首先遥控机器人到地图中的某个已添加的目标点位置。注意要保证机器人位置和角度都和这个目标点一致。如果之前地图中已经添加充电桩位置,可以遥控机器人到充电桩前面同时保证机器人后摄像头能看到充电桩二维码。在开始导航时,把初始位置的自动选择成机器人当前所在的目标点。如果在充电桩前面则选择充电桩。此时机器人就会初始化成功。

本节完整演示视频:

紧急无法控制情况下,请手动按 下车盘上的红色开关,使小车急停

3.5 地图的管理与更新

在地图管理控制面板我们提供了地图的管理功能,包括地图的删除,更新和另存为。

nav-24

3.5.1 更新地图

在实际的使用中,可能环境变化比较大,导致以前建的地图无法再继续追踪。这时候可以使用更新地图功能。首先在左侧菜单选择要更新的地图,点击更新地图按钮。

nav-25

nav-26

开启更新之后可能机器人无法追踪。这时候可以遥控机器人到环境变化不大的地方,使得机器人可以追踪环境。如果机器人仍然无法初始化,可以参照上面的手动初始化方法完成初始化。之后的操作和建图的过程一样。当更新完成后,首先点击另存为。然后输入新地图的名称等待保存完成。如果觉得新地图的质量不错,那么可以点击结束更新,停止地图更新程序。在地图下拉菜单中可以看到新更新的地图。之后就可以用新地图去导航了。

除了手动遥控更新我们也可以在机器人导航时自动更新。首先开启导航,保证机器人能正常导航追踪。在地图管理中点击更新地图。此时向机器人发导航任务,机器人会自动移动到目标点,同时更新地图。更新完成后点击地图管理中的另存为。输入新地图名称,点击保存。之后就可以用新地图去导航了。

nav-27

3.5.2 删除地图

在第一个下拉菜单中选择地图名称。点击右侧的删除按钮即可删除地图。

3.6 多地图导航

只有6.1.2及以上版本才支持此功能。对于大于5.0版本的机器人可以直接通过在线升级,更新此功能

以上的导航方式全部都是在一个地图里面。实际使用中很多情况下我们需要机器人在不同的地图间进行导航。比如大厅一个地图,走廊一个地图,现在机器人在走廊导航,我们就可以直接发大厅的位置给机器人,然后让它自己走过去,并切换地图到大厅。又比如,在工厂的应用场景下,我们有很多个仓库。把所有仓库一次性全部建图是非常麻烦的事情。我们就可以针对每个仓库创建一个地图。然后导航时使用所有的这些地图,机器人根据需要自动进行切换。又比如针对多楼层的情况,我们可以对每一层环境创建一个地图,机器人会在导航中自动切换对应楼层的地图。

多地图导航使得地图的维护更加方便。我们可以轻松的对地图进行扩展。同时也变相的解除了地图大小的限制,理论上地图现在可以无限扩展下去。下面具体介绍如何使用多地图导航。

创建各区域地图

首先我们需要创建各个区域的独立地图。同时各个区域相连的部分也都要包含进地图内。下面是一个具体的例子

地图1 地图2

第一个地图是一个比较大的地图。图一左下角的走廊和地图二的走廊是一个地方。两个地图都包含了连接区域。

然后分别在两个地图中绘制导航路径和导航目标点。保证两个地图可以独立的进行导航。

添加地图连接信息

地图的连接信息即,分别在两个地图中添加一个导航点。然后告诉机器人这两个点之间有什么关系。机器人就会自动根据连接信息采取相应动作。

遥控机器人进入地图交叠区域。并选择合适位置停下。在客户端载入第一个地图,然后进入绘制地图界面。点击客户端左侧一排按钮中的开启导航按钮。此时按钮会显示一个睁开的眼睛图标,表示机器人导航已经启动。机器人位置会实时显示在地图上。调整好机器人位置,并点击左侧按钮中的插入导航点按钮。此时客户端或自动在机器人当前所在位置插入一个导航点。导航点插入完成后,点击最下方的保存路径按钮。输入对应的路径名称,点击保存。记下当前的地图名称,路径名称,导航点序号,之后会用到。

添加切换点

如此时的地图名称为map5,路径名称为path3,点的序号是11。就是上图中左下角的那个导航点。

现在退出地图编辑界面,然后载入第二个地图。然后再次进入绘制地图界面。注意整个过程中不要移动机器人。我们的目的是添加两个点对应于同一个位置。通过这种方式把地图连接起来。如果移动了机器人就会产生误差。同样点击左侧一排按钮中的开启视觉按钮,等待按钮的眼睛睁开。此时地图上会显示当前机器人位置。同样我们点击插入导航点按钮,在当前机器人位置处添加导航点。然后保存当前路径。

路径保存完成之后在右侧导航点属性面板中

导航点属性面板

选择最下面的到地图导航选项,此时面板会增加多地图设置选项

多地图选项

连接地图,连接路径,连接点就是之前记下的地图,路径,导航点信息。

连接方式就是当前这个点和现在选择的这个点之间的关系。不同的关系机器人会采取不同的动作。目前支持下面几种连接方式。

类型 说明
直连 机器人会从当前地图先导航到切换点,然后在切换点位置切换地图。然后继续导航到目标位置
流畅直连 机器人会自动从当前地图导航到切换点附近(默认1m范围),然后切换地图,接着继续导航到目标位置。相比于直连方式流畅直连方式切换更加顺滑,基本感觉不到切换过程。这个也是比较推荐的方式

是否可用表示当前这个连接是否处于可用状态,可用用于连接的临时禁用。

设置好连接相关信息,点击保存即可。此时地图设置部分就已经完成了。

开始导航

首先我们在其中的一个地图开启导航,导航控制栏如下图所示

导航控制栏

选择最左侧的跨地图导航选项

导航控制栏会切换成多地图导航状态,如下图所示

多地图导航

选择好对应的地图,导航路径和目标点,点击开始机器人就会自动导航到目标点了

导航演示视频

RTK导航的使用

对于使用卫星定位导航方式操作与上面的流程基本一致,但是需要注意以下几点:

  1. 在开始建图和导航之前需要先启动RTK基站。RTK基站外形为一个长杆和一个蘑菇头天线。长按蘑菇头下的开机按键等待红灯亮起完成开机。之后在微信小程序中搜索全方。在小程序中连接RTK基站。等待基站各项数据准备完成。 RTK-1

  2. 基站每次重新开机都要重启机器人之后RTK才能正常工作。

  3. 在机器人设置界面选择RTK建图模式。开始建图前保证机器人的位置离基站不要太远。在主界面中点击开始建图,之后的建图操作和上面的流程一致。如果出现一直无法初始化的情况,首先检查基站各个参数是否已经准备好。是否有遮挡,影响卫星信号。如果等待2分钟后仍然无法初始化,可以尝试重新启动机器人。

  4. RTK基站关机也是长按蘑菇头下的开机按键。等待红灯熄灭即可。

二维码精准对接设置

对于二维码精准对接场景,设置路径时需要注意以下几点:

首先在建图之前要规划好机器人的运动路线。按照之前的说明,合理的在路线上贴上二维码。在建图过程中保证机器人扫到所有的二维码。地图保存后,可以在地图上看到二维码的位置。如果没有看到二维码的标记,说明二维码没有被成功保存。需要在对应位置更新地图。

然后在绘制路径时,保证绘制的红色路径都经过地图上的二维码标记。

在目标点对接位置前面贴二维码。和之前的文档说明一样。

对接点设置

在目标点设置方面,首先在对接点之前的位置设置一个目标点。设置时可以使用对齐到二维码按钮,保证这个目标点在二维码上。也可以遥控机器人到二维码上,然后使用对齐到当前位置选项。注意这个目标点的角度要和最终对接位置的角度一样,这样机器人就移动到最终对接位置就不需要额外的旋转。对接点前的目标点设置完成后遥控机器人到最终的对接位置上,然后在最终对接位置添加一个目标点。注意要在开启导航的情况下,根据机器人当前位置添加这个点。保证移动到这个目标点之前机器人扫到了对接位置前的二维码,并且没有扫到其他的二维码。

设置完目标点后我们需要再额外添加一个自动化任务。假设对接位置点的序号为1,对接位置前的点序号为0。自动化任务如下图所示

自动化任务

可以看到在到达0号点后,机器人会通过局部移动移动到1号点。 如果机器人在对接位置有顶升操作之类的也可以添加进去。具体设置可以参考自动化里面的例子和模板。

这样如果我们想要机器人对接生产线,只需要像机器人发0号点(对接位置前的点)的导航任务即可。

results matching ""

    No results matching ""