我知道摇杆是用来控制速度的,但是最终PID不应该还是高度控制吗?
newThrust = THRUST_SCALE * runPidZ(&posPid.pidVZ, state->position.z, setpoint, POS_UPDATE_DT);
这里state->position.z应该就是拟合后的高度吧?
axis->setpoint += setpoint->velocity.z * dt;
这里把摇杆的位置转换成速度然后积分得到目标高度
out = pidUpdate(&axis->pid, axis->setpoint - input);
运行PID 目标值高度-当前高度
如果理解没有问题的话,那一件起飞是在定高模式下,应该有一个目标高度吧?
setpoint->thrust = 0;
setpoint->isAltHold = true;
setpoint->velocity.z = (rawThrust - 32768.f) / 32768.f;
这里是一键起飞的内容,如果油门中点是32768的话那油门在中点起飞速度是0,那目标高度如何确认的呢?
我知道摇杆是用来控制速度的,但是最终PID不应该还是高度控制吗?
newThrust = THRUST_SCALE * runPidZ(&posPid.pidVZ, state->position.z, setpoint, POS_UPDATE_DT);
这里state->position.z应该就是拟合后的高度吧?
axis->setpoint += setpoint->velocity.z * dt;
这里把摇杆的位置转换成速度然后积分得到目标高度
out = pidUpdate(&axis->pid, axis->setpoint - input);
运行PID 目标值高度-当前高度
如果理解没有问题的话,那一件起飞是在定高模式下,应该有一个目标高度吧?
setpoint->thrust = 0;
setpoint->isAltHold = true;
setpoint->velocity.z = (rawThrust - 32768.f) / 32768.f;
这里是一键起飞的内容,如果油门中点是32768的话那油门在中点起飞速度是0,那目标高度如何确认的呢?
举报