上一篇博客介绍了HRMRP机器人平台的设计,基于该平台,可以完成丰富的机器人应用,以较为典型的机器人导航为例,如何使用HRMRP来完成相应的功能?本篇博客将详细介绍如何将HRMRP应用到实际的应用当中。
1. 系统架构
ROS作为一个分布式框架,从微观的角度讲,分布式体现在节点的布局和配置上,而从宏观的角度来讲,这种分布式可以体现在多机器人、多主机集成的系统当中。ROS社区中针对多机器人系统并没有很多的涉及,相关应用也比较少。在HRMRP机器人的基础上,我们试图去提出一种多机器人实现的框架,如下图所示:
2. Server (服务器)
由于机器人架构多种多样,处理应用的能力也各不相同,在不同场合下的需求也有差异,我们设计了服务器层来提高机器人应用的计算能力,负责调度、分配多机器人应用中的任务,同时为用户提供友好、易用的人机交互界面。
分布的机器人节点与服务器都采用ROS框架设计,使用无线网络通讯,可以快速集成ROS社区中丰富的应用功能。在多机器人系统当中,通过机器人之间的信息共享和与任务协作,可以让每个机器人在充分发挥自己的能力的同时,获得更多额外的应用潜力。
3. Robot Node(机器人节点)
机器人节点是应用的执行者与信息的采集者。在该系统中可以集成多种采用ROS框架的机器人,这里以我们设计的HRMRP机器人平台为例,上一篇博客中已经进行了详细的介绍。
4. 机器人导航
HRMRP机器人平台采用嵌入式系统作为主控,对于机器人导航等复杂算法的处理能力有限,于是我们将应用的处理在服务器端实现,机器人将采集到的周围环境信息和自身传感器信息发布,由服务器订阅消息并完成处理和显示,再向下发布控制指令。
数据的处理流程如下:
SLAM的效果如下:
5. 多机器人实验
当然,该系统对多机器人的支持也是很好的,由于时间有限,我们只做了一个简单的机器人跟随实验。该实验使用了两个机器人,除HRMRP机器人之外,还使用树莓派制作了一个简单的小型机器人。在实验中,HRMRP机器人在地图上自主导航前进,服务器负责应用的处理与显示,同时将HRMRP的位置信息转发给树莓派机器人,树莓派机器人收到信息后,紧跟HRMRP。
实验效果如下:
6.相关论文
评论列表(15条)
古月大神,你好,我想请问一下,目前我有一个EAI的机器人平台,但是我对你如何实现你上面的导航实验不太清楚,你是将SLAM算法直接导上去的吗?
看一下ROS导航的框架,需要采集机器人的里程计和传感器信息,然后使用gmapping等SLAM功能包建图,再用move_base做导航,输出控制指令到机器人完成运动。
谢谢,我先去做一下这个,希望以后还能得到你的指导
[ERROR] [1465213578.533371656]: Exception thrown while opening Hokuyo.
timeout reached (in hokuyo::laser::laserReadline) You may find further details at http://www.ros.org/wiki/hokuyo_node/Troubleshooting
而且 我在用hokuyo_node的时候他一直这么报错
http://www.ros.org/wiki/hokuyo_node/Troubleshooting
这个链接里面有没有对应报错的处理方法?
你好 古月大大 我现在有两台kobuki 一个用激光导航 一个用摄像头导航 要怎么才能实现多机器人组合导航
多机器人组合导航的实现我在一些论文里看到过,但是如何使用ROS实现我也不太清楚
@古月,你好,请问Server和Robot Node之间如何进行通信,该如何做相关的配置能是两者进行通信,多谢?
@古月,已经找到相关的wiki了:http://wiki.ros.org/ROS/Tutorials/MultipleMachines
但是目前还有个疑问,看说明应该是只能有一台master上运行roscore,其他的node订阅、发布消息,即Server和Robot Node的关系是一对多的关系。但是看你上图中server中包含SLAM、Location、Motion Control等,请问下这些服务是运行在同一台server机器中吗,如果不是,如何实现Server和Robot Node多对多的关系呢?
你好,roscore只能有一个,server上的SLAM、Location等也都是相应的节点,利用ROS分布式的特性,节点可以很灵活的分布。
大神,请问你做迷宫的材料是什么?
KT板,就是一般的广告版材料
谢谢!
古月大神,有没有object recognition kitchen方面的经验,求交流1126159139@qq.com
你好,我只接触过wik上i的案例,了解的并不多,如果有这方面问题,推荐在群里或者ros answers上问一下