-
Notifications
You must be signed in to change notification settings - Fork 426
PX4 Gazebo仿真说明
QI_SYSU_pc edited this page May 5, 2021
·
1 revision
PX4支持的软件在环一共是有jMAVSim、Gazebo、AirSim这三种。其中,Gazebo是PX4官方最为推荐的一种仿真器,支持旋翼、固定翼、倾转、小车等,是所有仿真器里支持平台最多的,也能支持多个无人机的仿真。
上一张官方图,Flight stack代表飞控即PX4,Simulator代表仿真器(如Gazebo)。所有仿真器与PX4的通讯都是通过MAVLink消息来进行的,SITL使用simulator模块中的simulator_mavlink.cpp来处理这些消息,而HITL是使用mavlink模块中的mavlink_receiver.cpp来处理这些消息。梳理一下这里的消息流向:
- PX4到仿真器。PX4给仿真器只会发送一个HIL_ACTUATOR_CONTROLS的MAVLink消息,熟悉PX4的应该知道这个对应的uORB消息是actuator_outputs.msg,也就是姿态控制器最后的输出控制量。这里也就意味着,混控是在仿真器中进行的,仿真器中也包含电机的模型。
- 仿真器到PX4。仿真器的作用就是模拟真实飞行,即模拟计算出真实飞行时的传感器状态,包括GPS,IMU等,将这些信息发送给飞控后,再由飞控中的估计模块计算出飞机状态量。
- 外部到PX4。这里的外部就比如地面站QGC(可以外接遥控器),Mavros,Dronecode SDK等,这里也就可以模拟我们平时控制飞机的方式。
下面这张图更清楚的表示出了PX4与各个部分之间的关系。仿真器包含了传感器和执行机构的模型,负责产生传感器的原始数据和执行最后的底层控制指令;Offboard API及QGC负责发送传输上层指令(位置期望点、速度期望值等)并且监控飞机状态;PX4固件本身则运行控制及估计模块(即飞控核心算法)。
更多内容,请购买Prometheus在线课程学习!
感谢使用Prometheus自主无人机软件平台!