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

  • 内容
  • 评论
  • 相关
       上一篇博客介绍了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.相关论文



原创文章,转载请注明: 转载自古月居

本文链接地址: ROS探索总结(十七)——构建完整的机器人应用系统

微信 OR 支付宝 扫描二维码
为本文作者 打个赏
pay_weixinpay_weixin

评论

15条评论
  1. Gravatar 头像

    回复

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

    • 古月

      古月 回复

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

      • Gravatar 头像

        回复

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

  2. Gravatar 头像

    April 回复

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

  3. Gravatar 头像

    April 回复

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

    • 古月

      古月 回复

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

  4. Gravatar 头像

    maple 回复

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

    • Gravatar 头像

      maple 回复

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

      • 古月

        古月 回复

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

  5. Gravatar 头像

    麦伟图 回复

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

  6. Gravatar 头像

    临渊不羡4 回复

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

    • 古月

      古月 回复

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据