说明 1:

使用的Ubuntu16.04 Linux系统; ROS kinetic版本; ROS及依赖库安装在 根目录下的 /opt/ros

官方的导航包已经被编译完成,源代码不在里面,源代码需要自己去ros官网或GitHub找。

官方的编译的可执行amcl文件目录 /opt/ros/kinetic/lib/amcl/amcl可执行文件

 (注释:此时amcl目录或文件夹的名字已经被我改了,原因看下面解释。)

说明2:

turtlebot3的安装包和文件 在 home/用户/catkin_ws下。

方法:GitHub上搜索amcl的源码目录文件,  放置在turtlebot所在的catkin_ws/src目录下

命令行终端下 进入该目录 cd ~/catkin_ws    

                         执行命令  catkin_make

之后可以在 catkin_ws目录下的 devel目录下的 lib目录下 看到 amcl 和 robot_global_localization执行文件。

此时将 /opt/ros/kinetic/lib/amcl 的目录名改掉,随便改个名字,如 amcl-xxx  这样让系统在调用amcl最终执行文件时 找不到 ros自带的默认文件。

(改ros下amcl目录或者文件名的时候需要sudo root的权限)

此时:重新打开gazebo world 或 model文件, 建图,导航, 则 定位所用的amcl文件就是自己修改和编译的版本文件了。

如果不行或调用不了,可以看一下 /home/用户   目录下的 .bashrc 文件是否 source了 路径

gedit  .bashrc  查看

 橙色阴影标出来的那一句。

Ros info在终端上无显示输出内容的问题:

在(turtlebot3)navigation包中的amcl.launch文件中的Node 属性中 加上 output="screen"

github上下载的别人的代码,可以参考从这里下载:AMCL-master.zip-互联网文档类资源-CSDN下载

不想给积分或者没有积分的话,可以登录(热心网友)github下载 https://github.com/YangFighting/AMCL