ROS学习--(十八)使用stage模拟器

因为实验室的kuboki创建地图有些问题,所以我先学如何使用模拟器

> roslaunch turtlebot_stage turtlebot_in_stage.launch

这样就可以打开了。
在turtlebot_stage中有以下文件,都是预设的launch和设置文件

$ launch/turtlebot_in_stage.launch
$ maps/maze.png
$ maps/maze.yaml
$ maps/stage/maze.world
$ maps/stage/turtlebot.inc
$ rviz/robot_navigation.rviz

因为我们要修改到里面的文件,所以我们先做个备份可以直接在文件夹中操作,也可以用命令行

cp maps/maze.png ~/stageTutorial/tutorial.png
cp maps/maze.yaml ~/stageTutorial/tutorial.yaml
cp maps/stage/maze.world ~/stageTutorial/tutorial.world

第一行输入后就会发现有错误了。找不到maps/maze.png这个文件,我们先用cd把路径转到turtlebot_stage就行了,cp的意思是把第二个参数复制粘贴到第三个参数路径,且名字重命名

修改地图
图片可以用任意图片编辑器修改,,然后我们的world和yaml文档仍然指向之前的文件,所以我们需要做些修改
首先是tutorial.yaml文档。将image从maze.png改成tutorial.png

image:maze.png

改成

image:tutorial.png

接着是tutorial.world,将

name "maze"
bitmap "../maze.png"

改成

name "tutorial"
bitmap "tutorial.png"

×这里我在学习时遇到的问题,维基上是name “tutorial”world是错的,还有要将tutorial.png前面的。。/去掉,因为是在同一个文件夹中,而。。/意思是上一级目录,如果不这样做会提示有一个进程死掉了

注意到include “turtlebot.inc”,但我们的路径需要修改,修改为include “/opt/ros/indigo/share/turtlebot_stage/maps/stage/turtlebot.inc”

接着我们启动模拟器

roslaunch turtlebot_stage turtlebot_in_stage.launch map_file:="~/stageTutorial/tutorial.yaml" world_file:="~/stageTutorial/tutorial.world"

可以看到rviz和stage simulator正常启动。

接下来我们往地图里面添加障碍
先新建文档myBlock.inc,复制代码

define block model
(
  size [0.500 0.500 1.500]
  gui_nose 0
)

gui_nose的意思是我们的模型的前方是否需要有一个方向指示器
接着修改world文档
第二行添加include "myBlock.inc"
最后添加

#adding blocks
block(pose [2.000 4.000 0.000 0.000 ] color "green")
block(pose [2.000 4.000 0.000 0.000 ] color "red")

再次启动,可以看见stage模拟器上多了两个小方快

你可能感兴趣的:(ROS)