AMCL粒子滤波机器人定位仿真(Gazebo+rviz)

amcl粒子滤波定位仿真步骤

1. 下载功能包

   功能包:mrobot_amcl
   
   链接:https://pan.baidu.com/s/1590978uKNFk3q3-hKu-r_w
   提取码:32p5 

2. 建图

功能包:mrobot_amcl、gmapping(其中gmapping是ros的一个功能包,使用sudo apt-get install ros-kinetic-gmapping安装即可)

 1. 在gazebo中搭建仿真环境
 打开终端输入:
    roscore
    rosrun gazebo_ros gazebo  //之后便可以创建自己的虚拟仿真环境(Gazebo Building Editor)注意保存为 .world的形式
   
 2. 将机器人模型放入搭建好的环境中
  打开终端输入:
     roslaunch mrobot_amcl mrobot_laser_nav_gazebo.launch  //需要改动“world name”的value值
     
 3.  创建地图(包含pgm、yaml)
  打开终端输入:   
     roslaunch mrobot_amcl gmapping_demo.launch   //其中包含启动rviz
     
 4.  启动键盘控制节点
  打开终端输入: 
     roslaunch mrobot_amcl mrobot_teleop.launch  
     //(注意如果报错需要到mrobot_amcl/scripts目录下在终端运行sudo chmod +x mrobot_teleop.py  以保证该文件mrobot_teleop.py是可执行的)
     
 5.  在仿真环境中移动机器人完成在rviz中的建图
 6.  保存建好的地图
   打开终端输入:
      rosrun map_server map_saver //地图将保存在当前终端的目录下,包含pgm和ymal两个文件

3. 使用aviz和gazebo进行amcl粒子滤波定位仿真


 1. 步骤1:
 打开终端输入:
 	roslaunch mrobot_amcl nav_demo.launch    
 	//打开移动机器人模型,打开gazebo仿真环境,amcl功能包,加载地图在rviz中显示(注意在rviz中需要将Pose Array中的Topic改为/particlecloud,同时将inflated Obstacles中的topic改为/map,否则将看不到粒子集)

 2. 步骤2:
 打开终端输入:
 	roslaunch mrobot_amcl mrobot_teleop.launch  
 	//使用键盘控制小车移动 (注意如果报错需要到mrobot_amcl/scripts目录下在终端运行sudo chmod +x mrobot_teleop.py  以保证该文件mrobot_teleop.py是可执行的)

 3. 步骤3(移动策略):
     //移动策略为:
     先在原地转一圈,了解周围情况;之后向前或者向后移动;移动一段时间之后继续在原地转一圈,确认自己位置是否正确,最后基本可以实现定位功能,粒子也基本收敛。

发布了6 篇原创文章 · 获赞 5 · 访问量 625

猜你喜欢

转载自blog.csdn.net/qq_37568167/article/details/105538797