1. 课程导入与BlueROV2系统总览

BlueROV2 是一台开源、可扩展、面向教学与科研的遥控水下机器人(ROV)。它由 Blue Robotics 推出,整机采用“开放式框架 + 六个推进器”的经典布局,配合 ArduSub 固件与 QGroundControl 地面站,构成一套从硬件到软件都可被学习者完整拆解、理解与二次开发的水下机器人平台。本课程的目标不是让你“会按按钮”,而是让你理解这台机器为什么这样设计、每个部件在控制回路中承担什么角色,以及当你改变一个参数或更换一个部件时,系统会发生什么变化。

要建立这种理解,第一步是把 BlueROV2 看作一个“分层系统”,而不是一堆零件的堆叠。从能量与信号的流动方向看,它大致可以分为四层:能源层(电池、电源分配、保险与电压转换)、执行与感知层(推进器、电子调速器 ESC、IMU、深度传感器、外接摄像头与声呐等)、控制层(Pixhawk 系列飞控、ArduSub 固件、参数系统)、交互层(地面站 QGroundControl、手柄、脐带缆或水面通信链路)。这四层之间的连接关系,正是理解整机行为的主线。

BlueROV2 系统分层与信号/能量流向 交互层 QGroundControl 参数 / 校准 / 日志 游戏手柄 摇杆 → 期望运动 脐带缆 / 通信 Fathom-X / 以太网 水面供电 可选岸电 控制层 Pixhawk 飞控 运行 ArduSub 固件 ArduSub 控制律 姿态 / 深度 / 推力分配 参数系统 FRAME_CONFIG / MOT_x 执行与感知层 6× 推进器 T200 + ESC 矢量布局 IMU 加速度 / 陀螺 姿态反馈 深度传感器 MS5837 压力 → 深度 外接设备 摄像头 / 照明 / 机械臂 声呐 / 抓取器 能源层 锂电池组 14.8V / 18Ah 示例 电源分配板 保险 / 分路 电压转换 5V / 12V 供飞控与外设 遥控指令 / 参数 PWM 推力指令 姿态 / 深度反馈 供电

在这套分层结构中,ArduSub 是整台机器人的“控制中枢”。它运行在 Pixhawk 飞控上,向上接收来自手柄或地面站的期望运动指令,向下把指令翻译成六个推进器各自的 PWM 输出,同时不断读取 IMU 与深度传感器的反馈,形成闭环。理解 ArduSub 的角色,可以用一句话概括:它把“人想怎么动”翻译成“每个推进器该转多快”,并在过程中持续修正误差。

具体来说,ArduSub 内部至少完成三件事。第一是模式管理:MANUAL、STABILIZE、ALT_HOLD、POSHOLD 等飞行模式决定了哪些自由度由人直接控制、哪些由飞控自动保持。第二是姿态与深度控制:在 STABILIZE 模式下,飞控用 IMU 数据把横滚与俯仰拉回水平;在 ALT_HOLD 模式下,用深度传感器把当前深度保持住。第三是推力分配:BlueROV2 的六个推进器采用矢量布局,ArduSub 通过 FRAME_CONFIG 参数识别机架类型,再按几何关系把“前进、横移、升降、偏航”等期望运动分解为各推进器的推力比例。

这里有一个初学者最容易忽略、但对后续所有调试都至关重要的概念:坐标系约定。ArduSub 采用机体坐标系(NED 的机体版本):X 轴指向机头前方,Y 轴指向右侧,Z 轴指向下方。因此“前进”是 +X,“右移”是 +Y,“下潜”是 +Z。俯仰(pitch)绕 Y 轴,横滚(roll)绕 X 轴,偏航(yaw)绕 Z 轴。全文与图示都遵循这一约定;如果你在调试中发现某个方向反了,第一反应应当是检查坐标系与推进器转向,而不是盲目改参数。

为了让“推力分配”这件事变得可感知,可以看一个简化的教学示例(以下数值为说明原理而设,并非实测)。假设在 MANUAL 模式下,操作者给出“前进 + 轻微右转”的指令,ArduSub 会把它分解为:左前与右前推进器正向推力较大,左后与右后推进器正向推力较小,同时左右两侧形成差速以产生偏航力矩。垂直方向的两个推进器保持中立。若此时机器人实际向左偏,说明偏航方向的推力分配或推进器转向与预期不符,应检查对应 MOT_x 参数的正负号与桨叶安装方向。这个“指令 → 分解 → 实际运动 → 偏差 → 修正”的循环,就是后续章节反复出现的调试主线。

学习建议:每当你修改一个参数,先问自己三个问题——它属于哪一层?它影响的是指令解析、控制律还是推力分配?我如何用一次可观察的运动来验证它生效了?带着这三个问题学习,比记住参数表更有价值。

关于课程目标与学习路径,本课程按“先看懂、再动手、后排障”的顺序组织。前段建立系统总览与安全认知,理解 BlueROV2 的组成、ArduSub 的角色与坐标系;中段进入实操,包括飞控与固件连接、传感器校准、机架与推进器配置、模式切换与手柄映射;后段聚焦参数调优、典型故障排查与扩展设备接入。每一节都会尽量给出可执行的操作、可观察的现象与可判断的结果,而不是停留在概念复述。

在正式开始之前,建议你先完成一次“静态熟悉”:断电状态下打开框架,逐一找到电池、电源分配板、飞控、六个 ESC 与推进器、深度传感器与摄像头接口,并对照上面的分层图确认它们的连接关系。然后通电但不解锁,连接 QGroundControl,观察姿态显示是否随手动倾斜而变化、深度读数是否随传感器受压而变化。这两步不需要任何参数修改,却能帮你建立“信号从哪来、到哪去”的直觉,为后续所有调试打下基础。

安全提示:首次通电前务必确认推进器周围无杂物、桨叶安装方向正确、电池电压在正常范围。任何涉及推进器转动的测试,都应先把机器人固定在支架上或置于安全位置,避免意外启动造成伤害。

最后需要强调,BlueROV2 的价值不仅在于它是一台能下水的小型 ROV,更在于它把一套完整的机器人控制链路以开放的形式呈现出来:你能看到传感器、能看到控制律的参数、能看到每个推进器的输出。ArduSub 把这套链路串起来,而本课程要做的,是带你沿着这条链路,从“知道它由什么组成”走到“知道它为什么这样动”。