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 . 在更 ...
随机推荐
- 用Python开发实用程序 – 计算器
一段时间前,自己制作了一个库 “sui-math”.这其实是math的翻版.做完后,python既然可以轻易的完成任何的数学计算,何不用python开发一个小程序专门用以计算呢? 现在我们越来越依赖于 ...
- [python]Python 字典(Dictionary) update()方法
update() 函数把字典dict2的键/值对更新到dict里.如果后面的键有重复的会覆盖前面的语法dict.update(dict2) dict = {'Name': 'Zara', 'Age': ...
- Sql 中获取年月日时分秒的函数
getdate():获取系统当前时间 dateadd(datepart,number,date):计算在一个时间的基础上增加一个时间后的新时间值,比如:dateadd(yy,30,getdate()) ...
- Multisim 如何调整编辑界面大小
1.option -> sheet properties 2.选择workspace
- mysql存储表情报错
数据库版本:mysql Ver 8.0.16 数据库字符集:utf8 原因:mysql的utf8编码的一个字符最多3个字节,但是一个emoji表情为4个字节,所以utf8不支持存储emoji表情.但 ...
- 【 SSH 配置参考】
applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xm ...
- Docker - 命令 - docker container
概述 整理 docker 容器的命令 1. 分类(25个) 查看 ls diff logs inspect port stats top 生命周期 pause prune create kill re ...
- 【HTTP与HTTPS的区别】
目录 一.HTTP和HTTPS的基本概念 二.HTTP与HTTPS有何区别 三.HTTP与HTTPS的工作原理 四.HTTPS的优缺点 五.HTTP切换至HTTPS "超文本传输协议,即HT ...
- jmeter实现一次登录,多次业务请求(不同线程组间共享cookie和变量)
实现目的 很多时候,在进行性能测试时,需要先登录,然后再对需求的事务进行相关性能测试,此时的登录操作,并不在本次性能测试的范围内,所以我们只需要登录一次,然后获取登录成功后的cookie等,并将coo ...
- Mac配置内网穿透
闲语: Java开发过程中,往往会对接第三方,而在对接过程中,双方间使用的最多的"通讯"方式就是异步通知.可是异步通知过程中,只能通知到外网地址,可是在调试过程我们都是在本地进行- ...