Pixhawk 6C 飞控学习 02:传感器、坐标系与安装方向

本篇要解决什么问题

上一篇已经完成了 QGroundControl 首次连接、原始参数备份、姿态仪观察,以及通过 MAVLink Console 确认板卡和 microSD 状态。

接下来不能急着连接电机。真正让一台四旋翼稳定起飞之前,必须先回答几个基础问题:

  • 飞控怎么知道自己向哪边倾斜?
  • Pixhawk 外壳上的箭头代表什么?
  • 横滚、俯仰和偏航分别绕哪根轴旋转?
  • 陀螺仪、加速度计、磁力计和气压计各自测量什么?
  • 为什么传感器都显示正常,现在仍然不应该重新校准?

本篇继续保持安全边界:只连接 USB,只观察界面和已经导出的参数,不接动力电池、不接电机、不刷固件,也不重新校准传感器。

当前飞控的实测状态

从上一阶段导出的 1,100 项原始参数中,可以读到当前传感器与方向配置:

项目 参数或实测结果 说明
板卡架构 PX4_FMU_V6C 与 Pixhawk 6C 相符
飞控安装方向 SENS_BOARD_ROT=0 默认方向,即 ROTATION_NONE
加速度计 0 CAL_ACC0_ID=6946826 已识别
加速度计 1 CAL_ACC1_ID=2490378 已识别
陀螺仪 0 CAL_GYRO0_ID=6684682 已识别
陀螺仪 1 CAL_GYRO1_ID=2490378 已识别
磁力计 0 CAL_MAG0_ID=396321 已识别
气压计 0 CAL_BARO0_ID=4028193 已识别

编号不为 0,说明 PX4 已识别相应设备并保存了校准关联。这里暂时把设备 ID 当作“传感器身份证”,不根据数字强行猜测芯片型号。

Pixhawk 6C 使用两组加速度计和两组陀螺仪。冗余传感器可以让系统进行一致性检查,并在某一路数据异常时提供更多判断依据。不过“双传感器”不等于任何情况下都不会失效,安装振动、供电、温度和软件配置仍然会影响最终结果。

先分清姿态与位置

姿态描述的是飞行器“朝向哪里、倾斜多少”,主要包括:

名称 英文 旋转轴 直观动作
横滚 Roll 机体前后轴 左右侧倾
俯仰 Pitch 机体左右轴 抬头或低头
偏航 Yaw 机体竖直轴 保持大致水平并左右转向

位置则描述飞行器位于空间中的哪个点。只靠 IMU 可以在短时间内估计姿态变化,但不能长期可靠地得到绝对位置。实际飞行中还需要 GNSS、气压计、磁力计,或者视觉、光流等信息共同约束状态估计。

两套必须认识的坐标系

机体坐标系:FRD

PX4 常用的机体坐标系是 FRD:

X:Front,指向机头
Y:Right,指向机体右侧
Z:Down,指向机体下方

三根轴遵循右手定则。Pixhawk 6C 顶面的箭头定义了飞控认为的机头方向,也就是机体 X 轴正方向。

局部世界坐标系:NED

PX4 常用的局部世界坐标系是 NED:

X:North,指向北
Y:East,指向东
Z:Down,指向地面

NED 的 Z 轴向下是航空航天领域的常见约定。以后观察高度、速度、加速度和控制器符号时,需要先确认数据属于机体坐标系还是世界坐标系,不能只凭正负号猜方向。

PX4 坐标与记号说明:https://docs.px4.io/main/en/contribute/notation

四类传感器分别在做什么

陀螺仪:测量角速度

陀螺仪告诉 PX4 飞行器绕三根轴转得多快。它响应快,是姿态控制回路中的关键数据源。

但角速度需要随时间积分才能得到角度。很小的偏置经过持续积分也会形成漂移,所以陀螺仪不能独自长期维持绝对姿态参考。校准陀螺仪时必须让机体保持静止;如果校准过程中移动飞控,QGroundControl 会重新开始该过程。

加速度计:测量比力

加速度计并不是一个直接输出“姿态角”的传感器。它测量比力;飞行器静止时,输出中会体现重力方向,因此可以帮助估计水平面。

当飞行器快速加速、急转或受到强烈振动时,加速度计同时感受到运动和振动,不能把所有输出都简单解释成重力。姿态估计器需要结合陀螺仪等信息进行融合。

磁力计:提供航向参考

磁力计通过地磁场为偏航方向提供长期参考,但很容易受到电机、粗电流线、电源模块、磁性螺丝和金属结构干扰。

外置磁力计通常集成在 GPS 模块中,应尽量远离大电流电子设备,方向标记朝向机头。整机未装好之前进行磁力计校准,不能代表最终电磁环境。

气压计:从气压变化估计高度

气压计测量静压,PX4 根据气压变化估计相对高度。它会受到气流、桨下洗流、机舱密封、天气变化和温度的影响,因此安装时既要避免直接吹风,也不能把传感器完全密封在无法感知外界气压的位置。

QGroundControl 的传感器页面

当前实际页面如下:

QGroundControl 传感器配置页面

左侧按钮的作用是:

按钮 操作结果 当前是否执行
罗盘 开始磁力计校准
陀螺仪 开始静止角速度零偏校准
加速度计 开始多方向校准
校平地平线 保存整机水平姿态偏置
Orientations 设置飞控和外置磁力计安装方向 只读查看
Factory reset 恢复配置 绝不在当前阶段执行

页面提示“要开始某个校准步骤,请点击左侧的一个按钮”。这表示当前没有校准任务正在进行,因此“取消”按钮为灰色。

No rotation 到底是什么意思

只读打开 Orientations 后,QGroundControl 显示:

QGroundControl 显示 Autopilot Orientation 为 No rotation

界面值为:

Autopilot Orientation: No rotation

它与参数 SENS_BOARD_ROT=0 一致,对应 ROTATION_NONE。含义不是“飞控不能旋转”,而是:飞控硬件的默认坐标方向与机体坐标方向之间不需要额外旋转补偿。

采用默认方向时:

  • Pixhawk 顶面朝上。
  • 外壳箭头指向机头。
  • 飞控尽量靠近整机重心安装。
  • 使用厂家建议的减振泡棉或安装方式。

如果受空间限制,飞控不得不侧装、倒装或旋转安装,才需要根据真实安装方式选择对应旋转。不能为了让姿态仪“看起来顺眼”而随意试选方向。

Pixhawk 6C 安装说明:https://docs.px4.io/main/en/assembly/quick_start_pixhawk6c

为什么现在不重新校准

当前概况页中磁力计、陀螺仪和加速度计均显示就绪,姿态仪也已经通过动态观察。此时裸板重新校准不会让系统更“新”,反而会把临时桌面环境当作最终安装环境。

更合理的时机是:

  1. 确认最终机架和机头方向。
  2. 将 Pixhawk 按最终方向固定在机架上。
  3. 安装电源模块、GPS/外置磁力计和接收机。
  4. 整理大电流线并确认磁力计远离干扰源。
  5. 拆下全部螺旋桨。
  6. 再按照 QGroundControl 引导完成陀螺仪、加速度计、磁力计和水平校准。

QGroundControl 传感器校准说明:https://docs.qgroundcontrol.com/Stable_V5.0/en/qgc-user-guide/setup_view/sensors_px4.html

当前检查清单

  • [x] 从原始参数确认两组加速度计和两组陀螺仪。
  • [x] 确认一组磁力计和一组气压计。
  • [x] 理解 FRD 机体坐标系与 NED 世界坐标系。
  • [x] 区分 Roll、Pitch 和 Yaw。
  • [x] 确认 SENS_BOARD_ROT=0
  • [x] 在 QGroundControl 中确认 Autopilot Orientation = No rotation
  • [x] 保持原校准数据,没有执行 Factory reset 或重新校准。
  • [ ] 确认最终机架、机头方向和飞控安装位置。
  • [ ] 识别电源模块、GPS/磁力计、遥控接收机和数传等实物。

下一步

下一篇进入“硬件清单、接口和安全接线”。先把已经购买的每一个部件识别清楚,建立“部件—接口—供电—作用”对照表,再决定还缺少哪些能够组成一台安全四旋翼的部件。

在拥有完整机架、电机、电调、电源模块、GPS、遥控器和接收机之前,不进入带动力测试;在完成电机编号与转向核对之前,不安装螺旋桨。

3d打印 ai辅助设计 algorithms apriltag axis-angle bang-bang blender bode cadquery calibration camera calibration chrome cmake cmakelists cnn colcon conan control cpp cpu d435i data_struct db design-pattern dots economics eigen factory-pattern fcpx fiducial marker figure finance forge fov freecad gazebo gdb git gnu ibus imu interest isaac gym isaac lab isaaclab kdl latent variable latex launch learning-notes legged locomotion legged robotics legged-robot life linux linux-kernel mac math matlab matrix memory mlp money motion-control motor moveit mpc mujoco network ocs2 ode openscad operator optimal algorithm optimal-control perf performance personal-finance pixhawk 6c ppo privileged learning profiling px4 python qgroundcontrol qos quadrotor realsense reinforcement learning representation learning reward tuning rnn robot robotics ros ros2 rtb security shell sim-to-real simulation socket stairs stl stm32 tcp-ip teacher policy thread tools twist ubuntu uml unitree urdf vae valgrind vcxsrv velocity vim web wifi work wsl 中文输入 交叉编译 依赖管理 分支管理 四足机器人 实验诊断 强化学习 机器人 机器人控制 机器人视觉 构建系统 深度学习 深度相机 点云 版本控制 神经网络 自主回充 视觉定位 训练曲线 输入法 配置类 飞控
知识共享许可协议