第2章 原型边界的定义
原型边界是描述系统在特定场景下允许或禁止行为的显式或隐式范围。它定义了机器人能做什么、不能做什么,以及在什么条件下做。理解边界类型、表示方法及其与功能的关系,是构建可靠场景适配原型的基础。
2.1 边界类型
按约束来源和性质,原型边界可分为以下四大类:
| 边界类型 | 说明 | 典型示例 |
|---|---|---|
| 功能边界 | 系统能执行的原子操作集合 | “夹爪开合角度 0°~90°” |
| 性能边界 | 可接受的响应时间、吞吐量、精度 | “目标检测 ≤ 200 ms” |
| 安全边界 | 防止人身伤害或设备损坏的硬性约束 | “速度 < 0.5 m/s 当人距离<1 m” |
| 物理边界 | 硬件几何、关节限位、供电容量 | “机械臂腕部最大负载 2 kg” |
| 时间边界 | 任务时序、同步窗口、生命周期 | “每帧处理完成时间 ≤ 33 ms” |
2.2 边界表示方法
实际工程中通过以下方式将边界显式化:
- 阈值:单一数值上限/下限,如
max_speed = 1.0 - 范围:连续区间,如
temperature = [-10, 60] °C - 约束规则:条件语句或逻辑表达式
- 资源预算:内存、算力、电量配额
- 协议/接口规范:消息格式、枚举值、状态机
伪代码示例:用 YAML 定义机器人移动原型边界
boundaries:
linear_velocity:
type: range
value: [0.0, 1.5] # m/s,性能边界
emergency_stop:
type: rule
if: "person_distance < 0.8m"
action: "set velocity 0" # 安全边界
footprint:
type: polygon
points: [[-0.2,0.2], [0.2,0.2], [0.2,-0.2], [-0.2,-0.2]] # 物理边界
2.3 边界与功能的关系
每一项功能都依赖一组边界才能正确运行。边界决定功能的可行域,功能反过来可能动态调整边界参数(如自适应巡航中的速度上限)。
- 功能触发:只有满足所有相关边界时,功能才进入可执行状态。
- 功能退化:当某一边界被突破,系统应执行降级策略(如减速、切换备用模式)。
- 边界冲突:不同边界之间可能矛盾(例如性能要求快于安全检查),需设计优先级仲裁。
2.4 类比:停车场划线
把机器人原型比作一辆车,边界就是停车位的白色划线:
- 功能边界 = 车位内允许停车(可操作范围)
- 性能边界 = 倒车入库必须在 30 秒内完成(时间限制)
- 安全边界 = 禁止碰到相邻车辆或立柱(碰撞距离)
- 物理边界 = 车位长宽限制车辆尺寸
- 时间边界 = 超过 60 秒未停好,系统自动接管
划线清晰,司机(机器人)才知道哪里能去、哪里危险。如果划线模糊(边界未定义),就会发生碰撞或功能失效。
2.5 常见误区
- 误区1:边界越多越安全 —— 过度约束导致功能无法正常触发,反而降低可用性。
- 误区2:边界只在开发阶段定义 —— 运行时边界可能因环境变化需要动态调整(如电池电量降低后自动降低速度上限)。
- 误区3:边界就是硬编码数值 —— 边界可以是模糊推理、概率阈值或学习得到的软约束。
- 误区4:所有边界必须显式写出 —— 部分隐含边界(如物理定律)无需文档化但仍影响行为。
2.6 练习题
- 举一个机器人取物场景中功能边界与物理边界冲突的例子,并给出解决思路。
- 给定下面片段,指出其中包含了哪几种边界类型(至少3种)。
# 移动机器人导航边界配置
navigation:
max_linear_velocity: 1.2 # m/s
angular_velocity_limit: [ -1.0, 1.0 ] # rad/s
safety_stop_distance: 0.3 # m
cpu_usage_budget_percent: 40
参考答案:性能边界(速度限制)、安全边界(停止距离)、资源预算边界(CPU使用率)。
2.7 应用边界
在场景适配原型中,边界必须与具体场景绑定。例如:
- 仓库拣货机器人 —— 功能边界:支持“抓取”操作;物理边界:夹爪开口 ≤ 15 cm;性能边界:单次拣货 ≤ 3 s;安全边界:与工人保持 ≥ 1.5 m。
- 酒店送物机器人 —— 功能边界:自主乘梯;时间边界:乘梯等待 ≤ 60 s;性能边界:导航路径规划 ≤ 500 ms。
- 巡检无人机 —— 安全边界:禁飞区边界;物理边界:电池放电深度 ≥ 20%;时间边界:任务总时长 ≤ 25 min。
设计提示:在构建原型时,先列出所有“不能逾越”的底线(安全、物理),再补充“希望达到”的目标(性能),最后裁剪功能边界以匹配场景。边界是原型的第一道护栏。