ROS之实现多台计算机之间的通讯(所有指令均在台式机上操作)

本篇文章实现多台计算机之间的ROS通讯,笔记本作为master,放在turtlebot机器人上面,所有指令均在台式机上操作。特别要注意的是多台计算机都必须在一个网络中,比如连接同一个路由器即可。在本文中笔记本连接ywifi,台式机通过网线连接路由器。

一、时间同步

在台式机和笔记本上分别运行:

sudo apt-get install chrony

二、获得主机名hostname

1.在笔记本上运行

hostname

得到笔记本的主机名为jenny     如下图所示:


2.同理在台式机上运行hostname得到我台式机的主机名为jennyvv

三、获得台式机和笔记本的IP

1.在笔记本上运行

ifconfig
得到笔记本的IP地址为192.168.1.104

2.同理在台式机上运行ifconfig得到台式机的IP地址为 192.168.1.110

四、修改/etc文件夹下的hosts文件,将两电脑的IP和主机名绑定

首先安装gksu

sudo apt-get install gksu
打开文件
gksu gedit /etc/hosts

以   IP  hostname 的形式添加,如下图所示:

同理在台式机上也要如此操作。

五、修改~/.bashrc文件

本文中将笔记本jenny作为主机master, 通过如下命令编辑~/.bashrc文件

gedit ~/.bashrc
在笔记本这边的~/.bashrc文件最后添加
export ROS_HOSTNAME=jenny
export ROS_MASTER_URI=http://jenny:11311

在台式机上的~/.bashrc文件最后添加

export ROS_HOSTNAME=jennyvv
export ROS_MASTER_URI=http://jenny:11311

六、正式开始通讯

1.相互ping

在笔记本上ping台式机:

ping jennyvv

得到的结果如下:


同时在台式机上运行

ping jenny
得到与上图相似的结果即为通讯成功。

2.小例子:笔记本上发送命令控制台式机上的小海龟作正方形运动,所有指令均在台式机上面操作

A.首先在台式机上面运行ssh进入到笔记本中

ssh jenny

若出现ssh:connect to host jenny port 22: Connect refused

这是因为jenny笔记本上没有安装ssh服务器,通过如下指令安装

sudo apt-get install openssh-server

再次运行ssh jenny,输入密码,当台式机上@后面的主机名由@jennyvv变为@jenny后即为成功。


B.接着在上面那个终端后面运行(此时主机名为@jenny)

roscore &

此时完成了在台式机上控制笔记本运行节点管理器roscore

C.在台式机上的新终端中启动小海龟

rosrun turtlesim turtlesim_node


D.在台式机的新终端中连接笔记本并发送命令令
ssh jenny
rosrun turtlesim draw_square

此时就可以看到小海龟在画正方形的框了。



参考 《ros by example》第一版中的4.12章节

参考链接:https://blog.csdn.net/heyijia0327/article/details/42080641







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章