ROS节点分布式运行方法
一. 主机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 #export . exec "$@" |
ROS节点分布式运行方法的更多相关文章
- 业务可视化-让你的流程图"Run"起来(3.分支选择&跨语言分布式运行节点)
前言 首先,感谢大家对上一篇文章[业务可视化-让你的流程图"Run"起来(2.问题与改进)]的支持. 分享一下近期我对这个项目的一些改进. 1. 增加了分支选择工程,可以根据节点的 ...
- 4.2 ROS节点运行管理launch文件
4.2 ROS节点运行管理launch文件 关于 launch 文件的使用我们已经不陌生了,在第一章内容中,就曾经介绍到: 一个程序中可能需要启动多个节点,比如:ROS 内置的小乌龟案例,如果要控制乌 ...
- 基于英特尔® 至强™ 处理器 E5 产品家族的多节点分布式内存系统上的 Caffe* 培训
原文链接 深度神经网络 (DNN) 培训属于计算密集型项目,需要在现代计算平台上花费数日或数周的时间方可完成. 在最近的一篇文章<基于英特尔® 至强™ E5 产品家族的单节点 Caffe 评分和 ...
- 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 ...
- 基于ROS的分布式机器人远程控制平台
基于ROS的分布式机器人远程控制平台 1 结构说明 HiBot架构主要使用C/S架构,其中HibotServer为服务器,Muqutte为消息服务器中间件,HiBotClient为运行在机器人上的 ...
- ROS学习笔记三(理解ROS节点)
要求已经在Linux系统中安装一个学习用的ros软件包例子: sudo apt-get install ros-indigo-ros-tutorials ROS图形概念概述 nodes:节点,一个节点 ...
- Hadoop2.2.0多节点分布式安装及测试
众所周知,hadoop在10月底release了最新版2.2.很多国内的技术同仁都马上在网络上推出了自己对新版hadoop的配置心得.这其中主要分为两类: 1.单节点配置 这个太简单了,简单到只要懂点 ...
- ROS Learning-007 beginner_Tutorials ROS节点
ROS Indigo beginner_Tutorials-06 ROS节点 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14.04.4 LT ...
- 通过ros节点发布Twist Messages控制机器人--10
原创博客:转载请表明出处:http://www.cnblogs.com/zxouxuewei/ 1.到目前为止,我们已经从命令行移动机器人,但大多数时间你将依靠一个ros节点发布适当的Twist消息. ...
随机推荐
- A*和IDA*介绍
\(A*\)算法是一种很神奇的搜索方法,它属于启发式搜索中的一种.A*最主要的功能当然就是用来剪枝,提高搜索的效率.A*主要的实现方法是通过一个估价函数,每次对下一步进行一个估价,根据估价出的值来决定 ...
- Bootstrap历练实例:弹出提示信息的样式按钮
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
- pre-receive hook declined
没有master分支的代码提交权限. 分配权限或者提交分支合并申请
- shell脚本,计算1+2+3+....100等于多少?
第一种方法,通过for循环来计算[root@localhost wyb]# cat yibai.sh #!/bin/bash #从1+++...100的结果 i= ` do sum=$(($sum+i ...
- javaEE(9)_在线支付
一.目前主要的两种支付方案 二.支付流程 1.用户在提交订单完成选择易宝支付按钮后,会跳转到如下页面选择要支付的银行,如下所示: <!DOCTYPE HTML PUBLIC "-//W ...
- [九省联考2018] IIIDX 线段树+贪心
题目: 给出 k 和 n 个数,构造一个序列使得 d[i]>=d[i/k] ,并且字典序最大. 分析: 听说,当年省选的时候,这道题挡住了大批的高手,看上去十分简单,实际上那道弯段时间内是转不过 ...
- 牛客网NOIP赛前集训营-普及组(第二场)和 牛客网NOIP赛前集训营-提高组(第二场)解题报告
目录 牛客网NOIP赛前集训营-普及组(第二场) A 你好诶加币 B 最后一次 C 选择颜色 D 合法括号序列 牛客网NOIP赛前集训营-提高组(第二场) A 方差 B 分糖果 C 集合划分 牛客网N ...
- PAT 乙级 1012
题目 题目地址:PAT 乙级 1012 思路 最后一个测试点怎么也过不了,问题在于A2的判断,不能单纯地以0作为判断条件:假设满足A2条件的只有两个数6和6,计算结果仍然是0,但是输出A2的值是0不是 ...
- url编码&&PHP大法&&这个看起来有点简单&&HTML 中有用的字符实体
URL编码 Url编码通常也被称为百分号编码(Url Encoding,also known as percent-encoding),是因为它的编码方式非常简单,使用%百分号加上两位的字符——012 ...
- “程序设计与算法训练”课程设计:“BP神经网络的实现”(C++类封装实现)
一 题目: 71 BP神经网络的实现: 利用C++语言实现BP神经网络, 并利用BP神经网络解决螨虫分类问题: 蠓虫分类问题:对两种蠓虫(A与B)进行鉴别,依据的资料是触角和翅膀的长度,已知了9支Af ...