机器人学概论与学科体系
第1章:机器人学概论与学科体系
1.1 机器人自主导航的定义与研究范畴
机器人自主导航是指移动机器人在无需人工干预的情况下,通过感知环境、理解自身状态、规划运动策略并执行控制指令,实现从起点到目标点的安全、有效移动。这一能力涵盖了环境感知、定位建图、路径规划、运动控制等多个核心技术领域,是机器人从“自动化设备”向“智能化系统”演进的关键标志。
从研究范畴来看,机器人自主导航并非一个单一的技术问题,而是一个典型的复杂系统集成问题。一个完整的导航系统需要解决四个根本性的科学问题:“我在哪里”——即机器人对自身位姿的准确估计;“环境是什么”——即对周围空间结构的感知与理解;“如何到达”——即从当前位置到目标位置的可行路径计算;以及“如何执行”——即将规划的运动指令转化为电机驱动的物理动作。这四个问题相互耦合、相互影响,共同构成了机器人自主导航的核心挑战。
理解这一研究范畴需要引入状态空间与动作空间的数学框架。在导航问题中,机器人的状态通常包括位置 $(x, y, z)$、姿态(航向角、翻滚角、俯仰角)以及运动速度 $(\dot{x}, \dot{y}, \dot{z})$ 等要素,这些状态构成的状态空间记作 $\mathcal{X} \subset \mathbb{R}^n$。而机器人能够采取的行动——如电机转速、转向角度、加速度指令等——则构成动作空间 $\mathcal{U} \subset \mathbb{R}^m$。导航的核心任务即在给定环境约束 $g(\mathbf{x}, \mathbf{u}) \leq 0$ 的条件下,寻找从初始状态 $\mathbf{x}_0$ 到目标状态 $\mathbf{x}_*$ 的最优或可行轨迹。
这一问题的复杂性源于多个层面。首先,环境本身具有不确定性——无论是静态障碍物的精确位置,还是动态障碍物的运动轨迹,机器人都无法完全预知。其次,传感器存在固有误差,观测信息带有噪声;执行器存在响应延迟与物理限制,控制精度不可能无限高。更重要的是,这些不确定性往往相互叠加,导致状态估计与控制决策必须在噪声环境下进行实时计算。正是这种不确定性条件下的实时决策特性,使得机器人自主导航成为控制理论、人工智能、概率推断、计算机视觉等多个学科的交叉前沿。
从应用场景的角度进一步界定研究范畴,我们可以将移动机器人划分为室内服务机器人、室外移动平台、空中无人机、水下航行器等不同类别。虽然这些平台的物理形态与运动学模型各异,但其自主导航所面临的核心科学问题具有高度相似性。室内环境通常结构化程度较高、空间尺度较小,但可能存在人员流动带来的动态障碍;室外环境空间开阔,但地形复杂、天气条件多变。这种应用场景的多样性并不改变导航问题的本质结构,而是对算法在不同约束条件下的适应性提出了更高要求。
值得强调的是,本书所讨论的自主导航特指地面移动机器人的导航问题,这是因为地面移动机器人具有最广泛的工业与服务应用场景,同时其运动学约束——特别是非完整性约束(如轮式机器人的不能横向滑动)——为控制理论带来了独特的数学挑战。空中无人机虽然也涉及导航问题,但其飞行控制与气动特性超出了本书的讨论范围。
1.2 感知-规划-控制三层架构
机器人自主导航系统的设计遵循分层递阶的基本原则,这一原则最早由尼尔斯·尼尔森(Nils Nilsson)在上世纪60年代提出,后来经过Saridis等人的系统化发展,成为机器人控制架构的经典范式。现代导航系统通常采用感知-规划-控制三层架构,每一层有其特定的功能定位、信息处理方式和决策周期,三层之间通过标准化的接口实现信息流动与任务协调。
感知层构成导航系统的输入端,负责从传感器原始数据中提取环境状态信息。这一层要解决的核心问题是状态估计——即如何从带噪声的传感器观测中推断机器人当前的位姿与环境结构。感知层的输入是传感器数据流,包括但不限于:激光雷达的距离测量、摄像头的像素图像、惯性测量单元的加速度与角速度、轮式编码器的里程计脉冲、GPS接收机的卫星信号等。感知层的输出则是经过融合与估计后得到的环境模型与机器人状态估计值,如占用栅格地图、特征点云、当前位姿的后验概率分布等。
从数学角度看,感知层本质上是一个贝叶斯滤波问题。设 $t$ 时刻的隐状态为 $\mathbf{x}_t$(包括机器人位姿与地图特征),观测为 $\mathbf{z}_t$,则状态的后验概率分布可递归计算为:
$$p(\mathbf{x}_t | \mathbf{z}_{1:t}) = \eta \cdot p(\mathbf{z}_t | \mathbf{x}_t) \cdot \int p(\mathbf{x}_t | \mathbf{x}_{t-1}) \cdot p(\mathbf{x}_{t-1} | \mathbf{z}_{1:t-1}) d\mathbf{x}_{t-1}$$
其中似然项 $p(\mathbf{z}_t | \mathbf{x}_t)$ 描述传感器观测模型,转移概率 $p(\mathbf{x}_t | \mathbf{x}_{t-1})$ 描述运动学模型。扩展卡尔曼滤波(EKF)、无迹卡尔曼滤波(UKF)以及粒子滤波等算法,均是针对这一后验分布的不同近似求解策略。
规划层处于架构的中间位置,负责在感知层提供的环境模型基础上,计算从当前位置到目标位置的运动方案。规划层的输入是机器人当前状态 $\mathbf{x}_t$、目标状态 $\mathbf{x}_*$ 以及环境地图 $\mathcal{M}$;输出是一系列离散的航路点或连续的运动轨迹。规划层通常进一步细分为三个子层次:全局规划在已知环境地图上计算从起点到终点的宏观路径,关注的是路径的最优性(如最短距离、最短时间、最小能量消耗等),算法通常基于图搜索(如A*、D*)或采样方法(如RRT、PRM);局部规划在全局路径的引导下,根据实时感知到的局部障碍信息进行轨迹修正,关注的是安全性与实时性,常用方法包括动态窗口法(DWA)、时间弹性带(TEB)以及模型预测控制(MPC);行为规划则处理更高层次的决策逻辑,如遇到不可逾越的障碍时选择等待还是绕行、在十字路口选择哪个方向前进等,这一层通常采用有限状态机、行为树或强化学习等方法实现。
规划层的数学本质是优化问题的求解。以轨迹规划为例,目标是在满足动力学约束 $f(\mathbf{x}, \dot{\mathbf{x}}, \ddot{\mathbf{x}}) = 0$ 与碰撞约束 $\mathbf{x}_t \notin \mathcal{M}_{obs}$ 的前提下,最小化某个代价函数:
$$\min_{\mathbf{x}(t)} \int_0^T \mathcal{L}(\mathbf{x}(t), \dot{\mathbf{x}}(t), \ddot{\mathbf{x}}(t)) dt$$
其中 $\mathcal{L}$ 可以是路径长度、时间、能量消耗或它们的加权组合。不同场景对规划算法有着截然不同的要求:工业搬运场景强调路径的确定性与重复精度;自动驾驶场景强调对动态障碍的实时响应;服务机器人在人流密集环境中则需要在安全、效率与人机交互之间取得平衡。
控制层是架构的执行端,负责将规划层输出的期望轨迹转化为具体的电机驱动指令,并闭环跟踪实际执行效果。控制层的输入是期望轨迹 $\mathbf{x}_d(t)$ 与当前状态估计 $\hat{\mathbf{x}}(t)$;输出是控制量 $\mathbf{u}(t)$——通常为电机电压、转速或力矩指令。控制层的核心要求是稳定性与跟踪精度,即确保闭环系统能够稳定运行,且实际轨迹能够尽可能贴近期望轨迹。
经典的PID控制通过比例-积分-微分三路反馈实现对期望值的跟踪,其控制律为:
$$u(t) = K_P e(t) + K_I \int_0^t e(\tau) d\tau + K_D \frac{de(t)}{dt}$$
其中 $e(t) = x_d(t) - \hat{x}(t)$ 为跟踪误差,$K_P, K_I, K_D$ 为需要整定的增益参数。对于非线性、欠驱动的移动机器人系统,更常用的方法包括滑模控制、反步法控制以及模型预测控制(MPC)。MPC的突出优势在于其能够显式处理系统约束(输入饱和、状态边界等),同时通过滚动优化实现对模型不确定性与外部扰动的鲁棒应对。
下面通过一个简化流程图展示三层架构的信息流向与交互关系:
```mermaid flowchart TD subgraph PERCEPTION["感知层"] LIDAR[激光雷达] CAMERA[相机] IMU[惯性测量单元] FUSION[多传感器融合] STATE_EST[状态估计] MAPPING[环境建图] end
subgraph PLANNING["规划层"] GLOBAL_PLAN[全局路径规划] LOCAL_PLAN[局部轨迹规划] BEHAVIOR[行为决策] TRAJ_OUTPUT[轨迹输出] end
subgraph CONTROL["控制层"] TRAJ_TRACK[轨迹跟踪] MOTOR_CTRL[电机控制] ACTUATOR[执行机构] VEL_CMD[速度指令] end
subgraph ENVIRONMENT["外部环境"] OBSTACLES[障碍物] LANDMARKS[地标] TERRAIN[地形] end
LIDAR --> FUSION CAMERA --> FUSION IMU --> FUSION FUSION --> STATE_EST STATE_EST --> MAPPING
STATE_EST --> GLOBAL_PLAN MAPPING --> GLOBAL_PLAN GLOBAL_PLAN --> LOCAL_PLAN STATE_EST --> LOCAL_PLAN LOCAL_PLAN --> BEHAVIOR BEHAVIOR --> TRAJ_OUTPUT
TRAJ_OUTPUT --> TRAJ_TRACK TRAJ_TRACK --> MOTOR_CTRL MOTOR_CTRL --> ACTUATOR ACTUATOR --> VEL_CMD VEL_CMD --> OBSTACLES
OBSTACLES --> LIDAR LANDMARKS --> CAMERA TERRAIN --> IMU
STYLE PERCEPTION fill:#e1f5fe,stroke:#01579b STYLE PLANNING fill:#fff3e0,stroke:#e65100 STYLE CONTROL fill:#e8f5e9,stroke:#2e7d32 ```
从图中可以清晰地看到三层之间的数据流动关系:感知层为规划层提供“我在哪里”与“环境是什么”的答案;规划层基于感知信息做出“如何到达”的决策,并将运动方案传递给控制层;控制层执行具体的物理动作,同时执行后的状态变化又反馈给感知层,形成闭环。这一感知-规划-控制的循环周期构成了机器人自主导航的基本运行机制。
需要特别指出的是,三层架构并非严格的时序关系,而是并行协同的关系。在实际系统中,感知、规划、控制往往运行在不同的控制周期上:感知层通常以10-50Hz的频率更新环境模型;规划层根据任务需求以1-10Hz的频率重新计算或修正轨迹;控制层则需要以100Hz以上的频率输出控制指令以保证系统的动态响应性能。这种多周期异步运行的特性给系统设计带来了额外的复杂性,需要在实时性、可靠性与计算资源之间做出权衡。
1.3 移动机器人与操作机器人的本质区别
机器人学根据应用形态的不同,通常划分为移动机器人(Mobile Robot)与操作机器人(Manipulator Robot)两大类别。工业机械臂是最典型的操作机器人,其特点是在固定基座上通过多自由度关节串联实现末端执行器的空间定位;移动机器人则是能够改变自身位置的机器人平台,其核心能力是实现自主移动与导航。理解这两类机器人之间的本质区别,对于正确理解本书的研究对象与所采用的分析方法至关重要。
从运动学角度分析,操作机器人通常具有冗余自由度或至少是全驱动自由度,其运动学模型可以用正运动学方程描述末端执行器位置与关节角度的关系:
$$\mathbf{p}_{end} = f(\mathbf{q})$$
其中 $\mathbf{p}_{end}$ 为末端执行器位姿,$\mathbf{q}$ 为关节变量向量。这种运动学模型的显著特点是确定性——给定关节角度,末端位置可以通过解析公式精确计算;反之,通过逆运动学也可以在给定末端位置时求解出(可能多组)关节角度。移动机器人则面临截然不同的运动学约束。对于轮式移动机器人(如差速驱动机器人),其非完整性约束限制了机器人在水平面内的任意运动能力:
$$\dot{x} \sin\theta - \dot{y} \cos\theta = 0$$
这一约束表明机器人不能直接产生横向运动分量,必须通过一系列前向-转向的组合来实现侧向位移。这种非完整性约束使得移动机器人的控制问题变得更为复杂——从初始位姿到目标位姿的可行路径并非总是存在,即使存在也可能需要复杂的机动动作。
从工作空间的角度看,操作机器人的工作空间由其关节运动范围决定,通常是一个有界的三维空间,边界由机械结构确定且相对稳定。移动机器人的“工作空间”概念则更为模糊和动态——理论上只要物理可达,机器人可以移动到环境中的任何位置,但实际可达性完全取决于环境结构。室内移动机器人的活动范围受墙壁、门窗、家具等限制;室外移动机器人则受道路网络、地形障碍、法规边界等因素约束。因此,移动机器人的导航问题本质上是一个约束优化问题,需要在由环境几何与机器人运动学共同约束的可行空间内寻找运动方案。
感知需求的差异同样显著。操作机器人(特别是精度要求高的装配机器人)主要依赖内部传感器(关节编码器、力矩传感器)进行闭环控制,外部感知主要用于安全检测与异常处理。移动机器人则高度依赖外部感知——它需要通过传感器感知环境、理解自身与环境的关系,然后才能做出导航决策。缺少环境感知,机器人甚至无法判断自己是否正在接近障碍物、是否偏离了目标方向。这种对外部感知的强依赖性使得移动机器人在不确定条件下的决策方面面临更大的挑战。
时间尺度的差异也值得特别关注。操作机器人执行的任务通常具有明确的时序性:抓取-移动-放置,这一序列中的每一步都有明确的目标状态。移动机器人的导航任务则是一个持续进行的过程——机器人需要不断感知环境变化、评估当前状态、调整运动策略,直至最终到达目标位置。在这一过程中,没有明确的任务完成边界,环境可能持续变化,机器人需要具备长期自主运行的能力。这种持续性对系统的可靠性、能耗管理、异常处理等都提出了更高要求。
从控制架构的设计哲学来看,操作机器人通常采用分层集中式控制结构:由上位机进行任务规划与逆运动学计算,下位控制器(如驱动器内的电流环)负责跟踪关节角度指令,控制频率可达数千赫兹。移动机器人则更适合采用分布式/分层式架构:感知、规划、控制各层可以运行在不同的计算平台上,通过标准通信协议交换信息。这种架构的优势在于各层可以独立演进、灵活部署,但同时也带来了通信延迟、时钟同步等系统集成方面的挑战。
实际工程中,移动操作复合机器人(Mobile Manipulation Robot)的出现模糊了移动机器人与操作机器人的界限。这类机器人将移动平台与机械臂集成,既有自主移动能力,又能执行操作任务。典型代表包括仓库中的物料拣选机器人、医院中的物流运输机器人以及家庭服务机器人等。对于这类复合系统,其控制架构需要同时满足移动导航与手臂操作的需求,通常采用“双核”架构:移动核负责平台运动与导航,控制周期相对较长;操作核负责手臂运动与灵巧操作,控制周期短、精度要求高。两核之间通过任务协调器进行信息共享与动作协同。
理解移动机器人与操作机器人的本质区别,有助于读者在后续章节中更好地把握本书所讨论技术的适用范围与局限性。本书聚焦于移动机器人的自主导航问题,所涉及的感知、规划、控制方法均针对移动平台的特点进行优化。操作机器人所依赖的高精度逆运动学、力控柔顺操作等技术虽然也属于机器人学的核心内容,但不在本书的讨论范围之内。
1.4 机器人学发展历程中的关键技术节点
机器人自主导航作为一个技术领域,其发展历程可以追溯到20世纪中叶。要理解当前技术前沿的来龙去脉,有必要回顾这一领域的关键技术节点与里程碑事件。正是这些历史积累构成了现代导航系统的理论基础与技术组件。
早期的探索阶段(1960-1970年代)见证了移动机器人概念的初步提出与技术验证。1966年至1972年间,斯坦福研究院(Stanford Research Institute)的Shakey项目实现了世界上第一台具备自主感知、规划和控制能力的移动机器人。Shakey装备了摄像头、触觉传感器和碰撞检测装置,运行在简单的室内环境中,能够接收高层指令(如“推动某个箱子”)并自主完成子目标分解、路径规划和障碍规避。Shakey的核心贡献在于首次将感知、规划和执行三个功能模块整合到一个统一的系统中,这一架构原型对后续研究产生了深远影响。虽然当时的计算能力极为有限(处理器主频不足1MHz),且感知算法相当粗糙,但Shakey已经证明了“通用目的的移动机器人”这一概念的技术可行性。
1980年代是机器人定位与建图技术取得突破的重要时期。这一阶段,研究者开始系统性地研究同步定位与建图(SLAM)问题。SLAM问题的核心挑战在于:机器人需要同时构建环境地图并利用该地图进行自定位,但这两个任务是相互依赖的——没有地图就无法知道自己的位置,没有准确的位姿估计就无法将新的观测整合到地图中。1986年的ICRA会议上,Costa、Chatila等人将概率方法引入SLAM问题,提出了基于扩展卡尔曼滤波的解决方案。随后,Smith、Self和Cheeseman等人于1990