使用gazebo进行物理仿真搭建.world环境,并用gmapping在仿真环境中进行地图构建

主要用到robot_mbot(胡春旭的ros学习第4讲中相关资源)这个功能包,mbot_description是描述机器人模型的功能包;mbot_gazebo是仿真功能包,更改launch文件中”world_name”参数来切换读取的世界,.world文件保存在worlds路径下;mbot_navigation是导航功能包,调用gmapping;mobot_teleop是控制功能包,用于终端控制机器人移动。(注意相关功能包下的.py文件要授权)

首先编译功能包,可能缺少相应组件报错,缺啥装啥。如:
sudo apt-get install ros-kinetic-gazebo-ros-control 
安装gmapping:
sudo apt-get install ros-kinetic-gmapping
搭建仿真环境:
先启动gazebo——
roslaunch mrobot_gazebo mbot_laser_nav_gazebo.launch

这个地方根据想要要带有的传感laser, kinect, camera...调用对应的launch文件,因为之后再次启动的机器人都只有对应的传感
(不确定是不是这个原因,比如我在普通机器人上改的环境,下次启动launch的时候选择有laser描述的机器人但是却没有雷达...)
然后根据自己的需要修改环境,保存.world文件。
gmapping建图:
roslaunch mrobot_gazebo mbot_laser_nav_gazebo.launch
roslaunch mrobot_navigation gmapping_demo.launch
roslaunch mrobot_teleop mrobot_teleop.launch
保存地图:
rosrun map_server map_saver -f mymap

你可能感兴趣的:(ROS基础)