简介

ROS是一个分布式计算环境。一个运行中的ROS系统可以包含分布在多台计算机上多个节点。根据系统的配置方式,任何节点可能随时需要与任何其他节点进行通信

准备工作

确保通信的设备处在同一个局域网内,最好采用静态IP地址 ps:如果为虚拟机,需要将网络适配器改为桥接模式

修改配置文件

分别修改不同计算机的 /etc/hosts 文件,在该文件中加入对方的IP地址和计算机名 基本步骤;

  1. 进入/etc目录
cd /etc
  1. 调用sudo修改配置文件
sudo gedit hosts
  1. 在配置文件中加入另一台通信设备的信息 ps:在另一台设备上输入hostname 在配置文件中加入:通信设备的ip地址 通信设备的名称 图1
  1. 重启设备使得配置文件生效
  1. 测试设备能否正常通信

图2

配置.bashrc文件

区分主机和从机:在主机上要启动roscore,而从机不需要

找到.bashrc文件

进入到主目录,在右上角勾选显示隐藏文件 图3

修改配置

打开配置文件进行修改,在文档最后追加代码

  • 主机

    export ROS_MASTER_URI=http://主机IP:11311 export ROS_HOSTNAME=主机IP

  • 从机

    export ROS_MASTER_URI=http://主机IP:11311 export ROS_HOSTNAME=从机IP

生效配置文件

source .bashrc

测试

  1. 主机启动 roscore(必须)
  2. 主机启动订阅节点,从机启动发布节点,测试通信是否正常
  3. 反向测试,主机启动发布节点,从机启动订阅节点,测试通信是否正常
  • 主机

    //启动roscore roscore //启动小乌龟节点 rosrun turtlesim turtlesim_node

  • 从机

    //启动键盘控制节点 rosrun turtlesim turtle_teleop_key

现象

从机操作键盘可以实现对于主机的控制 图5

最后修改:2023 年 11 月 10 日
如果觉得我的文章对你有用,请随意赞赏