关于ROS的一些需要注意的点

本文分享了ROS学习过程中的参考资料、实践经验及遇到的问题解决方案,包括主题图显示、catkin_make使用、权限设置等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这几天学习ROS,看到了很多大神的博客,写的都很好(虽然基本就是把官方教程翻译一遍)。
主要是看

小菜鸟上校 的博客
http://blog.youkuaiyun.com/xiaocainiaoshangxiao/article/category/1710543
永顿007 的博客
http://blog.sina.com.cn/s/articlelist_1712413141_7_1.html
以及 古月 的博客
http://blog.youkuaiyun.com/hcx25909/article/category/1191901

其中 小菜鸟上校 的博文步骤写的比较详细,可以一步步跟着走,适合刚开始接触的(例如我);
永顿007 的博文例子比较多,适合在某个概念里卡住的时候,看他的文章可以得到更好的理解;
古月 的博文写的就没那么详细,但是可以给到一个overview,对ROS有一个感性的理解;不推荐初学者看他的博客来学习,因为没点基础基本看不懂,但是他的博客都会给出官方教程出处。

讲道理,如果英文过关的话,还是推荐看官方教程,毕竟吃别人嚼过的东西,虽然比较容易吞下去,但是不一定原汁原味(我好恶心啊= =||)
http://wiki.ros.org/

但是毕竟这些都是好多年前的博客了,ROS在不断更新,有一些不一样的地方,就记录在这里。
另外有一些需要注意的细节,也会记录在这里。

显示主题图

以前显示主题示意图,应该是 rxgraph 命令吧,我看这几个博客都是这么写的。但是现在改了,在官方给出的教程里,显示主题示意图的命令是:

$ rqt_graph

catkin_make需要在根目录执行

也就是需要在home/username/catkin_ws/ 下执行。
否则会出现如下错误:
这里写图片描述

cannot bind to specific port dev/ttyUSB0 解决方法

rplidar laser scanner 给的例程有linux下的,但是按照说明去做会出现这个问题。
这是权限问题,安装是在非root用户下安装的,而要读写ttyUSB0,需要root权限。

$ dmesg | grep ttyUSB0

上面这条指令可以查看ttyUSB0的信息,如果有输出,那么可以判定,驱动没有问题,连接也没有问题,就是权限的问题。
所以用下面这条指令

$ sudo chmod 777 /dev/ttyUSB0

完全开放ttyUSB0的权限,再运行程序即可成功。

需要建包的时候,用catkin建

不推荐用roscreate-pkg,毕竟catkin就是为了方便ROS开发而弄出来的工具。
还是用 catkin_create_pkg 吧。

cannot launch node of type []: can’t locate node [] in package []

在学习tf的时候就遇到了这个问题。
当时的错误提示是
cannot launch node of type [learning_tf/turtle_tf_broadcaster]: can’t locate node [turtle_tf_broadcaster] in package [learning_tf]
在网上搜了一下,有人说是需要在 catkin_make后面加上

source ./devel/setup.bash

然后才能 launch
然而并不能解决我的问题。
后来有人说把生成的文件删了,recompile一下。
我就把 /devel/lib/learning_tf 里的东西全删了。
结果更糟,本来只有一个这样的错误,删掉了之后出现了3个。
而且recompile并没有什么反应,感觉catkin认为我已经compile过了,已经up-to-date。
后来解决方法是:
把 /build/learning_tf/ 里的几个二进制文件复制到/devel/lib/learning_tf 里,然后launch。

找到解决方法了

原因在于:CMakelist.txt里,少了一句

catkin_package()

由于catkin_make的本质还是cmake,只是把一些其他的也封装了起来,所以少了上面那句的后果是:
在CMakelist.txt里把cpp文件加入了executable里,cmake照样进行,build文件夹里会有输出文件,但是由于缺少上述语句,catkin并没有把这个当成一个包,所以devel文件夹不会把build的输出文件copy过来,而launch的时候,读的是devel文件夹里的输出文件,所以就会出现找不到的现象。这也可以解释为什么我当时把build文件夹里的二进制文件复制到devel/lib/learning_tf/里就可以正常launch。

### PyCharm 打开文件显示全的解决方案 当遇到PyCharm打开文件显示全的情况时,可以尝试以下几种方法来解决问题。 #### 方法一:清理缓存并重启IDE 有时IDE内部缓存可能导致文件加载异常。通过清除缓存再启动程序能够有效改善此状况。具体操作路径为`File -> Invalidate Caches / Restart...`,之后按照提示完成相应动作即可[^1]。 #### 方法二:调整编辑器字体设置 如果是因为字体原因造成的内容显示问题,则可以通过修改编辑区内的文字样式来进行修复。进入`Settings/Preferences | Editor | Font`选项卡内更改合适的字号大小以及启用抗锯齿功能等参数配置[^2]。 #### 方法三:检查项目结构配置 对于某些特定场景下的源码视图缺失现象,可能是由于当前工作空间未能正确识别全部模块所引起。此时应该核查Project Structure的Content Roots设定项是否涵盖了整个工程根目录;必要时可手动添加遗漏部分,并保存变更生效[^3]。 ```python # 示例代码用于展示如何获取当前项目的根路径,在实际应用中可根据需求调用该函数辅助排查问题 import os def get_project_root(): current_file = os.path.abspath(__file__) project_dir = os.path.dirname(current_file) while not os.path.exists(os.path.join(project_dir, '.idea')): parent_dir = os.path.dirname(project_dir) if parent_dir == project_dir: break project_dir = parent_dir return project_dir print(f"Current Project Root Directory is {get_project_root()}") ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值