ROS:解决Error:cannot launch node of type [map_server/map_server]: can't locate node [map_server] in...

写在前面:本文为原创,如需转载请注明出处(https://www.jianshu.com/p/e9981bc35cff)。欢迎大家留言共同探讨,有误的地方也希望指出。另如果有好的SLAM、ROS等相关交流群也希望可以留言给我,在此先谢过了。

1 Error描述

在用launch文件进行amcl定位运行时出现故障,截图如下:


Error截图

ERROR: cannot launch node of type [map_server/map_server]: can't locate node [map_server] in package [map_server]

从故障描述来看是在包Map_server中无法找到map_server节点。于是动手开始排查问题。

2 Error排查

检查launch文件关于map_server的部分,没有发现问题。截图如下:

launch文件中的map_server定义

然后想到用roscd指令进行map_server包的定位,看看是否在指定位置,运行结果如下:
roscd map_server

发现可以找到正确位置的map_server包,暂时无头绪,于是进行搜索,在rosrun map_server map_server couldn't find executable中找到了比较靠谱的回答。

3 原因及解决

在上述连接的回答中,回答者提到了是由于在自己的workspace中有同名的包,当使用source /devel/setup.bash命令后,rosrun会指向自己同名的map_server包,因此当然就无法找到了。而且迷惑人的是,在source后使用roscd命令查找map_server包还是会指向系统中安装的位置,而不是另一个workspace包的位置。这就导致了较难发现同名包的问题。
回答者使用了命令catkin_find --without-underlays --libexec --share map_server找出了同名包的位置,我运行后的截图如下:

source前,可以找到正确位置

source后,找到了同名包的位置

上两图可以明显看出位置的区别,我是之前用源码编译了navigation包,又用sudo apt 安装了navigation包,导致了两个同名包的存在的问题。删除了第二幅图片中的map_server后运行launch文件,可以正常运行了,问题解决@@

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,027评论 19 139
  • 最近google发布了android系统打包时出现“Janus”安全漏洞风险,几个时间久的项目使用的是eclips...
    匿名wm阅读 1,312评论 0 0
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,020评论 3 119
  • 今晚领导聚餐,现在才散,困得不行了。 分享一段句子:即使一千次跌倒,我依旧会一千零一次的站起来,因为,只有站起来继...
    坚持行动家安小小阅读 193评论 0 0
  • 今天晚上,我写完作业,和妈妈又来了一次五子棋的较量。我信心十足,吸取了以前失败的经验教训,我想这次赢的机会...
    康飞格阅读 181评论 0 0