PX4飞控调试方案

PX4 飞控调试方案

  • 注:

    每次无人机起飞前和降落后都应用手去触摸电机感受温度

    若温度过高应等待电机冷却后再进行起飞

    防止烧坏电机!

    温度过高常常代表其 PID 调参有问题

    D 过高会导致电机变烫

    而 PID 整体调参过小导致无人机震荡也会造成电机变烫

QGC 地面站设置

刷固件

烧录固件前务必将连接到飞控的所有设备断开(拔掉飞控上的所有杜邦线)!否则可能会造成烧录出错。

PID 调试

  • PID 调参要点

    在 PID 调参之前,需要先调整无人机滤波

    先使用高度\自稳模式\定点模式调试 pitch、roll 内环 PID

    再用定点模式调 yaw 内环 PID

    每次调参后都需要重新飞行收集数据

    如果飞行抖动剧烈一定要立刻降落、锁定桨叶,观察电机温度,防止电机烧坏

    具体步骤:

    1. 每次起飞前和降落后都应用手去触摸电机感受温度;
    2. 在无人机上装上速传对飞机模式进行监控,
      如果模式发生突变(如:定点模式因 T265 定位飘掉,导致定位不准降级为高度模式),
      应立即下拉油门降落,并用制动按钮锁定桨叶;
    3. 飞手控制无人机在空旷的室内场地绕正方形飞行,
      飞行速度要有一定的突变,不要非常平稳的飞行;
    4. 降落后下载日志进行可视化。
      注:飞行过程中一定需要另一名人员在旁边拿着网兜在无人机失控时进行物理制动。
  • 日志可视化:

    可视化软件 PlotJuggler

滤波调参

PID 先使用刷固件时默认的 PID 参数

点击左上角的 Tools –> Fast Fourier Transform 选项

进行快速傅里叶变换界面

1

  • 调参数 IMU_GYRO_CUTOFF

    看陀螺仪数据的 FFT 频谱图

    在参数列表中找到 sensor_combined

    将 gyro_rad.00 gyro_rad.01 gyro_rad.02 拖入右边的 FFT 中

    点击 Calculate 进行傅里叶变换

    以下图为例,在 35Hz 后的噪声较多,可以设置 IMU_GYRO_CUTOFF 为 35

    IMU_GYRO_CUTOFF 越低响应越慢,穿越机正常可以设置在 80 - 120 之间,但需要根据实际情况来设置

    2

    再比如下图,在 40HZ 以后的噪声比较多,可以设置 IMU_GYRO_CUTOFF 为 35。

    3

  • 调参数 IMU_ACCEL_CUTOFF

    看加速度的 FFT 图

    在参数列表中找到 sensor_combined

    将 accelerometer_m_s2.00 accelerometer_m_s2.01 accelerometer_m_s2.02 拖入右边的 FFT 中

    点击 Calculate 进行傅里叶变换

    4

    以下图为例,在 35Hz 以后的振动比较大,可以设置 IMU_ACCEL_CUTOFF 为 30

    5

  • 调参数 IMU_DGYRO_CUTOFF

    看角加速度的 FFT 图

    需要在 PX4 地面站中设置才能有数值显示在日志中进行查看

    由于我测试时时间不足,故该部分直接使用了默认参数

  • 陷波滤波器调参

    有的时候 FFT 在一个较低的频率处有个尖峰,如果想用低通滤波将其滤除的话,需要将截止频率设置的很低,会使延时增大,此时可以通过陷波滤波器将其滤除。

    需要注意的是,这种尖峰可能是由于飞机部件松动引起的振动,加固飞机可能比调滤波参数更有效果。

    以下图为例,需要设置两个陷波滤波器,IMU_GYRO_CUTOFF 可以设置为 120

    6

    第一个:
    频率参数 IMU_GYRO_NF0_FRQ 设置为 20
    陷波区间 IMU_GYRO_NF0_BW 设置为 10

    第二个:
    频率参数 IMU_GYRO_NF0_FRQ 设置为 26.5
    陷波区间 IMU_GYRO_NF0_BW 设置为 2

    陷波滤波后的效果如下:

    7

PID 调参

PID 调参可以选择三种方式:

  • QGC 地面站自动调参(需要较大的空间防止碰撞)

  • 边飞行边通过地面站调整参数

  • 飞行一趟后通过日志进行调参

其中边飞行边通过地面站调整参数参数不能一次性变化过大

这边介绍通过日志进行调参,原理同样适用于边飞行边通过地面站调整参数

注:一般而言,roll 和 pitch 的参数是一致的

  • 角度环内环

    以 roll 调参为例:

    在参数列表中找到 vehicle_angular_velocityvehicle_rates_setpoint

    将 xyz.00 xyz.01 xyz.02(实际值) 和 roll pitch yaw(设定值) 拖入右边的 tab 中

    其中 xyz.00 xyz.01 xyz.02 和 roll pitch yaw 一一对应

    8

    图中 roll 的实际值明显大于设定值,这是超调现象,正常而言需要调大 D 来抑制超调

    9

    但是调大 D 会加快电机发烫,所以此时应该选择调小 P 来进行抑制

    在 QGC 地面站中,角度环的 P 只能在参数列表中进行修改,不能通过 PID 界面进行修改

    P 不宜过小,默认是 1.5,这边建议是不小于 1.2,P 过小会导致时延

    当 P 无法再小而仍有超调现象时,应该调大 D

    10

    I 是用来抑制风的影响,我们主要是做室内无人机,I 不宜过大

    I 应为调完 P 和 D 后再进行调整

    • I 太小:
      慢性漂移、遇持续风顶不住、需要长期手动修正。

    • I 太大:

      出现慢频率的来回摆(不是高频颤抖),松杆后拖泥带水、超调明显;

      大幅机动或油门打满后,出现“黏滞感/回正很慢”

  • 角度环外环

    以 roll 调参为例:

    点击左上角的 Tools –> Fast Fourier Transform 选项

    进入四元数变化界面

    在参数列表中找到 vehicle_attitudevehicle_attitude_setpoint

    将 q.01 q.02 q.03 q.00(实际值) 拖入右边的 tab 中 X Y Z W 中

    设定预设名称并点 Save 保存

    11

    再次进入四元数变化界面

    将 q_d.01 q_d.02 q_d.03 q_d.00(设定值) 拖入右边的 tab 中 X Y Z W 中

    设定预设名称并点 Save 保存

    12

    将之前保存于左下角 Custom Series 中的四元数变化值拖入右边的 tab 中进行可视化

    如果实际值超过设定值,则减小 P,反之增大 P

    13

    不是一定要追求设定值和实际值重合,重合的效果不一定好,反而可能导致无人机抖动

    根据实际情况调整

  • 速度环
    以 x 调参为例:

    在参数列表中找到 vehicle_local_positionvehicle_local_position_setpoint

    将 x y z(实际值) 和 x y z(设定值) 拖入右边的 tab 中

    可见实际值明显超调,且有略微的时延

    需要增大 D,略微调小 P,略微调小 I

    14

调参顺序为:

  1. 滤波

  2. 角度环内环

  3. 角度环外环

  4. 速度环

每次调参后都需重新起飞获取新的日志(如果是实时调参则不需要)