1. PX4启动仿真的launch系列文件
1.1 单个launch文件解读
打开每个文件的开头,都有对它功能的描述。
px4.launch
Posix SITL PX4 launch script Launches Only PX4 SITL. This can be used by external projects 加载px4_sitl仿真的节点
posix_sitl.launch
Posix SITL environment launch script launches PX4 SITL, Gazebo environment, and spawns vehicle 在px4.launch基础上,打开GAZEBO环境并使用spawn_model加载sdf格式的飞机模型
mavros_posix_sitl.launch
在posix_sitl.launch基础上,加入mavros package里的px4.launch(注意不是px4下的px4.launch)。 即开启了sitl仿真后,飞机信息通过mavros来传递交互。那么交互的端口号fcu_url即飞机端udp端口由<arg name="fcu_url" default="udp://:14540@localhost:14557"/>确定。这个参数主要是为传入mavros使用。
single_vehicle_spawn.launch
Posix SITL environment launch script launchs PX4 SITL and spawns vehicle 打开sitl节点,以及使用xacro加载urdf格式的飞机模型。注意加载模型有urdf和上述sdf两种方式。后文会对两种方式详细比较。
multi_uav_mavros_sitl.launch
是由前面几个launch文件中的部分内容拼接并且改编的。 模型的生成方式,调用了single_vehicle_spawn.launch,并传入不同的mavlink_udp_port和mavlink_tcp_port用于不同飞机mavlink连接。 每架飞机的mavros传入不同的fcu_url和tgt_system参数,便于启动不同的mavros 补充:gcs_url是指地面站端口,而我们在仿真中一般用不到地面站。 关于udp端口的含义可以参照PX4官网,也可以参照这篇博客PX4仿真中的UDP端口匹配 提示:使用group ns的方式可以为包含的节点创建前缀名,用来区分每架飞机的节点和话题。
-
新版本的PX4-Autopilot还增加了一些launch文件,主要是区分了urdf和sdf两种模型生成方式single_vehicle_spawn_sdf.launch指明了用后缀名.sdf模型生成。single_vehicle_spawn_xacro.launch指明了用后缀名.xacro模型生成。