578

阿木币

1

精华

1442 小时

在线时间

管理员

Rank: 9Rank: 9Rank: 9

发表于 2022-3-14 16:24:43 2040 浏览 0 回复

[杂言讨论] 技术分享 | 带你解决4个ROS开发常见的问题

有很多朋友在ROS开发过程中都会遇到困难,特别是刚刚开始接触ROS的朋友们,也是经常会找不到问题原因,也搜索不到相关资料,常常会因为一个问题,头疼好几天。本期内容,我们将会对ROS开发过程中大家常遇见的问题进行分析并给出解决方案,希望能解决大家常见的基础问题。

大家有机器人开发相关问题也可以到我们阿木社区论坛进行提问哦。链接:

https://bbs.amovlab.com/forum.php?mod=forumdisplay&fid=55

1、 输入rosrun package_name node_name后出现 Couldn’t find executable named ** below **** 报错语句。**

出现该错误原因为在该功能包下并不能找到名字为node_name的可执行文件。出现该问题的情况一般有三种,一是node_name名字写错了,二是cpp文件编写好后未编译工作空间所以并未生成可执行文件,三是python文件写好后未添加可执行权限。

所以遇到这个报错后,首先检查确认node_name名字是否正确,再看该可执行文件是否存在,这里推荐大家可以多使用tab键补齐,不能补齐说明没有该文件,能补齐就不会出现名字写错的情况。

2、输入roslaunch package_name launch_name 后出现 [launch_name] is neither a launch file in package [soar] nor is [soar] a launch file name

这个错误和上面的情况类似,只不过这个错误是启动launch文件时会出现的,该问题指launch文件名或功能包文件名异常。造成该问题的情况一般有两种,一是名字拼写错误,二是存放该功能包的工作空间环境并未加载,可以通过使用roscd package_name该命令检查系统是否能找到该功能包,如果能找到则证明环境变量是成功加载的,那问题就应该是launch文件名不对或该文件不存在等原因导致的。

3、输入roslaunch package_name launch_name后出现Invalid roslaunch XML syntax: mismatched tag: line7, column2

出现该报错原因,一般是launch文件编写语法错误导致的,往往是末尾没有加“/”导致的,通过检查launch文件,在没有添加的地方进行添加即可以解决。

4、 启动launch文件后出现cannot launch node of type : [**] Cannot locate node of type [] in package [**]. Make sure file exists in package path and permission is set to executable(chmod +x)

出现该报错原因,一般是launch文件中node标签出现错误,系统无法在该功能包下找到该节点,大部分错误原因都是拼写错误,但也有可能是功能包未编译,没有生成可执行文件,也有可能是Python文件未加可执行权限,还有可能是没有加载该工作空间的环境变量,导致系统无法找到该功能包,情况多种多样,但归根结底是属于系统无法找到或启动该节点,那么按照这个思路,我们就去找寻解决方法,首先确认系统是否能识别该功能包,可以通过roscd 命令或tab补齐等方式确认,如果系统能正常检索到功能包,就看该节点是否能找到,结合上面提到的情况进行分析,一般情况下就很容易找到根本原因,然后进行解决。

上面提到的问题以及解决方案都是比较常见和基础的,在实际的学习开发过程中,肯定会遇到更复杂,更难排查,更难解决的问题,出现的问题多种多样,大家需要学会如何根据报错信息尽可能地判断问题的根本原因,也要学会多利用网上的资源,并且需要在不断解决问题的过程中,积累自己的经验,逐渐建立起自己排查、解决问题的一套方法。希望大家不仅是能够解决上面所说的问题,还能够举一反三,做到可以排查解决其他类似的问题。


扫一扫浏览分享
回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表