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定位运行时出现故障,截图如下:


9776445-ab8c331844a4e8f2.png
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的部分,没有发现问题。截图如下:

9776445-0e09c86f93c9bb2a.png
launch文件中的map_server定义

然后想到用 roscd指令进行map_server包的定位,看看是否在指定位置,运行结果如下:
9776445-046400e8edf6ff99.png
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找出了同名包的位置,我运行后的截图如下:

9776445-6674006f86bce565.png
source前,可以找到正确位置

9776445-3968b0a5e506e29f.png
source后,找到了同名包的位置

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

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值