因为实验室的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模拟器上多了两个小方快