无人机视觉语言导航从入门到精通(三):无人机平台基础知识
无人机视觉语言导航从入门到精通(三):无人机平台基础知识
摘要
无人机是视觉语言导航系统的物理载体,了解无人机平台的基础知识对于开发和部署 VLN 系统至关重要。本文将系统介绍无人机的分类与特点、核心硬件组成、常用传感器配置、坐标系与姿态表示、飞控系统原理等内容。通过本文的学习,读者将对无人机平台有全面的认识,为后续的算法开发和系统集成奠定基础。
关键词:无人机、多旋翼、传感器、坐标系、飞控系统、PX4、ArduPilot
一、引言
在前两篇文章中,我们介绍了视觉语言导航的基本概念和技术全景图。我们了解到,VLN 是一个涉及多个学科的交叉领域,其最终目标是让智能体能够根据自然语言指令在真实环境中自主导航。
对于无人机视觉语言导航而言,无人机平台是承载所有算法的物理基础。无人机的类型选择、传感器配置、坐标系定义、飞控系统等因素,都会直接影响 VLN 系统的设计和性能。
本文将从实际应用的角度出发,介绍无人机平台的核心知识,帮助读者建立对无人机系统的整体认识。
二、无人机分类与特点
2.1 按升力原理分类
根据升力产生的方式,无人机可分为以下几类:
固定翼无人机(Fixed-Wing UAV):通过机翼产生升力,需要一定的前进速度才能维持飞行。特点是续航时间长、飞行速度快,但无法悬停,起降需要跑道或弹射装置。
旋翼无人机(Rotary-Wing UAV):通过旋转的桨叶产生升力。单旋翼(如直升机)需要尾桨平衡扭矩;多旋翼通过多个旋翼的转速差实现姿态控制。
混合类无人机(Hybrid UAV):结合固定翼和旋翼的优点,如垂直起降固定翼(VTOL)。
2.2 多旋翼无人机
在 VLN 研究和应用中,多旋翼无人机(尤其是四旋翼)是最常用的平台,原因包括:
- 能够稳定悬停,便于观察和决策
- 机动性强,可以在狭小空间内飞行
- 结构简单,易于维护和二次开发
- 价格相对较低,适合研究使用
四旋翼的常见布局有两种:
| 布局 | 特点 |
|---|---|
| X 型 | 四个电机呈 X 形排列,机头在两电机之间,机动性好 |
| + 型 | 四个电机呈十字形排列,机头对准一个电机,控制直观 |
2.3 四旋翼飞行原理
四旋翼通过调节四个电机的转速来实现不同的飞行动作。为了平衡反扭矩,相邻电机的旋转方向相反。
设四个电机产生的升力分别为 F1,F2,F3,F4F_1, F_2, F_3, F_4F1,F2,F3,F4,则:
垂直运动:当总升力 ∑Fi\sum F_i∑Fi 大于重力 mgmgmg 时上升,小于时下降,等于时悬停。
∑i=14Fi≷mg⇒上升/下降 \sum_{i=1}^{4} F_i \gtrless mg \Rightarrow \text{上升/下降} i=1∑4Fi≷mg⇒上升/下降
俯仰运动(Pitch):前后电机差速旋转。增大后方电机转速、减小前方电机转速,无人机向前倾斜并前进。
横滚运动(Roll):左右电机差速旋转。增大右侧电机转速、减小左侧电机转速,无人机向左倾斜并左移。
偏航运动(Yaw):对角电机同向调速。增大顺时针旋转电机的转速、减小逆时针电机的转速,无人机绕垂直轴顺时针旋转。
2.4 无人机选型考虑因素
在 VLN 应用中选择无人机平台时,需要考虑以下因素:
| 因素 | 说明 |
|---|---|
| 载荷能力 | 需要承载计算单元、传感器等额外设备 |
| 续航时间 | 影响任务执行的持续时间 |
| 尺寸重量 | 影响在室内或狭小空间的适用性 |
| 开放程度 | 是否支持二次开发、接入自定义传感器和算法 |
| 安全特性 | 是否具备避障、返航、紧急着陆等安全功能 |
三、核心硬件组成
无人机系统由多个硬件模块组成,各模块协同工作实现飞行功能。
3.1 机架系统
机架(Frame)是无人机的骨架结构,用于安装和固定其他组件。机架材料常用碳纤维、铝合金或工程塑料。
机架的关键参数包括:
- 轴距:对角电机之间的距离,常见规格有 250mm、330mm、450mm、550mm 等
- 重量:直接影响载荷能力和续航
- 强度:影响抗坠毁能力
3.2 动力系统
动力系统负责产生飞行所需的升力和推力,包括以下组件:
电池(Battery):通常使用锂聚合物电池(LiPo),关键参数包括:
- 电压:以 S(串联电芯数)表示,如 3S(11.1V)、4S(14.8V)、6S(22.2V)
- 容量:以 mAh 表示,影响续航时间
- 放电倍率:以 C 表示,影响最大输出电流
电子调速器(Electronic Speed Controller, ESC):将飞控的 PWM 信号转换为电机的三相交流电,控制电机转速。
电机(Motor):将电能转换为机械能。无刷电机因效率高、寿命长而被广泛使用。电机参数以 KV 值表示,指每伏特电压下的空载转速(rpm/V)。
螺旋桨(Propeller):将电机的旋转运动转换为升力。螺旋桨参数以"直径 ×\times× 螺距"表示,如 1045 表示直径 10 英寸、螺距 4.5 英寸。
升力与转速的关系可近似表示为:
F=kF⋅ω2 F = k_F \cdot \omega^2 F=kF⋅ω2
其中,kFk_FkF 为升力系数,ω\omegaω 为电机转速。
3.3 控制系统
飞控(Flight Controller, FC):无人机的核心控制单元,负责姿态估计、稳定控制、任务执行等功能。常见的开源飞控包括:
| 飞控 | 特点 |
|---|---|
| Pixhawk 系列 | 支持 PX4/ArduPilot,硬件开放,功能丰富 |
| Betaflight | 面向穿越机,响应速度快 |
| INAV | 面向固定翼和远距离飞行 |
遥控接收机(Receiver):接收遥控器信号,用于手动控制和紧急接管。
数传模块(Telemetry):用于无人机与地面站之间的双向通信,传输状态数据和指令。
3.4 计算系统
对于 VLN 应用,无人机需要搭载**机载计算机(Companion Computer)**来运行视觉处理、语言理解、导航决策等算法。常用的机载计算平台包括:
| 平台 | 特点 |
|---|---|
| NVIDIA Jetson 系列 | GPU 加速,适合深度学习推理 |
| Raspberry Pi | 低成本,适合轻量级应用 |
| Intel NUC | 高性能 x86 平台 |
| Khadas Edge2 | NPU 加速,功耗低 |
机载计算机通常通过串口(UART)或 MAVLink 协议与飞控通信,发送高层控制指令。
四、传感器系统
传感器是无人机感知自身状态和外部环境的关键,可分为自感知传感器和环境感知传感器。
4.1 惯性测量单元
**惯性测量单元(Inertial Measurement Unit, IMU)**是飞控的核心传感器,用于测量无人机的角速度和线加速度。
IMU 通常包含:
- 三轴陀螺仪(Gyroscope):测量绕三个轴的角速度 (ωx,ωy,ωz)(\omega_x, \omega_y, \omega_z)(ωx,ωy,ωz)
- 三轴加速度计(Accelerometer):测量三个轴方向的线加速度 (ax,ay,az)(a_x, a_y, a_z)(ax,ay,az)
部分 IMU 还集成磁力计,构成九轴传感器。
IMU 数据存在噪声和漂移,需要通过滤波算法(如互补滤波、卡尔曼滤波)与其他传感器融合,得到准确的姿态估计。
姿态估计的状态方程可表示为:
q˙=12q⊗ω \dot{q} = \frac{1}{2} q \otimes \omega q˙=21q⊗ω
其中,qqq 为四元数表示的姿态,ω\omegaω 为角速度向量,⊗\otimes⊗ 为四元数乘法。
4.2 全球定位系统
**全球定位系统(Global Positioning System, GPS)**提供无人机的全球位置信息。
GPS 输出的信息包括:
- 经纬度坐标(Latitude, Longitude)
- 海拔高度(Altitude)
- 速度(Velocity)
- 定位精度(HDOP, VDOP)
标准 GPS 的定位精度约为 2-5 米。RTK(Real-Time Kinematic)GPS 通过差分定位技术可达到厘米级精度,但成本较高。
GPS 在室内、城市峡谷、树林等环境下信号易受遮挡或干扰,可靠性下降。
4.3 气压计与高度计
**气压计(Barometer)**通过测量大气压强来估计高度。根据大气压强与高度的关系:
h=T0L[1−(PP0)R⋅Lg⋅M] h = \frac{T_0}{L} \left[ 1 - \left( \frac{P}{P_0} \right)^{\frac{R \cdot L}{g \cdot M}} \right] h=LT0[1−(P0P)g⋅MR⋅L]
其中,PPP 为当前气压,P0P_0P0 为海平面标准气压,T0T_0T0 为标准温度,LLL 为温度递减率,RRR 为气体常数,MMM 为空气摩尔质量,ggg 为重力加速度。
气压计的高度估计会受到气象条件影响,通常与 GPS 高度、视觉里程计等融合使用。
超声波测距和**激光测距(LiDAR)**可提供更精确的对地高度测量,常用于低空飞行和着陆阶段。
4.4 视觉传感器
视觉传感器是 VLN 系统的核心感知设备,常用类型包括:
RGB 相机:获取彩色图像,用于目标识别、场景理解、视觉里程计等。参数包括:
- 分辨率:如 1920$\times$1080、4K
- 帧率:如 30fps、60fps
- 视场角(Field of View, FOV):影响可观测范围
深度相机(RGB-D Camera):同时获取彩色图像和深度图像。常见类型包括:
- 结构光(Structured Light):如 Intel RealSense D400 系列
- 飞行时间(Time of Flight, ToF):如 Microsoft Azure Kinect
- 双目视觉(Stereo Vision):通过视差计算深度
鱼眼相机(Fisheye Camera):超大视场角(可达 180 度以上),适合全景感知。
事件相机(Event Camera):以异步方式输出像素级亮度变化事件,具有高动态范围和低延迟特点。
4.5 其他传感器
激光雷达(LiDAR):通过激光测距获取环境的三维点云信息。优点是精度高、不受光照影响;缺点是体积重量较大、成本较高。
光流传感器(Optical Flow):测量相机下方图像的光流,用于估计水平速度,在 GPS 失效时辅助定位。
超声波传感器:用于近距离测距,常用于避障和高度保持。
五、坐标系与姿态表示
5.1 常用坐标系
在无人机系统中,涉及多个坐标系的定义和转换:
地心惯性坐标系(Earth-Centered Inertial, ECI):原点在地心,相对于恒星固定不动。主要用于航天领域。
地心地固坐标系(Earth-Centered Earth-Fixed, ECEF):原点在地心,随地球自转。GPS 输出的位置就是在此坐标系下。
北东地坐标系(North-East-Down, NED):原点在无人机起飞点或当前位置,X 轴指向正北,Y 轴指向正东,Z 轴指向地心(向下)。也称为本地坐标系或导航坐标系。
机体坐标系(Body Frame):固连于无人机机体,原点在重心,X 轴指向机头,Y 轴指向右侧,Z 轴指向下方。
相机坐标系(Camera Frame):固连于相机,原点在光心,Z 轴沿光轴方向。
5.2 姿态表示方法
姿态(Attitude)描述了机体坐标系相对于参考坐标系(通常是 NED)的旋转关系。
欧拉角(Euler Angles):使用三个角度描述旋转,通常按 Z-Y-X 顺序(偏航-俯仰-横滚):
- 偏航角(Yaw, ψ\psiψ):绕 Z 轴旋转,范围 [−π,π][-\pi, \pi][−π,π]
- 俯仰角(Pitch, θ\thetaθ):绕 Y 轴旋转,范围 [−π/2,π/2][-\pi/2, \pi/2][−π/2,π/2]
- 横滚角(Roll, ϕ\phiϕ):绕 X 轴旋转,范围 [−π,π][-\pi, \pi][−π,π]
欧拉角直观易懂,但存在**万向节死锁(Gimbal Lock)**问题:当俯仰角接近 ±90°\pm 90°±90° 时,偏航和横滚会耦合,丢失一个自由度。
旋转矩阵(Rotation Matrix):3×33 \times 33×3 正交矩阵 R∈SO(3)R \in SO(3)R∈SO(3),满足 RTR=IR^T R = IRTR=I 和 det(R)=1\det(R) = 1det(R)=1。从欧拉角到旋转矩阵的转换为:
R=Rz(ψ)Ry(θ)Rx(ϕ) R = R_z(\psi) R_y(\theta) R_x(\phi) R=Rz(ψ)Ry(θ)Rx(ϕ)
其中,
Rz(ψ)=[cosψ−sinψ0sinψcosψ0001] R_z(\psi) = \begin{bmatrix} \cos\psi & -\sin\psi & 0 \\ \sin\psi & \cos\psi & 0 \\ 0 & 0 & 1 \end{bmatrix} Rz(ψ)=cosψsinψ0−sinψcosψ0001
Ry(θ)=[cosθ0sinθ010−sinθ0cosθ] R_y(\theta) = \begin{bmatrix} \cos\theta & 0 & \sin\theta \\ 0 & 1 & 0 \\ -\sin\theta & 0 & \cos\theta \end{bmatrix} Ry(θ)=cosθ0−sinθ010sinθ0cosθ
Rx(ϕ)=[1000cosϕ−sinϕ0sinϕcosϕ] R_x(\phi) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\phi & -\sin\phi \\ 0 & \sin\phi & \cos\phi \end{bmatrix} Rx(ϕ)=1000cosϕsinϕ0−sinϕcosϕ
四元数(Quaternion):使用四个参数表示旋转,q=(qw,qx,qy,qz)q = (q_w, q_x, q_y, q_z)q=(qw,qx,qy,qz),满足单位约束 ∥q∥=1\|q\| = 1∥q∥=1。
四元数的优点:
- 没有万向节死锁问题
- 插值平滑(球面线性插值 SLERP)
- 计算效率较高
四元数与欧拉角的转换关系为:
qw=cos(ϕ/2)cos(θ/2)cos(ψ/2)+sin(ϕ/2)sin(θ/2)sin(ψ/2)qx=sin(ϕ/2)cos(θ/2)cos(ψ/2)−cos(ϕ/2)sin(θ/2)sin(ψ/2)qy=cos(ϕ/2)sin(θ/2)cos(ψ/2)+sin(ϕ/2)cos(θ/2)sin(ψ/2)qz=cos(ϕ/2)cos(θ/2)sin(ψ/2)−sin(ϕ/2)sin(θ/2)cos(ψ/2) \begin{aligned} q_w &= \cos(\phi/2)\cos(\theta/2)\cos(\psi/2) + \sin(\phi/2)\sin(\theta/2)\sin(\psi/2) \\ q_x &= \sin(\phi/2)\cos(\theta/2)\cos(\psi/2) - \cos(\phi/2)\sin(\theta/2)\sin(\psi/2) \\ q_y &= \cos(\phi/2)\sin(\theta/2)\cos(\psi/2) + \sin(\phi/2)\cos(\theta/2)\sin(\psi/2) \\ q_z &= \cos(\phi/2)\cos(\theta/2)\sin(\psi/2) - \sin(\phi/2)\sin(\theta/2)\cos(\psi/2) \end{aligned} qwqxqyqz=cos(ϕ/2)cos(θ/2)cos(ψ/2)+sin(ϕ/2)sin(θ/2)sin(ψ/2)=sin(ϕ/2)cos(θ/2)cos(ψ/2)−cos(ϕ/2)sin(θ/2)sin(ψ/2)=cos(ϕ/2)sin(θ/2)cos(ψ/2)+sin(ϕ/2)cos(θ/2)sin(ψ/2)=cos(ϕ/2)cos(θ/2)sin(ψ/2)−sin(ϕ/2)sin(θ/2)cos(ψ/2)
5.3 坐标转换
不同坐标系之间的转换是无人机系统中的常见操作。
设向量在机体系下的坐标为 vb\mathbf{v}^bvb,在 NED 系下的坐标为 vn\mathbf{v}^nvn,则:
vn=Rbnvb \mathbf{v}^n = R_b^n \mathbf{v}^b vn=Rbnvb
其中,RbnR_b^nRbn 为从机体系到 NED 系的旋转矩阵。
从经纬度坐标转换到 NED 坐标的近似公式为:
xn=(lat−lat0)⋅π180⋅Reye=(lon−lon0)⋅π180⋅Re⋅cos(lat0)zd=−(alt−alt0) \begin{aligned} x_n &= (lat - lat_0) \cdot \frac{\pi}{180} \cdot R_e \\ y_e &= (lon - lon_0) \cdot \frac{\pi}{180} \cdot R_e \cdot \cos(lat_0) \\ z_d &= -(alt - alt_0) \end{aligned} xnyezd=(lat−lat0)⋅180π⋅Re=(lon−lon0)⋅180π⋅Re⋅cos(lat0)=−(alt−alt0)
其中,(lat0,lon0,alt0)(lat_0, lon_0, alt_0)(lat0,lon0,alt0) 为参考点坐标,ReR_eRe 为地球半径。
六、飞控系统
飞控系统是无人机的大脑,负责姿态估计、稳定控制和任务管理。本节介绍飞控系统的基本原理和主流开源飞控。
6.1 系统架构
飞控系统通常采用分层控制架构:
高层控制:处理任务级和路径级的规划,输出期望位置或速度。
中层控制:将位置/速度误差转换为期望姿态,输出期望姿态角或角速度。
底层控制:将姿态误差转换为电机控制信号,通过 PWM 驱动电机。
6.2 姿态控制
姿态控制的目标是使无人机的实际姿态跟踪期望姿态。经典的 PID 控制器结构为:
u(t)=Kpe(t)+Ki∫0te(τ)dτ+Kdde(t)dt u(t) = K_p e(t) + K_i \int_0^t e(\tau) d\tau + K_d \frac{de(t)}{dt} u(t)=Kpe(t)+Ki∫0te(τ)dτ+Kddtde(t)
其中,e(t)e(t)e(t) 为误差信号,KpK_pKp、KiK_iKi、KdK_dKd 分别为比例、积分、微分增益。
对于姿态控制,通常采用串级 PID 结构:
- 外环:角度控制,输入为姿态角误差,输出为期望角速度
- 内环:角速度控制,输入为角速度误差,输出为控制力矩
内环的响应速度需要快于外环,以保证系统稳定性。
6.3 位置控制
位置控制的目标是使无人机跟踪期望位置轨迹。控制过程为:
- 计算位置误差 ep=pdes−p\mathbf{e}_p = \mathbf{p}_{des} - \mathbf{p}ep=pdes−p
- 通过 PID 计算期望速度 vdes\mathbf{v}_{des}vdes
- 计算速度误差 ev=vdes−v\mathbf{e}_v = \mathbf{v}_{des} - \mathbf{v}ev=vdes−v
- 通过 PID 计算期望加速度 ades\mathbf{a}_{des}ades
- 根据期望加速度计算期望姿态
期望姿态的计算基于以下关系:无人机通过倾斜产生水平加速度。设期望水平加速度为 (ax,ay)(a_x, a_y)(ax,ay),则期望俯仰角和横滚角约为:
θdes≈axg,ϕdes≈−ayg \theta_{des} \approx \frac{a_x}{g}, \quad \phi_{des} \approx -\frac{a_y}{g} θdes≈gax,ϕdes≈−gay
6.4 PX4 飞控
PX4 是目前最流行的开源飞控软件之一,具有以下特点:
- 模块化架构,便于功能扩展
- 支持多种飞行器类型(多旋翼、固定翼、VTOL 等)
- 完善的仿真支持(Gazebo、jMAVSim、AirSim)
- 丰富的通信接口(MAVLink、uORB)
- 活跃的社区和文档
PX4 的软件架构基于发布-订阅模式,各模块通过 uORB 消息总线通信。
关键模块包括:
| 模块 | 功能 |
|---|---|
| sensors | 传感器驱动和数据融合 |
| ekf2 | 扩展卡尔曼滤波状态估计 |
| mc_pos_control | 多旋翼位置控制 |
| mc_att_control | 多旋翼姿态控制 |
| navigator | 任务管理和路径规划 |
| commander | 飞行模式管理和安全逻辑 |
6.5 ArduPilot 飞控
ArduPilot 是另一个广泛使用的开源飞控项目,历史悠久,功能全面。
ArduPilot 的特点:
- 支持更多类型的飞行器和地面车辆
- 丰富的飞行模式(20+ 种)
- 强大的日志和调试功能
- 良好的硬件兼容性
ArduPilot 包含多个子项目:
- ArduCopter:多旋翼
- ArduPlane:固定翼
- ArduRover:地面车辆
- ArduSub:水下机器人
6.6 与机载计算机的集成
在 VLN 应用中,机载计算机需要与飞控进行通信,实现以下功能:
- 获取无人机状态信息(位置、姿态、速度等)
- 发送控制指令(位置命令、速度命令、姿态命令)
- 切换飞行模式
通信通常通过 MAVLink 协议进行。MAVLink 是一种轻量级的消息协议,定义了一系列标准消息格式,用于无人机与地面站、机载计算机之间的通信。
常用的开发库包括:
- MAVROS:ROS 与 MAVLink 的桥接,适合使用 ROS 的项目
- pymavlink:Python 实现的 MAVLink 库
- MAVSDK:官方 SDK,支持多种编程语言
七、安全与法规
7.1 安全机制
无人机系统应具备完善的安全机制:
故障保护(Failsafe):
- 遥控信号丢失时自动返航或降落
- 电池电压过低时强制返航
- GPS 信号丢失时切换到姿态模式
地理围栏(Geofence):限制无人机的飞行区域,防止飞入禁飞区或超出操作范围。
紧急停止:在危险情况下立即停止电机。
7.2 法规要求
各国对无人机飞行有不同的法规要求。在中国,需要遵守以下规定:
- 民用无人机需进行实名登记
- 在特定空域飞行需申请审批
- 遵守飞行高度和距离限制
- 禁止在机场净空区、军事管制区等禁飞区域飞行
进行 VLN 研究时,建议在室内场地或授权的室外试验场地进行,并做好安全防护措施。
八、小结
本文系统介绍了无人机平台的基础知识,包括无人机的分类与特点、核心硬件组成、传感器系统、坐标系与姿态表示、飞控系统原理等内容。
对于 VLN 研究和开发者而言,需要重点掌握以下知识:
- 多旋翼无人机的飞行原理:理解如何通过电机转速控制飞行姿态
- 传感器特性:了解各类传感器的原理、优缺点和适用场景
- 坐标系与变换:熟练进行不同坐标系之间的转换
- 飞控接口:掌握与飞控通信的方法,能够获取状态和发送控制指令
在后续的实战篇中,我们将基于这些基础知识,在仿真环境和真实无人机上实现 VLN 系统。
参考文献
[1] Quan Q. Introduction to Multicopter Design and Control. Springer, 2017.
[2] Beard R W, McLain T W. Small Unmanned Aircraft: Theory and Practice. Princeton University Press, 2012.
[3] PX4 Development Guide. https://docs.px4.io/
[4] ArduPilot Documentation. https://ardupilot.org/dev/
[5] Meier L, Honegger D, Pollefeys M. PX4: A Node-Based Multithreaded Open Source Robotics Framework for Deeply Embedded Platforms. ICRA, 2015.
下篇预告
下一篇文章《开发环境与工具链配置》将介绍 VLN 开发所需的软件环境搭建,包括 Python 环境配置、深度学习框架安装、仿真环境搭建(AirSim、Habitat)等内容,帮助读者构建完整的开发环境。
更多推荐
所有评论(0)