源码安装naviagtion,但是出现[move_base-2] process has died 运行错误的解决办法
今天开始记录ros遇到的问题
安装navigation可以使用两种方法
第一种:sudo apt-get install ros-kinetic-navigation
这种安装方法最简单,新手或者不需要动naviagtion包的内容的话最好使用这种方法安装,注意indigo或者kinetic版本
第二种:使用源码安装navigation
https://blog.csdn.net/qq_33662195/article/details/85110154
这种安装完成之后,我发现会出现错误
/home/meihong/ros/devel/lib/move_base/move_base: symbol lookup error: /opt/ros/kinetic/lib//libteb_local_planner.so: undefined symbol: _ZNK10costmap_2d12Costmap2DROS12getRobotPoseERN2tf7StampedINS1_9TransformEEE
[move_base-2] process has died [pid 1352, exit code 127, cmd /home/meihong/ros/devel/lib/move_base/move_base __name:=move_base __log:=/home/meihong/.ros/log/00456186-55d3-11e9-ba06-1c4d70e0a209/move_base-2.log].
log file: /home/meihong/.ros/log/00456186-55d3-11e9-ba06-1c4d70e0a209/move_base-2*.log
[move_base-2] restarting process
古月大神说是因为版本不同,因为我们直接下载navigation,但是分为很多版本。下面是步骤:
1.进入
https://github.com/ros-planning/navigation
选择kinetic版本,下载解压
2.将其放入catkin_wa/src中,再对其进行编译
3.如果变异过程中遇到依赖错误,则是因为有些依赖没有安装,这时不用一个一个的安装,直接sudo apt-get install ros-kinetic-navigation*,这样就连依赖一起安装了。
4.重新编译成功,
sudo apt-get remove ros-kinetic-navigation ros-kinetic-navigation-experimental
移除我们安装的navigation,这样就只剩下我们工作空间的navigation可以用啦。
注意:如果是很多文件,建议设定两个工作空间,一个存放测试代码,一个存放navigation,因为navigation编译需要很多时间,如果经常重新编译太麻烦了。