一. 主机Master设置

1.安装ssh客服端和服务器(ubuntu已默认安装了)

2.机器名与ip绑定

由于/etc/hosts中需要将计算机名和IP绑定,所有最好设置IP地址为静态地址

sudo nano /etc/hosts

添加Master的ip地址和机器名 eg:192.168.3.155  wang

添加slave的ip地址和机器名 eg:192.168.3.156  han(Master不添加此项好像也行,slave需要添加此项)

3.保险起见修改/etc/hostname中机器名与用户名相同

sudo nano /etc/hostname

将wang-desktop改为wang(同用户名)

用sudo nano /etc/hosts,将其中的wang-desktop也改为wang

4.export ROS_MASTER_URI="http://wool:11311"

二.slave设置

1.同Master的1.2.3.4

三.开始使用

假设:               master                           slave

hal                                 marvin

listener                          talker

1.启动[[master]]

我们需要选择一台机器运行master,这里我们选hal. 启动master的第一步是:

ssh hal
roscore

2.启动listener

接下来我们在机器hal上启动listener, 并配置ROS_MASTER_URI,这样就可以使用刚刚启动的master了:

ssh hal
export ROS_MASTER_URI=http://hal:11311
rosrun rospy_tutorials listener.py

3.启动talker

现在我们要在marvin 机器上启动talker,同样通过配置ROS_MASTER_URI来使用hal机器上的master:

ssh marvin
export ROS_MASTER_URI=http://hal:11311
rosrun rospy_tutorials talker.py

小惊喜: 现在你可以看到机器hal上的listener正在接收来自marvin机器上talker发布的消息

注:如果运行的节点在该机器上,可以不用ssh

四.如果节点不在同一机器上时的配置

有多种方法可在不同的机器上运行节点,简单的方法就是在各自机器上分别启动。另外一个方法是使用launch文件统一启动这些节点,如下:

<launch>

<include file="bzrobot.machine">

<node pkg="rospy_tutorials" type="listener.py" name="listener" machine="wool" />

<node pkg="rospy_tutorials" type="talker.py" name="talker" machine="wooa" />

</launch>

Machine标签

创建machine标签,以方便将node分配到不同的machine上运行,举例如下:

<launch>

<machine name="wool" address="wool" env-loader="/opt/ros/indigo/env.sh" default="true" />

<machine name="wooa" address="wooa" env-loader="/opt/ros/indigo/env.sh" />

</launch>

env.sh环境变量设置

使用env.sh文件设置运行node的machine的所需环境,如下:

#!/bin/sh

export
ROSLAUNCH_SSH_UNKNOWN=1

#export
ROS_MASTER_URI=wool

.
/opt/ros/indigo/setup.sh

exec "$@"

ROS节点分布式运行方法的更多相关文章

  1. 业务可视化-让你的流程图"Run"起来(3.分支选择&跨语言分布式运行节点)

    前言 首先,感谢大家对上一篇文章[业务可视化-让你的流程图"Run"起来(2.问题与改进)]的支持. 分享一下近期我对这个项目的一些改进. 1. 增加了分支选择工程,可以根据节点的 ...

  2. 4.2 ROS节点运行管理launch文件

    4.2 ROS节点运行管理launch文件 关于 launch 文件的使用我们已经不陌生了,在第一章内容中,就曾经介绍到: 一个程序中可能需要启动多个节点,比如:ROS 内置的小乌龟案例,如果要控制乌 ...

  3. 基于英特尔® 至强™ 处理器 E5 产品家族的多节点分布式内存系统上的 Caffe* 培训

    原文链接 深度神经网络 (DNN) 培训属于计算密集型项目,需要在现代计算平台上花费数日或数周的时间方可完成. 在最近的一篇文章<基于英特尔® 至强™ E5 产品家族的单节点 Caffe 评分和 ...

  4. hadoop2.2.0+hive-0.10.0完全分布式安装方法

    hadoop+hive-0.10.0完全分布式安装方法 1.jdk版本:jdk-7u60-linux-x64.tar.gz http://www.oracle.com/technetwork/cn/j ...

  5. 基于ROS的分布式机器人远程控制平台

    基于ROS的分布式机器人远程控制平台   1 结构说明 HiBot架构主要使用C/S架构,其中HibotServer为服务器,Muqutte为消息服务器中间件,HiBotClient为运行在机器人上的 ...

  6. ROS学习笔记三(理解ROS节点)

    要求已经在Linux系统中安装一个学习用的ros软件包例子: sudo apt-get install ros-indigo-ros-tutorials ROS图形概念概述 nodes:节点,一个节点 ...

  7. Hadoop2.2.0多节点分布式安装及测试

    众所周知,hadoop在10月底release了最新版2.2.很多国内的技术同仁都马上在网络上推出了自己对新版hadoop的配置心得.这其中主要分为两类: 1.单节点配置 这个太简单了,简单到只要懂点 ...

  8. ROS Learning-007 beginner_Tutorials ROS节点

    ROS Indigo beginner_Tutorials-06 ROS节点 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14.04.4 LT ...

  9. 通过ros节点发布Twist Messages控制机器人--10

    原创博客:转载请表明出处:http://www.cnblogs.com/zxouxuewei/ 1.到目前为止,我们已经从命令行移动机器人,但大多数时间你将依靠一个ros节点发布适当的Twist消息. ...

随机推荐

  1. java中regex参考

    在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包. 可粗略估计一下,除了偶尔用Linux的外,其他Linu ...

  2. lucene测试类

    package test.lucene; import java.io.BufferedReader;import java.io.File;import java.io.FileInputStrea ...

  3. vue循环出来列表里面的列表点击click事件只对当前列表有效;

    <div id="app"> <div class=‘b’ v-for='item in items' @click="toggle(item)&quo ...

  4. Python自动化测试框架——数据驱动(从文件中读取)

    学过编程的伙伴们都知道,数据不仅可以从代码中读取,还可以从文件中读取. 今天小编就简要的介绍一下从文件中读取数据,并应用到自动化测试中方法. 先来展示下接下来将要用到的文件在项目中的结构 从txt文件 ...

  5. linux运维中常用的指令

    一.终端中常用的快捷键 man界面中的快捷键: ?keyword                 向上搜索关键词keyword,n向下搜索,N继续向上搜索 /keyword   向下搜索关键词keyw ...

  6. Django2.0+小程序技术打造微信小程序助手百度云

    加Q[965546358]获取资源 第1章 课程导学 第2章 小程序开发入门 从几个方面介绍小程序开发相关的内容,包括小程序开发者账号注册.小程序开发流程.小程序开发规范.小程序常用的API,例如网络 ...

  7. 组队赛Day1第一场 GYM 101350A - Sherlock Bones (DP)

    [题意] 给你一个01串.f(i,j)定义为区间[i,j]内1的个数,求区间 [i,j,k] 中 f(i,j) =f(j,k) 的情况的子串总数,要求str[j]=='1'. (题意描述引自Ilook ...

  8. python基础学习笔记——闭包

    闭包这个概念好难理解,身边朋友们好多都稀里糊涂的,稀里糊涂的林老冷希望写下这篇文章能够对稀里糊涂的伙伴们有一些帮助~ 请大家跟我理解一下,如果在一个函数的内部定义了另一个函数,外部的我们叫他外函数,内 ...

  9. jmeter历史版本下载

    https://archive.apache.org/dist/jmeter/binaries/

  10. Leetcode 407.接雨水

    接雨水 给定一个 m x n 的矩阵,其中的值均为正整数,代表二维高度图每个单元的高度,请计算图中形状最多能接多少体积的雨水. 说明: m 和 n 都是小于110的整数.每一个单位的高度都大于0 且小 ...