Slamware建图系统使用说明
1.背景说明
当前服务型机器人在使用自动定位和导航功能前我们通常先给机器人设置一张反映真实环境的地图。而这张地图依赖于我们人工控制机器人在所使用的环境中有规则的行走,并通过机器人身上的眼睛(雷达)和小脑(软件算法)以及结合相关软件工具而生成。
因为地图的好坏能直接影响机器人在环境中的定位和导航能力,所以事先按照指定的方法建立一张符合要求的地图事关重要。
机器人运行的环境按照使用面积来划分有大有小。通常家用场景一般面积不超过200平米,普通超市的面积有上千平米,但在大商场比如居然之家、红星美凯龙等,一层楼的面积有上万平米。对于家用场景,因为面积小环境也不复杂,建图时使用普通的软件算法也能应对。但对于大超市或者大商场面积有上千平米的环境,普通的软件算法暴漏了一些问题,比如建出来的地图部分区域有重影、错位、扭曲和环形区域不闭合等。为了应对在大面积的环境建图,思岚优化了软件算法和强化了建图引擎,使得在复杂和大面积的场景下也能顺利快速的建出完美的地图。
思岚建图优化引擎引入了回环检测和闭环机制,用户在使用建图系统时需要按照本文档的注意事项和扫图技巧操作。
Slamware图优化系统特定及建图技巧视频:
2.简介
本文档旨在说明如何在测试和部署环节使用思岚建图系统建图,在使用过程中需要注意的事项和遵循的规则。适用于测试和现场部署人员查看。
3.建图系统组成
思岚建图系统由三部分组成:
1. 控制端
2. 移动端
3. 建图中心
控制端指移动设备和Robostudio软件,移动设备可以是PC机、手机或者PAD,Robostudio运行在移动设备之上,负责控制机器人移动以及显示地图数据。
移动端指机器人,机器人具有移动能力,比如通过电机和轮子前后左右移动。
建图中心指slamware core硬件模块及slamware软件。建图中心一般存在和运行于机器人身上,负责接收和响应控制端的命令,并将部分命令下发给移动端,以及将地图数据传输给控制端,由控制端呈现地图。从而建图中心也是连接控制端和移动端的桥梁,控制端和移动端通过wifi或者以太网方式与建图中心建立连接,三者关系如下图所示。思岚建图优化引擎是slamware软件的一部分,具有实时存储和纠正地图数据的能力。在建图的过程中地图数据始终存在于建图中心或者说移动端内存里,控制端与建图中心断开连接时地图数据不会丢失,在移动端没有断电的情况下地图数据不会丢失。
4.环境准备
在建图前请准备以下工具和设备:
- Windows系统笔记本电脑一台。要求电脑有无线网卡,能连接wifi热点和有屏幕显示设备。
- 在电脑上下载和安装Robostudio工具。下载地址http://www.slamtec.com/cn/Support#slamware
- 能移动和行走的机器人,机器人安装有雷达以及思岚的slamware core硬件模块。
5.雷达
5.1雷达作用
对于使用激光雷达做导航避障的机器人,雷达相当于机器人的眼睛。在建图的过程中,我们需要依靠雷达来建立地图,地图是建图系统通过处理雷达扫描到的环境数据而生成的数据文件。而且在机器自主导航的过程中,我们同样依赖雷达实时扫描的数据来定位和避障以及行走。
雷达获取数据的原理很简单。如下图所示,雷达工作时会快速的往外发射激光,激光遇到障碍物时会反射回来,雷达接收到反射回来的激光数据后,通过光速以及发射接收的时间差以及空间关系的计算后能得到激光与障碍物之间的距离。因为雷达可以360度旋转(机器人不一定是360度视野)工作,所以它能扫描到周围环境的距离信息。对于当前我们使用的单线雷达来说,我们通常所说的地图是指:在雷达高度雷达所扫描到的平面信息。
如果雷达工作异常,机器人建图、导航、定位都会发生异常。所以我们在使用建图系统时,务必首先确认雷达是否工作正常。确认雷达是否工作正常的方法是:控制机器人在一睹墙壁前移动,在不同的距离点(比如5米、10米等)测量雷达给出的距离值和实际测量值是否有比较大的偏差。以及控制机器人快速前后移动,移动过程中观察雷达扫描出来的直线是否前后吻合。
5.2雷达弱点
激光雷达很难测出透明玻璃、黑色材料以及镜面反射很强的表面材料(比如镜子),所以机器人运行环境中如果在机器人雷达高度上下4cm范围内有上述材料,我们建议贴上玻璃膜。同时我们也要注意,有时候机器人在扫描环境的时候,也能针对透明玻璃或者黑色材料在地图上生成数据,但通常边界都比较模糊或者成散状的点,这是因为这些材料降低了雷达的检出率和分辨率,可能随着扫描重复的次数增多而形成数据,但终究对于机器定位是有影响。
6.机器人连接和建图
以PC端的robostudio为例介绍如何连接机器人和建立全新的地图。
- 在正式建图前请先在场地当中走一走以便提前熟悉现场环境,初步确定机器人行走的路线后再开始以下步骤。
- 机器人上电,PC机搜索机器人的wifi,并连接。Robostudio通过固定IP地址192.168.11.1或者wifi的实际ip地址连接机器人,连接后的界面类似下图所示画面。
- 如果要重新建立全新的地图,请先点击“SLAM”菜单下的“清空地图”按钮,然后通过PC机键盘上的上下左右键控制机器人运动,在运动的过程中,安装于机器人身上的雷达对环境进行扫描,同时建图中心将处理雷达数据并生成地图传送给Robostudio,然后Robostudio实时呈现地图。
注:Robostudio的使用方法请查看《Robotstudio用户手册》
4. 生成的地图上会有三种颜色的数据,具体如下图片所示。
7.建图注意事项
建图过程中建议遵循如下的原则:
• 每次准备建立一张完整的新地图前请点击“清空地图”按钮,否则无法保证建图优化引擎生效。清空地图后“暂停建图”按钮自动没有选上。
• 采用较低的速度,建议小于0.5m/s,速度视当前平台机能而定 。
• 多走产生闭环的环路。
• 环路回到原点后,保持机器人运动,多走重合的路。不可立刻停止移动。
• 环路回到原点后,如地图不闭合,则继续行走,直到闭合为止。
• 对已闭合的区域,避免走老路,降低内存消耗。
• 建图过程中请不要点击“暂停建图“按钮。在完成建图前请不要编辑地图,不要添加虚拟墙、虚拟轨道和不要使用橡皮擦功能,在完成建图后请选上“暂停建图”后再做地图编辑相关操作。
7.1举例说明
多走产生闭环的环路
环路:区域中出现起点和终点重合,而其他部分存在多处因障碍物导致不重合的行走轨迹
回到起点并保持运动
回到起点:机器人的自身位置回到之前出发的同样位置
保持运动:在机器人位置达到重合后,继续沿着先前走过的路径前行一段时间。10秒以上,2米以上
优先走环境较小的环路
较小的环路:环境中包围面积较小的闭合环路
7.2其他
扫图技巧
在扫图的过程中,请尽量不要让机器人走蛇形线、不要倒退,第一遍可以快速的的走一圈让地图闭合。同时请兼顾扫出特征环境,有特征环境的地图数据有利于建图优化引擎识别位置、自身定位以及顺利闭环。特别是在大商场透明玻璃较多的环境下,如果在机器人行进的前方将要路过比较有特征的环境,比如柱子、左右通道、斜着的墙壁等,可以在合适的位置停下来然后向着特征位置原地旋转,等雷达扫出了特征环境后再旋转回来继续前进。但旋转的过程中尽量不要后退。
对于闭环比较困难的某些环形区域,如果尝试让机器人重新路过特征位置处(属于环形区域一部分)将对闭环有很大帮助,并且路过的过程中也可以停下来原地旋转让机器人正对特征位置(即有意识的告诉机器人它之前来过这个地方,现在你又到了这个地方了,有印象不?)。
同步地图
Robostudio与机器人连接之后,在机器人扫图的过程中robostudio将实时从机器人端获取地图数据并显示在robostudio界面上。如果实际环境的面积很大,比如超过上万平米,robostudio实时更新的可能只是整张地图的当前区域,之前显示的区域有可能在机器人端已经经过调整和纠正,从而可能与当前区域不衔接或者出现不闭环的情况。
因为存在上述情况的可能性,我们建议用户在每次走过环路的重合区域后可以尝试如下图片中所示的“同步地图”功能用于更新地图,消除robostudio地图上部分区域错位和不闭环的假象。
同步地图前 同步地图后
地图完善
当整个环境基本的地图轮廓建立完成,并且判断各个区域没有出现无法闭环、错位等情况后请保存地图数据(例如stcm文件),然后请继续控制机器人行走完善地图。完善地图的过程中以扩充环境细节或者将代表空旷地区的灰色数据扫白为目的,可以按照需要控制机器行走,不必太拘泥上面提到的规则。地图完善之后保存地图文件作为最终使用的地图。
我们以如下地图举例说明。首先按照闭环原则,我们应该先在圆环区域走一圈,在走圆环的时候机器人不能来回旋转或者倒退。比如圆环区域内部有四个小正方形,在实际环境中是四根柱子,我们按照指导规则走圆环的时候这四根柱子可能只扫出来一两条边,或者初步扫出来是不规则形状。在闭环前我们可以不予理会,等到扫图闭环之后,回过头来我们可以再控制机器人经过柱子周围完善柱子的细节。以及对于周围环境中需要完善细节的物体同样适用。其次对于过道很宽的空旷区域,机器在中间区域行走的时候雷达在单位时间内扫描到的有效数据很少,此时我们可以考虑让机器尽量靠近特征点多的一侧行走,这样雷达在单位时间内扫描到的数据也会增多,当闭环后再回过头来扫描另一侧的环境。最后扫描完后最终的地图尽量不要出现像A区域所示灰色地带,在实际环境中A区域是对应一片空旷区域,因为雷达扫描范围有限,如果控制机器前往A区域,可以将这块区域扫白。
完善地图分如下两种情况:
- 第一次保存完地图文件后继续完善。
- 通过“地图编辑器“加载之前的地图继续完善。
建议只有在万不得已的情况下才使用第二种方式完善地图,因为加载地图后建图优化引擎的优化功能会自动关闭。例如在继续完善地图的过程中发现某些区域发生无法纠正的偏差,然后才加载上次认为OK的地图文件重新完善地图。
第二种情况的操作方法是:点击“地图编辑器”重新加载stcm文件并重定位,重定位成功后继续扫图(此时注意不要打开“暂停建图“功能),如果对新的地图更加满意,保存最终的地图文件。具体步骤:打开”地图编辑器“—>点击”加载文件“,加载保存的stcm文件—>点击”上传到固件“—>关闭”地图编辑“界面—>关闭”暂停建图“—>控制机器人继续扫图—>保存完善后的地图文件。
验证地图
当建图完成后,推荐再验证所建地图质量的好坏。验证的参考方法如下:
- 重启机器,robostudio连接机器,加载所建地图。
- 控制机器行走在各个需要执行导航任务的区域,在机器行走的时候观察robostudio界面右下角上的定位质量的大小,数值越大说明地图越有利于机器定位。同时观察robostudio主界面红色的雷达数据与地图上黑色的边界是否能完全重合,如果不重合,说明所建地图还需优化,不然影响机器定位,有可能导致机器在执行任务的时候失去定位,出现异常。例如如下图所示的地图,虽然机器在执行任务时不会行走到A区域,但机器走在B点附近时,雷达已经扫到了A区域,而地图上A区域信息不完善,将会影响机器定位。
- 建议机器执行任务的路线上,只要是雷达可扫描到的区域都要完善细节。
- 如果验证出来地图某些区域定位质量不够好,对于小面积可以采取下节介绍的地图局部更新功能,如果是大面积清空则重新建图。
地图局部更新
在建图完成某段时间之后,也许环境相较于建图时已经发生局部变化,比如货物堆放的位置移动或者增加、移除等,此种情况我们可以选择局部更新地图的方法来更新地图。如果不更新地图,则存在机器定位偏移或者丢失的可能。
局部更新地图前请先观察环境是如何变化。根据环境变化的种类我们可以分为以下三种情况处理。
- 环境中移除了物体。方法:使用Robostudio工具连接机器后直接在地图上用白色橡皮擦擦掉被移除物体所代表的地图信息,然后编辑和保存地图文件作为新的地图文件使用。
- 环境中增加了物体。方法:使用Robostudio工具连接机器,使能“暂停建图”(即不更新地图),控制机器运动到环境变化的区域,然后关闭“暂停建图”开始更新局部区域,当地图上完全扫出了增加的物体信息后,再次使能“暂停建图”,然后控制机器行走到其他区域,最后编辑和保存地图文件。注意此过程中在关闭“暂停建图”的状态下尽量不要在未变化区域控制机器行走,避免更新到没有变化的区域,以及避免实际未变化区域扫出重影。
- 环境中物体的位置被挪动。方法:在地图上用白色橡皮擦擦掉被挪动物体所代表的原有地图信息,然后按照环境中增加物体的方法更新局部地图。
正确示例如下:
错误示例如下:
危险区域
室内环境中电梯区域对于机器人是比较危险的区域,因为一旦机器进入异常状态走入了电梯将会发生机器坠落的事故。所以对于电梯区域在建图时也要格外看重,比如电梯区域的环境一定扫描清晰和完整,这有利于机器在这片区域进行定位不至于迷失而发生异常行为。
8.示例
8.1大型购物和家居中心扫图
典型的大的家居中心有红星美凯龙、居然之家等,典型购物中心有万达广场、万象城、coco park等。这些中心的环境特点是:每层楼面积大,四周玻璃材料使用多,圆环大。
针对面积大的场景,需要按照先小环后大环的原则扫图。如下图所示。
针对四周玻璃材料使用多的场景,如果是透明不易光反射的玻璃,如果机器人使用的是激光雷达,请在条件允许的情况下在玻璃上于雷达高度贴一层增加光反射的膜纸。以及控制机器人行走的时候趋近于不是玻璃的一侧行走。如下图所示,透明玻璃墙没有贴膜纸,激光雷达收到的激光有效数据点很少,不能形成清晰的边界。在圆环两侧是店铺,有一定数量的实体墙,中间过道超过5米,此时建议靠近店铺一侧行走,并且尽量多的扫出店铺一侧的特征。
针对大圆环的场景,在控制机器人行走的时候请有意识的扫出大圆环路径上的特征环境,比如柱子、墙壁等,特别是在特征点少的情况下,如果直线行走不能扫出全部特征,可以在到达特征区域时停下来左转或者右转一定角度让机器人扫到并形成特征点后再转回来直线行走。如下图所示,圆环直径超过15米,而且从A点到B点的弧形是透光的玻璃墙,在没有贴膜的情况下激光雷达收到的有效数据点很少,不利于闭环。但在红色矩形框内左侧是电梯区域,右侧是圆弧墙壁,此处是很明显的特征点,所以机器人在经过此处时需要有意的扫出这里的全部特征点。在机器人走过一圈在达到矩形区域内时,又看到这些特征点,因为建图优化引擎记忆了之前的特征点,再次回到这里时能纠正之前累积的计算偏差,从而形成有效闭环,不致于形成一个错位的跟环境不符合的圆环。
大商场环境展示:
8.2大超市扫图
典型的大超市有家乐福、沃尔玛、永辉超市等,这些大超市的环境特点是:宽度一两米左右的长方形货架多,货架四周都有通道,货架自身能形成小圆环,多个货架之家又能形成大一点的圆环。如下图为家乐福超市环境扫出的地图。
面对这种小圆环众多的环境,如果严格按照先小环后大环的方法建图,势必工作量会很大,为了减轻工作量,我们也可以挑选几组小圆环组成一个稍大的圆环,等稍大的圆环闭环后再扫出稍大圆环内部的货架的地形。也可以通过不同的稍大圆环组合而覆盖大部分货架。
大超市环境展示: