1. 任务规划概述
大家好,我是你们这门课的老朋友。今天咱们聊聊任务规划。说实话,我入行那会儿,这词儿还没这么火。那时候我们管它叫“路径安排”或者“任务调度”,听起来土里土气的。但现在不一样了,无人机满天飞,机器人满地跑,自动驾驶满街试,任务规划成了核心中的核心。
说白了,任务规划就是——在给定的条件下,给一个或多个执行体,安排一系列动作,去完成一个或多个目标。嗯,就这么简单。但做起来,可一点都不简单。
1.1 任务规划的定义
我个人的理解是:任务规划是一个决策过程。它要回答三个问题:
- 做什么——明确任务目标
- 怎么做——设计动作序列
- 能不能做——检查资源与约束
举个例子。你让一架无人机去拍一张山顶的照片。任务规划要做的,就是决定无人机从哪起飞、飞多高、走哪条路线、什么时候拍、电量够不够、遇到大风怎么办。你看,这不就是一个完整的决策链条吗?
核心定义:任务规划 = 目标 + 动作 + 资源 + 约束 → 可行方案
1.2 发展历程
任务规划的发展,我把它分成三个阶段。你想想看,是不是这么回事:
| 阶段 | 时间 | 特点 | 我遇到的坑 |
|---|---|---|---|
| 萌芽期 | 1980s-1990s | 人工规划为主,靠经验画航线 | 有一次手动规划漏了一个禁飞区,差点出事 |
| 发展期 | 2000s-2010s | 计算机辅助,A*、Dijkstra等算法引入 | 我记得第一次用A*做路径规划,跑出来的路线弯弯曲曲,根本没法飞 |
| 成熟期 | 2010s至今 | 多约束、多目标、实时重规划 | 现在做项目,不搞个实时重规划,客户都不认账 |
我个人习惯把2015年当做一个分水岭。那一年,深度学习开始大规模应用,任务规划也从“静态规划”走向了“动态自适应规划”。说白了,就是机器学会了自己判断、自己调整。
1.3 核心要素
任务规划有四个核心要素。我每次带新人,都会让他们把这四个词刻在脑子里:
1.3.1 任务
任务是规划的对象。它可以是“从A点到B点”,也可以是“覆盖整个区域”,还可以是“跟踪某个目标”。任务不同,规划方法天差地别。
1.3.2 资源
资源是执行任务的本钱。无人机有电量、机器人有算力、自动驾驶有传感器。资源不够,规划再漂亮也是白搭。我曾经在一个项目里,因为没算清楚电池的衰减曲线,导致无人机在半路没电了……嗯,从那以后,我每次做规划都会留20%的余量。
1.3.3 约束
约束是规划的红线。禁飞区不能进、最大速度不能超、转弯半径不能太小。约束分硬约束和软约束。硬约束是必须满足的,软约束是尽量满足的。我建议你在做规划时,先把硬约束列清楚,再考虑优化。
1.3.4 目标
目标是规划的终点。有时候目标很明确——比如“最短路径”。有时候目标很模糊——比如“安全第一”。这时候就需要把目标量化。我常用的方法是:把目标拆成多个子目标,然后加权求和。
避坑指南:我曾经在一个多目标优化项目里,把“时间最短”和“能耗最低”放在一起优化,结果发现这两个目标天然冲突。后来我改用帕累托前沿分析,才找到平衡点。
1.4 应用领域
任务规划的应用,现在可以说是遍地开花。我挑三个最典型的说说:
1.4.1 无人机
无人机是任务规划最经典的应用场景。从航拍、测绘到物流配送,都离不开它。我记得2018年做的一个农业植保项目,无人机要在几百亩农田上喷洒农药。任务规划要同时考虑:飞行高度、喷洒宽度、风速风向、药液余量。说实话,那是我第一次感受到任务规划的复杂性。
1.4.2 机器人
机器人领域,任务规划更强调“感知-规划-控制”的闭环。比如仓储机器人,它要规划路径去取货,还要避开其他机器人、避开行人。我建议你在做机器人任务规划时,一定要考虑动态障碍物。因为静态规划在机器人领域基本不适用。
1.4.3 自动驾驶
自动驾驶是任务规划的“终极挑战”。它要在毫秒级的时间内,完成感知、决策、规划、控制。我记得有一次测试自动驾驶的路径规划算法,在十字路口遇到一个突然冲出来的行人,算法花了0.3秒才重新规划出避让路径。嗯,0.3秒在自动驾驶里已经算慢了。
1.5 知识体系总览
说了这么多,我画了一张图,帮你把这一章的知识体系串起来。你看一眼,心里就有数了:
注意:这张图只是帮你建立整体认知。后面的每一章,都会把其中一个分支展开来讲。别着急,慢慢来。
好了,第一章就到这里。任务规划的定义、发展历程、核心要素和应用领域,我都讲清楚了。你如果现在让我用一句话总结,我会说:任务规划就是给机器装上“大脑”,让它知道什么时候该做什么事。
下一章,咱们聊聊任务建模。那是把实际问题变成数学问题的关键一步。到时候见。
公众号:蓝海资料掘金营,微信deep3321