ROS机器人系统学习——踩坑之路
推荐学习教程:深蓝学院 机器人操作系统ROS理论与实践学习
在学习到第2讲ROS基础的分布式通信时,一直卡在这里,主机开启小海龟后,从机虽然可以通过
rostopic list
列出当前的所有topic列表,但是订阅不成功,后来经过一天的各种找资料,找到一篇博文(ROS多机的通讯配置:https://www.jianshu.com/p/69815d79d37f),终于找到问题所在,和ROS_IP的配置有关系,特此记录下!!!
下面开始搬砖了
多机通讯
想在PC上直接按键控制树莓派上的乌龟运动,要如何操作呢?
主机与树莓派信息如下:
| Item | IP | Hostname |
|---|---|---|
| PC | 192.168.31.111 |
robot-dekstop |
| 树莓派 | 192.168.31.107 |
pi-desktop |
相互ip可以通,因为未添加hostname ip映射,相互无法通过hostname联系
1.在树莓派上运行roscore和启动turtlesim_node
2.PC上想要与之通讯首先必须设置ROS_MASTER_URI,export ROS_MASTER_URI='http:192.168.31.107:11311'即可,在PC中断输入rostopic
list即可看到当前的所有topic列表,说明PC已经可以与ROS_MASTER建立通讯了

3.这时PC端启动rosrun turtlesim turtle_teleop_key无法控制乌龟运动,为什么呢?这里明明rostopic明明可以看到/turtle/cmd_vel。 键入rostopic info /turtle/cmd_vel 显示如下

这就明显了,主机从master里面取到的node发送/订阅的topic信息,node地址为http://pi-desktop:46395, PC根本不认识pi-desktop为何物,自然无法发送数据。
4.如何修改?自然有2个方法:
- 这个我不认识换个我认识的来,修改树莓派端的
ROS_IP环境变量export ROS_IP=192.168.31.107
再次查看topic信息,

- 现在就认识了,启动
rosrun turtlesim turtle_teleop_key节点,发现仍然无法控制。问题是我认识你,可是你不认我啊,所有本地PC也需要export ROS_IP=192.168.31.111,现在就正常了 - 这个我不认识,我现在认识下不就行了,PC端修改
/etc/hosts添加一个192.168.31.107 pi-desktop,同时树莓派端一样修改/etc/hosts添加192.168.31.111 robot-desktop
ROS机器人系统学习——踩坑之路的更多相关文章
- .NetCore实践篇:分布式监控系统zipkin踩坑之路(二)
前言 <牧神记>有一句话说的好,破心中神.当不再对分布式,微服务,CLR畏惧迷茫的时候,你就破了心中神. zipkin复习 第一篇: .Net架构篇:思考如何设计一款实用的分布式监控系统? ...
- Learning ROS for Robotics Programming - Second Edition(《ROS机器人编程学习-第二版》)
Learning ROS for Robotics Programming - Second Edition <ROS机器人编程学习-第二版> ----Your one-stop guid ...
- html2canvas的踩坑之路
html2canvas的踩坑之路 前言 早有耳闻这个html2canvas比较坑,但无奈于产品需求的压迫,必须实现html转图片的功能,自此走上了填坑之路,好在最后的效果还算令人满意,这才没有误了产品 ...
- MySQL Connector/NET 使用小结(踩坑之路)
背景描述 根据项目的需要,需连接MySQL获取数据. 首先,先了解一下项目的情况: 之前的代码是C#编写的的, 运行时:.NETFramework3.5. 由于项目已经部署上线,因此不能升级运行时,这 ...
- Android 上传开源项目到 jcenter 实战踩坑之路
本文微信公众号「AndroidTraveler」首发. 背景 其实 Android 上传开源项目到 jcenter 并不是一件新鲜事,网上也有很多文章. 包括我本人在将开源项目上传到 jcenter ...
- Java踩坑之路
陆陆续续学Java也快一年多了,从开始的一窍不通到现在的初窥门径,我努力过,迷茫过,痛过,乐过,反思过,沉淀过.趁着新年,我希望能把这些东西记下来,就当是我一路走来的脚印. 一.初识网站应用 记得第一 ...
- ROS机器人程序设计-学习小结-
ROS官网 |易科 |虞坤林 |古月居 |ROSClub 学习ROS相关书籍推荐:http://blog.csdn.net/zhangrelay/article/details/52244746 RO ...
- Android SDK 开发——发布使用踩坑之路
前言 在 Android 开发过程中,有些功能是通用的,或者是多个业务方都需要使用的. 为了统一功能逻辑及避免重复开发,因此将该功能开发成一个 SDK 是相当有必要的. 背景 刚好最近自己遇到了类似需 ...
- jQuery升级踩坑之路
1.使用了被废弃的jQuery.browser属性 jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support . 在更 ...
随机推荐
- 每天进步一点点------Allegro 布线时显示延迟以及相对延迟信息
PROPAGATION_DELAYPROPAGATION_DELAY这个设定主要用来对Net绝对长度的设定,如要求设定一组Net的长度要在Min Mil到 Max Mil之间的话,就可以用这种设定来完 ...
- 洛谷 P3805【模板】manacher算法
题目链接:https://www.luogu.com.cn/problem/P3805 Manacher算法$O(n)$: 求以每个字符为中心的最长回文串的半径:如果要求可以以字符间隙为回文中心,就要 ...
- node.js 和 yarn 安装
电脑环境 windows10 专业版 64 位 node.js 安装 Node.js 官方网站下载:https://nodejs.org/en/ 之后一步步得傻瓜式安装 配置环境变量和查看node.j ...
- es6模块化设计
//导出 //方式一 export const name = 'hello' export let addr = 'chengdu' export var list = [1,2,3] //方式二 c ...
- centos6.5下安装mysql数据库
centos6.5下安装mysql数据库 1.安装mysql数据库:yum install mysql-server 2.临时启动数据库:service mysqld start 3.开机启动数据库: ...
- [lua]紫猫lua教程-命令宝典-L1-01-02. 变量
L1[变量]01. 变量命名规则 命名规则:数字字母下划线构成 但是不能数字开头 不推荐中文名 很多都是不支持中文 但是在一些其他的编辑器里面 比如触摸精灵 之类的 就可以 注意 :变量命名必须要包含 ...
- 【Python redis】
目录 基本用法 连接池 基本命令 String Hash List set "下载:pip install redis @ *** 基本用法 redis库提供两个类,Redis和Strict ...
- MySQL存储引擎优化
如何在两种存储引擎中进行选择? ① 是否有事务操作?有,InnoDB. ②是否存储并发修改?有,InnoDB. ③是否追求快速查询,且数据修改较少?是,MyISAM. ④是否使用全文索引?如果不引用第 ...
- blog主题——黑夜
blog主题,存储一下 /* Author: Io_oTI*/ /*Public*/ * { margin: 0; padding: 0; box-sizing: border-box; trans ...
- jvm01
hotspot:是jvm的核心组件(或者名称),jvm 需要对class文件进行编译成cpu能直接运行的代码.hotspot会对频繁使用的class代码进行缓存,不会再次编译,类似于缓存 client ...