目的
弄清如何使用turtlebot3来启动一个机器人模拟环境(包括gazebo和rviz)。需要注意的是这是一个嵌套的过程,因为tb3_simulation_launch.py又启动了其他的launch文件,其他的launch文件又启动了一些launch文件…
先上图片
思维导图和架构图
源码
太长了就不放了,指路github:tb3_simulation_launch.py
解释
从第一行到153行都在定义参数,看看就能看懂,就不多说了。
启动gazebo
# Specify the actions
start_gazebo_server_cmd = ExecuteProcess(
condition=IfCondition(use_simulator),
cmd=['gzserver', '-s', 'libgazebo_ros_init.so', '-s', 'libgazebo_ros_factory.so', world],
cwd=[launch_dir], output='screen')
start_gazebo_client_cmd = ExecuteProcess(
condition=IfCondition(PythonExpression(
[use_simulator, ' and not ', headless])),
cmd=['gzclient'],
cwd=[launch_dir], output='screen')
这里启动了gzserver和gzclient,打开gazebo
启动robot_state_publisher
urdf = os.path.join(bringup_dir, 'urdf', 'turtlebot3_waffle.urdf')