1. 课程导入与BlueROV2系统总览
BlueROV2 是一台开源、可扩展、面向教学与科研的遥控水下机器人(ROV)。它由 Blue Robotics 推出,整机采用“开放式框架 + 六个推进器”的经典布局,配合 ArduSub 固件与 QGroundControl 地面站,构成一套从硬件到软件都可被学习者完整拆解、理解与二次开发的水下机器人平台。本课程的目标不是让你“会按按钮”,而是让你理解这台机器为什么这样设计、每个部件在控制回路中承担什么角色,以及当你改变一个参数或更换一个部件时,系统会发生什么变化。
要建立这种理解,第一步是把 BlueROV2 看作一个“分层系统”,而不是一堆零件的堆叠。从能量与信号的流动方向看,它大致可以分为四层:能源层(电池、电源分配、保险与电压转换)、执行与感知层(推进器、电子调速器 ESC、IMU、深度传感器、外接摄像头与声呐等)、控制层(Pixhawk 系列飞控、ArduSub 固件、参数系统)、交互层(地面站 QGroundControl、手柄、脐带缆或水面通信链路)。这四层之间的连接关系,正是理解整机行为的主线。
在这套分层结构中,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 把这套链路串起来,而本课程要做的,是带你沿着这条链路,从“知道它由什么组成”走到“知道它为什么这样动”。