说明 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