加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

基于ubuntu的ROS在多机器人上的使用

(2014-06-27 18:48:39)
标签:

it

ros

分类: ROS
     ROS设计的灵魂就在于其分布式计算。一个well-written的节点不需要考虑在哪台机器上运行,它允许实 时分配计算量以最大化的利用系统资源。(有一个特例——驱动节点必须运行在跟硬件设备有物理连接的机器上)。在多个机器人上使用ROS是很简单的一件事, 你只需要记住一下几点:
  • 你只需要一个master,只要在一个机器上运行它就可以了。
  • 所有节点都必须通过配置 ROS_MASTER_URI连接到同一个master。

  • 任意两台机器间任意两端口都必须要有完整的、双向连接的网络。(参考ROS/NetworkSetup).

  • 每台机器都必须向其他机器广播其能够解析的名字。(参考 ROS/NetworkSetup).

 下面开始介绍2台turtlebot如何相互通信:

一,准备工作

      1,准备2台安装了ubuntu+ROS平台的笔记本或者台式机

     2, 一个路由器

     3,turtlebot底盘

  二、设置ubuntu

       将2台笔记本中ubuntu的网络适配器,改成桥接模式(必须先安装好ubuntu虚拟机),这样确保两个ROS系统同在一个网段中(同在局域网中),搭建好局域网。将其中一台作为主机(可以看做服务器),另一台作为从机(客户端)。

三、通信搭建

     为了使主机(服务器)和从机(客户端)能够相互通信,先配置好IP地址,是他们能够在局域网中相互通信。

首先,在 terminal中使用命令:ifconfig  确定两台笔记本的IP,一般会出现以下内容:

http://s2/mw690/003AldHwzy6K0sQGVa1c1&690

   就可以在eth0看到 笔记本的IP为:192.168.1.102(这是单个网卡,如果多个网卡的话,选取其中一个IP地址进行通信就可以)。假设主机的IP是192.168.1.102  ,从机的IP也是通过以上方式查看,假设从机IP地址为192.168.1.103 ,那么我们就可以进行配置了,配置教程官网也给出,其实并不需要那么复杂。对于初学者来说,一下配置和运行测试就可以了。

       1,首先在主机和从机上输入一下命令:

      sudo gedit ~/.bashrc  

     2, 然后在主机的bashrc 文件最后加入一下内容(主机):

          export ROS_MASTER_URI=http://192.168.1.102:11311
           export ROS_IP=192.168.1.102

       这里解释一下:ROS_MASTER_URI是主机IP ,ROS_IP是自己的IP。也就是如果是在当做主机(服务的)的笔记本的bashrc中加,那么ROS_MASTER_URI和ROS_IP的IP地址都是一样的,就是以上内容;如果是在当做从机的笔记本中的bashrc中加,ROS_MASTER_URI是主机IP ,ROS_IP是自己的IP,从机的加入内容如下:

         export ROS_MASTER_URI=http://192.168.1.102:11311
           export ROS_IP=192.168.1.103

 这样保存好,在当做主机(服务器)的笔记本中启动 roscore,如果启动成功,就配置成功了,如果失败,则检查以上步骤是否配置失败。

四、测试

1,在主机中启动roscore,然后启动listener节点:

   rosrun rospy_tutorials listener.py

2,在从机中,直接启动talker节点:

       rosrun rospy_tutorials talker.py

    现在你可以看到主机上的listener正在接收来自机器talker发布的消息:

http://s8/mw690/003AldHwzy6K0ulrEAT47&690

http://s4/mw690/003AldHwzy6K0ulU9V1c3&690


如果出现错误,可能还是配置问题,最好是ping一下两个笔记本的IP地址。


2.测试

从机运行
rostopic pub -r10 /hello std_msgs/String "hello"
主机运行
rostopic echo /hello

http://s10/mw690/003AldHwgy6K1uYsalXd9&690


对于如果多台机器通信问题,如果超过3台通信是否采用这种方式可行,这个我没有测试并不知道,我想应该是没有什么问题的。

      最好特别感谢佘学长的讲解和指导,如果大家有更多问题,可以关注一下佘学长的网站


----------------------------------------------------------------

欢迎大家转载我的文章。

转载请注明:转自听雨轩_Mrfu
博客地址是:http://blog.sina.com.cn/u/3285404150

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有