当前位置:   article > 正文

ROS中搭建分布式系统 主从机模式_ros 分布式框架 从机代码在哪里运行

ros 分布式框架 从机代码在哪里运行

系统介绍:

机器人端(主机):
设备:工控机sz
主机名:sz-Default-string
固定IP:192.168.5.101
远程PC(从机):
设备:笔记本Dell
主机名:ubuntu
固定IP:192.168.5.2

0.准备工作:

将系统连接在一个局域网下,为了方便不再修改Hosts文件中的绑定域名,在局域网中将机器人端(主机)和远程PC(从机)设置成固定IP。
(在本项目中,机器人端是通过网线与路由器连接;远程PC端通过wifi接入机器人的路由器。 )

1.在hosts文件中配置主从机IP

目的:让两台机器分别认识下对方,以便后面可以进行双向通信。
若PC端为虚拟机,应将网络设置成“桥接模式”。

A:先找到主机、从机的IP与Hostname

在终端输入ifconfig,查看本机IP,如下

sz@sz-Default-string:~$ifconfig
  • 1

可看到下图:在这里插入图片描述
由于本系统中机器人端与自带路由器有线连接(要关毕wifi ,防止接入其他wifi网络,导致找不到IP),所以从enpls0中找到,机器人端IP为:192.168.5.101(这个IP是固定好了的)。
备注:要是是接入wifi网络的,应该从wn中找本机IP。

再查看机器人端的Hostname:
输入命令:hostname

sz@sz-Default-string:~$ hostname
  • 1

看到机器人主机名为:sz-Default-string
在这里插入图片描述
因此,可得知,机器人端的IP和hostname分别为:
IP:192.168.5.101
hostname:sz-Default-string

同理,可得到远程PC(从机)的IP和hostname分别为:
IP:192.168.5.2
hostname:ubuntu

B.配置机器人端(主机)IP和hostname

将机器人端的IP和hostname加入到 /etc/hosts中:

sz@sz-Default-string:~$ sudo vim /etc/hosts
  • 1

在这里插入图片描述
C.配置从机端的IP和hostname

rosfun@ubuntu:~$ sudo vim /etc/hosts
  • 1

在这里插入图片描述
D.测试是否互通
在机器人端输入:

sz@sz-Default-string:~$ ping ubuntu
  • 1

在这里插入图片描述
在笔记本电脑端输入:

rosfun@ubuntu:~$ ping sz-Default-string
  • 1

在这里插入图片描述
至此,这一步骤结束,配置成功。

2.设置ROS_MASTER_URI

URI:URI(Uniform Resource Identifier,统一资源标识符)就是在IMS网络中IMS用户的“名字”,也就是IMS用户的身份标识。
A:机器人端(主机):
输入命令:

sz@sz-Default-string:~$ sudo vim ~/.bashrc
  • 1

在bashrc文件夹中添加:

export Hostname=sz-Default-string
export ROS_MASTER_URI=http://sz-Default-string:11311  
  • 1
  • 2

B.远程笔记本端(从机)
输入命令:

rosfun@ubuntu:~$ sudo vim ~/.bashrc
  • 1

在bashrc文件夹中添加:

export Hostname=ubuntu
export ROS_MASTER_URI=http://sz-Default-string:11311  
  • 1
  • 2

3.测试是否配置成功

机器人端运行:

$ roscore
$ rosrun turtlesim turtlesim_node
  • 1
  • 2

远程笔记本端运行:

$ rosrun turtlesim turtle_teleop_key
  • 1

用PC的键盘可以实现对主机中小乌龟的控制,则多机通信配置正确。

附本人在搭建此过程中遇到的报错和命令需求:
https://blog.csdn.net/Twilightzr/article/details/115582438

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号