參考:https://blog.csdn.net/shuimiaofeng/article/details/78977224;
maze.world文件如下
include "turtlebot.inc"
define floorplan model
(
# sombre, sensible, artistic
color "gray30"
# most maps will need a bounding box
boundary 1
gui_nose 0
gui_grid 0
gui_outline 0
gripper_return 0
fiducial_return 0
laser_return 1
)
resolution 0.02
interval_sim 100 # simulation timestep in milliseconds
window
(
size [ 600.0 700.0 ]
center [ 0.0 0.0 ]
rotate [ 0.0 0.0 ]
scale 60
)
floorplan
(
name "maze"
bitmap "../maze.png"
size [ 10.0 10.0 2.0 ]
pose [ 5.0 5.0 0.0 0.0 ]
)
# throw in a robot
turtlebot
(
pose [ 2.0 2.0 0.0 0.0 ]
name "turtlebot"
color "black"
)
首先,對(duì)于
define floorplan model
(
# sombre, sensible, artistic
color "gray30" #定義地圖中障礙物的顏色
# most maps will need a bounding box
boundary 1 #1表示有外框臀规,0表示沒有
gui_nose 0 #1表示有指示箭頭还绘,0表示沒有
gui_grid 0 #1表示有網(wǎng)格線窍荧,0表示沒有
gui_outline 0 #如果為1灿椅,則在模型周圍繪制一個(gè)邊界框,指示其大小
gripper_return 0 #如果為1太雨,該模型可以被夾持器抓住吟榴,并且可以通過與具有非零障礙物回復(fù)的任何物體的碰撞來推動(dòng)。
fiducial_return 0 #如果非零囊扳,則該模型由fiducialfinder傳感器檢測(cè)吩翻。 該值用作基準(zhǔn)ID
laser_return 1
)
其次
resolution 0.02 #這是world本身屬性的定義控制分辨率梅惯,模擬頻率等。這里要注意一點(diǎn)仿野,這個(gè)分辨率是stage本身使用的,不是map的分辨率她君。這個(gè)尤其重要脚作,它主要是影響一些類似碰撞檢測(cè)等stage本身的機(jī)制的。
interval_sim 100 # simulation timestep in milliseconds
第三步:這是對(duì)顯示出來的stage_ros的窗口的定義缔刹。屬性基本都是在調(diào)大小球涛,角度之類的,這個(gè)size是包含了窗口狀態(tài)欄的總大小校镐。
window
(
size [ 600.0 700.0 ]
center [ 0.0 0.0 ]
rotate [ 0.0 0.0 ]
scale 60
)
第四:從這里開始往下就是開始生成我們自己定義的模型的實(shí)例的部分了亿扁。從這個(gè)生成定義我們可以看到,它加載了"../maze.png"作為地圖數(shù)據(jù)鸟廓,也就是靜態(tài)地圖从祝。size是怎么算的呢?用你的圖片分辨率乘resolution即可引谜。但要注意牍陌,這個(gè)resolution可不是第二步中定義的那個(gè),而是map server里定義的员咽!整個(gè)配置文件里所有的size毒涧,pose等實(shí)際用的resolution,都是map server里的贝室,不是這個(gè)文件本身定義的這個(gè)契讲。包含下面的第五步中也是這樣。
floorplan
(
name "maze"
bitmap "../maze.png"
size [ 10.0 10.0 2.0 ]
pose [ 5.0 5.0 0.0 0.0 ]
)
第五:
# throw in a robot
turtlebot
(
pose [ 2.0 2.0 0.0 0.0 ]
name "turtlebot"
color "black"
)