ROS学习--(十九)使用Gazebo模拟器

来源:互联网 发布:java环境变量有什么用 编辑:程序博客网 时间:2024/05/21 16:37

Stage模拟器是模拟二维平面的模拟器,而Gazebo则是三维的,可以自己在地图上添加几何体。
先按前面的教程做完,安装了turltebot,启动Gazebo模拟器

$ roslaunch turtlebot_gazebo turtlebot_world.launch

这样就启动成功了,第一次启动可能要等个几分钟或十几分钟,因为要从网络上获取模型的更新,如果打开后发现窗口中什么都没有,则看看终端有没没有说是在获取更新之类的信息。

先执行一下命令$ sudo apt-get install ros-indigo-turtlebot-apps ros-indigo-turtlebot-rviz-launchers

接下来控制模拟机器人移动,有两种方法,一种是通过手柄,一种是用键盘
键盘:$ roslaunch turtlebot_teleop keyboard_teleop.launch --screen
罗技手柄:$ roslaunch turtlebot_teleop logitech.launch --screen

接着在开一个RViz,Gazebo相当于模拟现实世界,而RViz获得对周围的事物的传感器信息。

接下来我们试着创建地图

roslaunch turtlebot_gazebo gmapping_demo.launch

如果运行了这条命令行后报错,那么就要执行一下步骤
先下载压缩包ros-indigo-gmapping_1.3.7.orig.tar.gz,这个只能自己找了。
下载完后将目录转到~/catkin_ws/src
执行tar xvf ../../ros-indigo-gmapping_1.3.7.orig.tar.gz
意思是将压缩包解压。
然后执行mv ros-indigo-gmapping-1.3.7/ gmapping
将文件夹移动到src/gmapping,到catkin_ws下的src文件夹中看,应该有gmapping。
然后进入该文件夹的src文件夹中,打开slam_gmapping.cpp,找到409行,将FLT_EPSILON改为0。003。保存,退出
回到终端,执行以下命令你个

cd ..catkin_makesudo cp devel/lib/gampping/slam_gmapping* /opt/ros/indigo/lib/gmapping/

再次执行roslaunch turtlebot_gazebo gmapping_demo.launch,再执行roslaunch turtlebot_rviz_launchers view_navigation.launch就可以看到下图
控制模拟机器人运动,可以看到地图正在丰富(如果遇到rviz打开连机器人都没有显示或者打不开提示rviz进程死掉的,试试source /opt/ros/indigo/setup.bash)

保存地图 $ rosrun map_server map_saver -f /tmp/my_map

关掉所有终端,从第一步开始重新做起,但最后一步是打开地图而不是保存

roslaunch turtlebot_gazebo amcl_demo.launch map_file:=<full path to your map file>

这里我们的路径就是/tmp/my_map,yaml

0 0
原创粉丝点击