码迷,mamicode.com
首页 > 其他好文 > 详细

ROS(机器人操作系统) 多台电脑间进行通信

时间:2016-08-15 18:52:02      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

在我看来,ROS最牛逼的地方就是它的通信机制了,不仅仅是进程间通信方便,就连不同设备间通信也很方便,只需添加几行代码,你就可以实现多电脑间的 Topi c共享, 远程控制等功能。下面就让我们一起来实现吧!

这里假设我们有两个电脑:电脑 A 为主机端,电脑 B 为控制端。最终要实现在 A 电脑上运行roscore,并且运行 Turtlesim 程序,然后在 B 电脑上运行键盘控制程序,控制 Turtlesim 小乌龟移动。

首先,查看电脑A和电脑B的 IP 和 Hostname

查看IP,在控制台输入:

$ ifconfig

如果电脑连接的时有线网,则显示结果中,etho 部分的 inet addr 后面就是该电脑的 IP 地址;

如果电脑连接的是无线,则 wlp3s0 部分的 inet addr 后就是 IP 地址

查看 Hostname,在控制台输入:

$ hostname

 

其次,修改hosts文件内容

使用如下指令,分别在电脑A和电脑B的打开 hosts 文件:

$ sudo gedit /etc/hosts

电脑A端的 hosts文件 中添加如下加粗指令:

127.0.0.1       localhost
127.0.1.1         [ hostname_A ]

[IP_A]            [ hostname_A ]
[IP_B]            [ hostname_B ]

***

同理,在电脑B端的 hosts 文件中,加入如下加粗指令:

127.0.0.1       localhost
127.0.1.1         [ hostname_B ]

[IP_B]            [ hostname_B ]
[IP_A]            [ hostname_A ]

***

 

最后,修改 .bashrc 文件

使用如下指令,分别在电脑A和电脑B的打开 .bashrc 文件

$ sudo gedit ~/.bashrc

电脑A端电脑B端打开的 .bashrc 文件的最后一行,加入如下代码:

export ROS_MASTER_URI=http://[hostname_A]:11311

[注意] 此处假设电脑A为主机,如果改成电脑B为主机,则只需要将此步中的 [hostname_A] 改成 [hostname_B] 即可。

 

最最后,运行小乌龟程序

电脑A端:

首先启动 ROS:
$ roscore
然后 Ctrl + T 打开新的控制台,运行: $ rosrun turtlesim turtlesim_node

电脑B端:

$ rosrun turtlesim turtle_teleop_key

 现在,你就可以用电脑 B 控制电脑 A 中的小乌龟尽情遨游啦~\(≧▽≦)/~啦啦啦

ROS(机器人操作系统) 多台电脑间进行通信

标签:

原文地址:http://www.cnblogs.com/liu-fa/p/5773822.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!