ROS探索总结(十七)—— 构建完整的机器人应用系统

18650
15
2016年2月19日 23时19分
       上一篇博客介绍了HRMRP机器人平台的设计,基于该平台,可以完成丰富的机器人应用,以较为典型的机器人导航为例,如何使用HRMRP来完成相应的功能?本篇博客将详细介绍如何将HRMRP应用到实际的应用当中。

       1. 系统架构

       ROS作为一个分布式框架,从微观的角度讲,分布式体现在节点的布局和配置上,而从宏观的角度来讲,这种分布式可以体现在多机器人、多主机集成的系统当中。ROS社区中针对多机器人系统并没有很多的涉及,相关应用也比较少。在HRMRP机器人的基础上,我们试图去提出一种多机器人实现的框架,如下图所示:
1

       2. Server (服务器)

       由于机器人架构多种多样,处理应用的能力也各不相同,在不同场合下的需求也有差异,我们设计了服务器层来提高机器人应用的计算能力,负责调度、分配多机器人应用中的任务,同时为用户提供友好、易用的人机交互界面。
       分布的机器人节点与服务器都采用ROS框架设计,使用无线网络通讯,可以快速集成ROS社区中丰富的应用功能。在多机器人系统当中,通过机器人之间的信息共享和与任务协作,可以让每个机器人在充分发挥自己的能力的同时,获得更多额外的应用潜力。
     

        3. Robot Node(机器人节点)

       机器人节点是应用的执行者与信息的采集者。在该系统中可以集成多种采用ROS框架的机器人,这里以我们设计的HRMRP机器人平台为例,上一篇博客中已经进行了详细的介绍。

        4. 机器人导航

        HRMRP机器人平台采用嵌入式系统作为主控,对于机器人导航等复杂算法的处理能力有限,于是我们将应用的处理在服务器端实现,机器人将采集到的周围环境信息和自身传感器信息发布,由服务器订阅消息并完成处理和显示,再向下发布控制指令。
        数据的处理流程如下:
2

 

        SLAM的效果如下:
3

        导航效果如下:

4
    

       5. 多机器人实验

       当然,该系统对多机器人的支持也是很好的,由于时间有限,我们只做了一个简单的机器人跟随实验。该实验使用了两个机器人,除HRMRP机器人之外,还使用树莓派制作了一个简单的小型机器人。在实验中,HRMRP机器人在地图上自主导航前进,服务器负责应用的处理与显示,同时将HRMRP的位置信息转发给树莓派机器人,树莓派机器人收到信息后,紧跟HRMRP。
       实验效果如下:
5

     

      6.相关论文

 

 

发表评论

后才能评论

评论列表(15条)

  • 2017年6月21日 上午11:45

    古月大神,你好,我想请问一下,目前我有一个EAI的机器人平台,但是我对你如何实现你上面的导航实验不太清楚,你是将SLAM算法直接导上去的吗?

    • 古月 回复 2017年6月21日 下午2:14

      看一下ROS导航的框架,需要采集机器人的里程计和传感器信息,然后使用gmapping等SLAM功能包建图,再用move_base做导航,输出控制指令到机器人完成运动。

    • 梦 回复 古月 2017年6月22日 上午10:18

      谢谢,我先去做一下这个,希望以后还能得到你的指导

  • April 2016年6月6日 下午7:49

    [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的时候他一直这么报错

  • April 2016年6月5日 上午10:51

    你好 古月大大 我现在有两台kobuki 一个用激光导航 一个用摄像头导航 要怎么才能实现多机器人组合导航

    • 古月 回复 April 2016年6月7日 上午10:22

      多机器人组合导航的实现我在一些论文里看到过,但是如何使用ROS实现我也不太清楚

  • maple 2016年5月12日 下午5:50

    @古月,你好,请问Server和Robot Node之间如何进行通信,该如何做相关的配置能是两者进行通信,多谢?

    • maple 回复 maple 2016年5月12日 下午6:07

      @古月,已经找到相关的wiki了:http://wiki.ros.org/ROS/Tutorials/MultipleMachines
      但是目前还有个疑问,看说明应该是只能有一台master上运行roscore,其他的node订阅、发布消息,即Server和Robot Node的关系是一对多的关系。但是看你上图中server中包含SLAM、Location、Motion Control等,请问下这些服务是运行在同一台server机器中吗,如果不是,如何实现Server和Robot Node多对多的关系呢?

    • 古月 回复 maple 2016年5月13日 上午9:18

      你好,roscore只能有一个,server上的SLAM、Location等也都是相应的节点,利用ROS分布式的特性,节点可以很灵活的分布。

  • 麦伟图 2016年4月11日 下午4:03

    大神,请问你做迷宫的材料是什么?

    • 古月 回复 麦伟图 2016年4月11日 下午8:15

      KT板,就是一般的广告版材料

    • 麦伟图 回复 古月 2016年4月15日 下午8:07

      谢谢!

  • 临渊不羡4 2016年3月10日 下午4:07

    古月大神,有没有object recognition kitchen方面的经验,求交流1126159139@qq.com

    • 古月 回复 临渊不羡4 2016年3月10日 下午5:09

      你好,我只接触过wik上i的案例,了解的并不多,如果有这方面问题,推荐在群里或者ros answers上问一下