您的位置:首页 > 移动开发

先锋机器人学习笔记_1-3 2d 建模和 Mapper 地图编辑器

2017-02-05 15:15 399 查看
    Mapper 是地图绘制软件, 它可以把激光测距仪获得的信息(有一定的格式,可以用MobileEyes中获得,也可以用对应的SickLogger函数来获得)自动生成地图,也可以让用户自己手动绘制地图,手动绘制的地图可以直接加载在MobileSim中。通过激光扫描得到的数据被保存到了一个后缀名为“.2d”的文件中,此文件中包含了相关地图绘制的过程。用Mapper打开2d
文件后软件会自动处理2d文件并生成一个新的后缀“.map”文件。处理后的地图文件吕除了地图上的动态点,保留静态点,因此也使地图更加准确。



操作步骤:
1. 打开 MobileSim软件,创建虚拟机器人,并在C:\Program Files\MobileRobots\MobileSim路径下加载columbia.map(默认地图)。 
    自带地图路径为(C:\Program Files\MobileRobots\Aria\maps)
    注意:打开 MobileSim只是为了配合ArnlServer或者sickLogger
等控制台程序做地图的仿真绘制工作。如果机器人配备了激光雷达,就不需要开启MobileSim。MobileSim与机器人工控机COM口不能同时打开,否则会发生冲突而不能建立连接。 

2. 之后就可以开始地图的绘制工作了,如流程图所示,有两种方法可以创建一幅新的地图,
    方法一:打开 ArnlSerer.exe(C:\Program Files\MobileRobots\ARNL\bin)程序连接虚拟机器人。
    Note:注意要右键以管理员权限打开,因此处要对系统文件进行读写操作。
    成功建立连接后再开启 MobileEyes图形化输出软件。从工具栏Tools > Robot Configuration中将地图加载进MobileEyes当中(注意只用输入文件名和后缀,软件就会自动在默认路径下搜索该地图)


    此时可以看到两幅地图中机器人所处的的位置不一样,这时候就需要进行下一步地图的手动匹配工作。

3. 在Tools > Robot tools > Localize to point选择功能来进行匹配,大致方法是将MobileEyes中的机器人移动到与MobileSim当中相近的位置,并且朝向也要大概一致。之后软件便会将机器人当前扫描到的地图与之前Tools
> Robot Configuration中加载的地图进行匹配。之后,会出现一个弹框,显示匹配相似百分比,点击Done完成。 (往任意位置单击是定位到此位置,单击后不松开转动圆圈是调整机器人方向。)

4. 从Tools > Map Creation > Star Scan h和Stop Scan可以记录和保存一份2d
地图。期间可以通过工具栏的“Drive”和“Wander” 来遍历一遍所需区域。 

Note:若无法启动扫描,要注意时刻观察sever.exe命令窗口的状态输出提示。可以看到提示为can not write···,说明权限不够,需要修改对应文件夹的操作权限。



5. 完成后的地图为 2d文件,保存在C:\Program Files\MobileRobots\ARNL\examples之下。双击2d文件便会自动生成新的map文件,需要再保存一次。

6. 生成好的 map地图可以在Mapper上再次进行修改,美化,作为测试地图使用。 以上便是地图建立的基本步骤。

方法二:直接用 sickLogger.exe程序记录地图。
1. 第一步同上,之后打开
sickLogger.exe 程序记录地图,路径为C:\ProgramFiles\MobileRobots\ARNL\bin。

2. 之后可以通过方向键直接控制机器人进行地图扫描。需要注意的是地图会被以默认路径及默认名称保存(C:\Program Files\MobileRobots\ARNL\bin之下的1scans.2d),
可以自行修改文件名称。

3. 之后的步骤便一样了,双击2d文件生成新的map
文件。 
( 可能您会疑问为什么一开始用 MobileSim加载了一幅地图,最后绘制出来的地图为什么还要用MobileSim来加载用作测试?因为条件所限,我们建立的是模拟环境和虚拟机器人。如果机器人装配了SICK激光,便可以略去第一步直接用真实的机器人和激光来绘制地图。
) 

    以上是用机器人来建立地图,当然了也可以通过 Mapper来直接绘制地图,Mapper是一款简单的地图编辑器,用它所制作的地图保存后为map格式,能直接加载到MobileSim当中做测试之用。这样做就不需要用到激光绘图,以上2
– 5步骤便可以略去。 在开发程序或研究算法时,用户可以根据需要自己制作所需场景地图,比较灵活,简便。 不足之处就是Mapper软件功能比较单一,暂时只提供了用线段来绘制障碍物的形式,在制作复杂的场景地图时比较繁琐 。



Mapper 也可用来加载激光绘制的map地图,然后在其基础上进行修改。



常用按键功能 :

Select: 选择一条已经绘制的直线;
Cut: 与 Select功能连用的,删除选中线段;
Eraser: 擦除点/线/区域;
Line: 绘制一条直线(最常用的功能,地图上所有的图形都是根据直线绘制出来的);
Goal: 设置目标点(机器人会在目标点之间自动往返,注意目标点是可以设置机器人朝向的);
Dock: 充电坞(某些型号的先锋机器人配有自动充电坞,在电量低至一定电压时会自动回坞充电,当然了虚拟充电坞的位置需要和实际的相匹配);
Forbidden Line/Area: 禁止线/区域(实际当中不存在的直线,但是机器人在做定位导航时不会触碰到此直线或者区域);
Home Point/Area:初始点区域(点击初始点/区域时,机器人会回到设定好的点/区域);
Snap: 在绘制一些较为规则的区域时可以用到此按键,提供了自动对齐功能,能够轻松画出规则且整齐的线段。

实际演示:

用 Mapper 绘制一幅地图, 保存为“M2.map” 。
Note:此时地图默认存储位置为C:\Users\ws163\AppData\Local\VirtualStore\Program Files\MobileRobots\ARNL\examples ,应将其存储至\Program Files\MobileRobots\ARNL\examples文件夹下。
用 MobileSim 加载机器人和map文件。

打开 ArnlServer 控制台程序与机器人建立连接。
打开 MobileEyes 软件, 在Tools > Robot Configuration当中加载“M2.map”
地图,并选择Tools > Robot Tools > Localize to Point来进行地图匹配。

点击 Tour Goals 按键让机器人在两点间自行往返。

注:蓝色点为激光雷达当前扫描到的障碍物, 浅绿色点为上一时刻扫到的障碍物,墨绿色点为声呐扫描到障碍物的信息。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  机器人 教程 地图
相关文章推荐