pixhawk的起飞逻辑在runwaytakeoff.cpp中。
首先是状态量的初始化init函数,输入量为初始的偏航角、经纬度。初始化的量包括偏航角、初始化的使能、飞机当前状态(加油门throttle_ramp),初始时间_initialized_time = hrt_absolute_time(),climbout状态进入,起始的经纬度。
下面就是更新状态,飞机起飞状态共包括:加油门状态、滑跑状态、起飞状态、爬升状态。
如果油门上升的时间大于规定的 _throttle_ramp_time,则飞机加速进入CLAMPED_TO_RUNWAY状态,此时的油门响应如图所示。
飞机速度大于规定的起飞速度_airspeed_min.get() * _min_airspeed_scaling.get(),则飞机进入起飞状态,此时地面站的小喇叭显示“#Takeoff airsp