代码基于ardupilot3.4.2RC2,仅分析ArduCopter(多旋翼、直升机)构型中代码逻辑、使用关系,其他构型(飞机、云台、车)后续考虑分析。
函数作用:使用爬升速率向上或向下调整alt目标,单位厘米每秒。
函数全局调用情况如下:共6处出现该函数,其中2处是定义,4处是使用,在ALTHOLD、LOITER、POSHOLD、SPORT4种模态下,做高度控制时使用。
函数声明情况如下:
函数声明文件如下:
函数流程图如下:就只有一句代码,做乘法,加到高度_pos_target.z上。
_pos_target.z += climb_rate_cms * dt;
函数原始代码如下:
/// add_takeoff_climb_rate - adjusts alt target up or down using a climb rate in cm/s使用爬升速率向上或向下调整alt目标,单位厘米每秒
/// should be called continuously (with dt set to be the expected time between calls)应连续调用此函数,dt是期待的间隔
/// almost no checks are performed on the input不对输入做任何检查
void AC_PosControl::add_takeoff_climb_rate(float climb_rate_cms, float dt)
{
_pos_target.z += climb_rate_cms * dt;
}