ROS wiki上的stage是不是没有人维护了,QA里面看人提问题,回答者说out of date,提问者解决了之后回答者还建议提问者去编辑一下wiki。包括stage自己的wiki貌似都out of date了。
其中Player/Stage 教程里面的链接全部都失效了。手册源码的话在Player_Stage_Manual
主要是参考Manual中ch3里面对于bigbob机器人的定义,包括cfg和inc文件之类的互相引用。
另外基于opt/kinetic/share/stage_ros/world/willow-erratic.world修改了简单的可用环境。
其他的inc文件cfg文件没有也行,都写到一个.world文件就好了。
#define block model
#(
# size [0.5 0.5 0.5]
# gui_nose 0
#)
define laser_sensor ranger
(
sensor(
range [ 0.1 3.0 ]
fov 360
samples 360
)
#generic model properties
color "black"
size [ 0.05 0.05 0.1 ]
)
define erratic position
(
size [0.15 0.15 0.25]
origin [0 0 0 0]
gui_nose 1
drive "diff"
laser_sensor(pose [ 0.000 0.000 0 0.000 ])
)
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
)
## set the resolution of the underlying raytrace model in meters
#resolution 0.02
#interval_sim 100 # simulation timestep in milliseconds
window
(
size [ 700.000 400.000 ]
#rotate [ 0.000 -1.560 ]
scale 40
show_data 1
)
# load an environment bitmap
floorplan
(
name "willow"
bitmap "cave.png"
size [15 15 0.5]
#pose [ -29.350 27.000 0 90.000 ]
)
# throw in a robot
erratic( pose [ -6 -6 0 0 ] name "turtle1" color "blue")
#block( pose [ -13.924 25.020 0 180.000 ] color "red")
同时注意floorplan结构中指定了构图需要的cava.png。
执行这个命令就可以跑起来了
rosrun stage_ros stageros my_world.world
配合gmapping命令
rosrun gmapping slam_gmapping scan:=base_scan
另外打开键盘控制和Rviz GUI观察
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
rviz rviz
---------------------TODO------分割线------------------------------------------------------------------
注意到
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping
和
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=cartographer
都跑不起来。
gmapping应该是topic名字都没有指定到base_scan, launch 里面remap一下即可。
后者我注意到frame tree里面map frame完全消失了。目前还不知道原因。