Skip to content

PX4 Gazebo仿真说明

QI_SYSU_pc edited this page May 5, 2021 · 1 revision

Gazebo仿真教程

PX4支持的软件在环一共是有jMAVSimGazeboAirSim这三种。其中,Gazebo是PX4官方最为推荐的一种仿真器,支持旋翼、固定翼、倾转、小车等,是所有仿真器里支持平台最多的,也能支持多个无人机的仿真。

Gazebo仿真是如何进行的?

image-20210505143001600

image-20210505142954674

上一张官方图,Flight stack代表飞控即PX4,Simulator代表仿真器(如Gazebo)。所有仿真器与PX4的通讯都是通过MAVLink消息来进行的,SITL使用simulator模块中的simulator_mavlink.cpp来处理这些消息,而HITL是使用mavlink模块中的mavlink_receiver.cpp来处理这些消息。梳理一下这里的消息流向:

  1. PX4到仿真器。PX4给仿真器只会发送一个HIL_ACTUATOR_CONTROLS的MAVLink消息,熟悉PX4的应该知道这个对应的uORB消息是actuator_outputs.msg,也就是姿态控制器最后的输出控制量。这里也就意味着,混控是在仿真器中进行的,仿真器中也包含电机的模型。
  2. 仿真器到PX4。仿真器的作用就是模拟真实飞行,即模拟计算出真实飞行时的传感器状态,包括GPS,IMU等,将这些信息发送给飞控后,再由飞控中的估计模块计算出飞机状态量。
  3. 外部到PX4。这里的外部就比如地面站QGC(可以外接遥控器),Mavros,Dronecode SDK等,这里也就可以模拟我们平时控制飞机的方式。

下面这张图更清楚的表示出了PX4与各个部分之间的关系。仿真器包含了传感器和执行机构的模型,负责产生传感器的原始数据和执行最后的底层控制指令;Offboard API及QGC负责发送传输上层指令(位置期望点、速度期望值等)并且监控飞机状态;PX4固件本身则运行控制及估计模块(即飞控核心算法)。

更多内容,请购买Prometheus在线课程学习!

Clone this wiki locally