第84章 SAI + Vehicle
本章大纲
- Vehicle Object
- Environment
- Road
- Position
- Motion
- Obstacle
- Scene Collection
- Decision
- Action
- Vehicle Adapter
- Feedback
1. Vehicle Object
Vehicle Object 是 SAI/ICAI 对真实车辆建立的内部结构化对象表示。
它不是车辆本身,而是 SAI 用于识别、管理、分析和控制车辆的对象。
基本结构:
Vehicle Object
├── Identity
├── State
├── Properties
├── Position
├── Motion
├── Abilities
├── Sensors
├── Methods
├── Environment
└── Relations
例如:
$vehicle = array(
'id' => 'Vehicle_A',
'type' => 'car',
'name' => 'Vehicle_A',
'state' => 'READY',
'position' => array(
'road' => 'Road_A',
'x' => 100,
'y' => 20
),
'motion' => array(
'speed' => 40,
'direction' => 'FORWARD'
),
'abilities' => array(
'MOVE',
'STOP',
'ACCELERATE',
'DECELERATE',
'TURN_LEFT',
'TURN_RIGHT'
)
);
Vehicle Object 可以表示:
车辆身份
车辆状态
车辆位置
车辆速度
车辆方向
车辆能力
车辆传感器
车辆方法
车辆与环境的关系
因此:
Vehicle Object ≠ Physical Vehicle
Vehicle Object ≠ Vehicle Adapter
Vehicle Object ≠ Road
Vehicle Object ≠ Position
Vehicle Object ≠ Motion
2. Environment
Environment 是车辆当前所处外部环境的结构化表示。
例如:
Environment_A
├── Road_A
├── Lane_A
├── Vehicle_A
├── Vehicle_B
├── Obstacle_A
├── TrafficLight_A
├── Person_A
└── Weather_A
环境可以包含:
道路
车道
车辆
障碍物
交通设施
行人
位置
方向
天气
时间
环境状态
例如:
Environment
{
road: Road_A,
weather: CLEAR,
visibility: GOOD,
objects:
[
Vehicle_A,
Vehicle_B,
Obstacle_A
]
}
环境不是一张单纯的地图。
它是当前 SAI 对相关环境对象的结构化认知:
Sensor
↓
Information
↓
Perception
↓
Environment Elements
↓
Environment
3. Road
Road 是 Vehicle Scene 中的重要环境对象。
可以表示:
Road Object
{
id
name
type
lanes
direction
speed_limit
state
relations
}
例如:
$road = array(
'id' => 'Road_A',
'name' => 'Road_A',
'type' => 'URBAN',
'lanes' => 2,
'direction' => 'FORWARD',
'speed_limit' => 60,
'state' => 'OPEN'
);
Road 可以进一步包含:
Lane
Intersection
Curve
Bridge
Tunnel
Stop Area
Parking Area
例如:
Road_A
├── Lane_1
├── Lane_2
└── Intersection_A
车辆与道路之间可以形成关系:
Vehicle_A
↓
located_on
↓
Road_A
以及:
Vehicle_A
↓
in_lane
↓
Lane_1
因此 Road 不只是一个地点,而是 Vehicle 进行 Position、Motion 和 Decision 时的重要环境对象。
4. Position
Position 表示 Vehicle 或其他 Scene Object 当前所处的位置。
Position 可以使用不同坐标体系。
例如:
Position
{
road: Road_A,
lane: Lane_1,
x: 100,
y: 20
}
也可以表示:
Position
{
latitude
longitude
altitude
}
或者使用道路内部坐标:
Road_A
distance_from_start = 125m
lane = 1
关键是保持位置结构的一致性。
例如:
Vehicle_A
position:
road = Road_A
lane = Lane_1
distance = 125m
Position 不等于 Motion。
Position
= 在哪里
Motion
= 怎么运动
例如:
Vehicle_A
position = Road_A / Lane_1 / 125m
motion:
speed = 40km/h
direction = FORWARD
5. Motion
Motion 表示 Vehicle 当前运动状态和运动变化。
基本结构:
Motion
{
speed
acceleration
direction
heading
movement
state
}
例如:
$motion = array(
'speed' => 40,
'unit' => 'km/h',
'acceleration' => 0,
'direction' => 'FORWARD',
'heading' => 90,
'movement' => 'MOVING',
'state' => 'NORMAL'
);
Motion 状态可以包括:
STOPPED
MOVING
ACCELERATING
DECELERATING
TURNING
REVERSING
WAITING
EMERGENCY_STOP
UNKNOWN
例如:
Vehicle_A
Position:
Road_A / Lane_1 / 125m
Motion:
speed = 40km/h
direction = FORWARD
当速度变化:
40km/h
↓
50km/h
形成 Motion Change:
speed:
previous = 40
current = 50
Motion 是 Decision 判断的重要输入。
6. Obstacle
Obstacle 是 Vehicle Scene 中可能影响车辆运动的对象。
障碍物不一定是固定物体。
可以包括:
Vehicle
Person
Animal
Road Block
Construction
Fallen Object
Stopped Vehicle
Unknown Object
例如:
Obstacle_A
{
type: VEHICLE,
position:
road = Road_A
lane = Lane_1
distance = 20m,
motion:
speed = 10km/h,
state: OBSERVED
}
车辆与障碍物形成关系:
Vehicle_A
↓
front_of
↓
Obstacle_A
并可以进一步得到:
distance = 20m
relative_speed = 30km/h
例如:
Vehicle_A speed = 40km/h
Obstacle_A speed = 10km/h
Relative Speed = 40 - 10 = 30km/h
如果系统规则规定:
IF distance < 30m
AND relative_speed > 20km/h
THEN risk = HIGH
则可以进入:
Reasoning
↓
Risk
↓
Decision
这里仍然需要区分:
Obstacle
= 场景对象
Risk
= 对该对象可能产生的不利影响判断
7. Scene Collection
Scene Collection 是将多个时间点、多个 Sensor 和多个对象信息组织起来,形成连续 Vehicle Scene 的机制。
单次 Sensor 信息:
Sensor
↓
Information
↓
Perception
只能得到一个局部观察。
例如:
t1:
Obstacle_A distance = 30m
t2:
Obstacle_A distance = 25m
t3:
Obstacle_A distance = 20m
Scene Collection 将它们组织起来:
Scene History
t1 → 30m
t2 → 25m
t3 → 20m
于是 SAI 可以判断:
Obstacle_A
distance decreasing
进一步形成:
Obstacle_A
approaching
Scene Collection 可以包含:
Scene ID
Timestamp
Environment
Road
Vehicle
Position
Motion
Objects
Relations
Changes
State
例如:
$scene = array(
'id' => 'Scene_003',
'timestamp' => time(),
'vehicle' => array(
'id' => 'Vehicle_A',
'position' => 'Road_A/Lane_1/125m',
'speed' => 40
),
'objects' => array(
array(
'id' => 'Obstacle_A',
'type' => 'VEHICLE',
'distance' => 20,
'speed' => 10
)
)
);
连续 Scene:
Scene_001
↓
Scene_002
↓
Scene_003
↓
Scene_004
可以形成:
Scene Collection
↓
State Change
↓
Motion Change
↓
Object Change
↓
Relation Change
这使 SAI 不只是知道“现在有什么”,还能够记录场景变化。
8. Decision
Vehicle Decision 根据:
Environment
Road
Position
Motion
Obstacle
Scene Collection
Rules
Risk
Experience
Vehicle Ability
选择下一步行动。
例如当前:
Vehicle_A
speed = 40km/h
前方:
Obstacle_A
distance = 20m
speed = 10km/h
系统得到:
Relative Speed = 30km/h
规则:
IF obstacle.distance < 30m
AND relative_speed > 20km/h
THEN risk = HIGH
得到:
Risk = HIGH
候选行动:
CONTINUE
DECELERATE
STOP
TURN_LEFT
TURN_RIGHT
进行判断:
CONTINUE
→ REJECT
DECELERATE
→ AVAILABLE
STOP
→ AVAILABLE
TURN_LEFT
→ 根据道路状态继续检查
TURN_RIGHT
→ 根据道路状态继续检查
如果当前道路允许减速而无需立即停车:
Decision = DECELERATE
例如:
$decision = array(
'target' => 'Vehicle_A',
'action' => 'DECELERATE',
'reason' => array(
'obstacle_distance' => 20,
'relative_speed' => 30,
'risk' => 'HIGH'
),
'state' => 'DECIDED'
);
因此:
Scene
↓
Cognition
↓
Reasoning
↓
Risk
↓
Decision
Decision 仍然不直接操作车辆。
9. Action
Decision 确定以后形成具体 Action。
例如:
Decision:
DECELERATE
Action:
$action = array(
'id' => 'Action_001',
'target' => 'Vehicle_A',
'method' => 'DECELERATE',
'parameters' => array(
'target_speed' => 20
),
'state' => 'READY'
);
执行:
Action
↓
VehicleAdapter
↓
Vehicle
车辆从:
40km/h
降低到:
20km/h
形成:
Motion Change
40km/h
↓
30km/h
↓
20km/h
最终:
ActionResult
{
action: DECELERATE,
state: SUCCESS,
previous_speed: 40,
current_speed: 20
}
这里保持第54章的边界:
Decision = 选择做什么
Behavior = 执行过程
Action = 具体操作
ActionResult = 操作结果
10. Vehicle Adapter
Vehicle Adapter 是 SAI 与真实车辆控制系统之间的连接层。
核心结构:
SAI
↓
Action
↓
VehicleAdapter
↓
Vehicle Command
↓
Vehicle Control System
↓
Physical Vehicle
例如:
class VehicleAdapter implements AdapterInterface
{
protected $state = 'DISCONNECTED';
public function connect($target)
{
$this->state = 'CONNECTED';
return true;
}
public function send($action)
{
if ($this->state !== 'CONNECTED') {
return false;
}
$command = array(
'vehicle_id' => $action['target'],
'command' => $action['method'],
'parameters' => $action['parameters']
);
// 向车辆控制系统发送 Command
return true;
}
public function receive()
{
return array(
'state' => 'SUCCESS'
);
}
public function disconnect()
{
$this->state = 'DISCONNECTED';
return true;
}
public function getState()
{
return $this->state;
}
}
例如:
Action
{
target = Vehicle_A
method = DECELERATE
target_speed = 20
}
VehicleAdapter 转换:
Vehicle Command
{
vehicle_id = Vehicle_A
command = DECELERATE
target_speed = 20
}
发送:
VehicleAdapter
↓
Vehicle Control System
↓
Vehicle
VehicleAdapter 不决定:
是否减速
为什么减速
风险是否高
应该选择什么行动
这些属于:
Cognition
Reasoning
Risk
Decision
Adapter 负责连接和指令转换。
11. Feedback
车辆执行 Action 后产生 Feedback。
例如:
Action:
DECELERATE
Command:
target_speed = 20
车辆返回:
Vehicle Response
{
vehicle_id: Vehicle_A,
state: SUCCESS,
speed: 20
}
形成 Feedback:
$feedback = array(
'source' => 'Vehicle_A',
'type' => 'ACTION_RESULT',
'action' => 'DECELERATE',
'state' => 'SUCCESS',
'changes' => array(
'speed' => array(
'previous' => 40,
'current' => 20
)
)
);
Feedback 返回 SAI:
Vehicle
↓
VehicleAdapter
↓
Vehicle Response
↓
Feedback
然后:
Feedback
↓
Perception
↓
Cognition
↓
Memory
↓
Experience
如果执行失败:
Feedback
state = FAILED
error = Brake System Error
则进入:
Detection
↓
Risk
↓
Diagnosis
↓
Decision
↓
Repair
↓
Verification
于是 Vehicle 形成闭环。
完整 SAI + Vehicle 模型
把本章所有部分连接起来:
SAI + Vehicle
│
↓
Vehicle Object
│
┌─────────────┴─────────────┐
↓ ↓
Environment Vehicle State
│
┌───────┼────────┐
↓ ↓ ↓
Road Position Motion
│ │ │
└───────┼────────┘
↓
Sensors
↓
Information
↓
Perception
↓
Scene Collection
↓
Objects / Relations
↓
Cognition
↓
Reasoning
↓
Risk
↓
Decision
↓
Behavior
↓
Action
↓
Vehicle Adapter
↓
Vehicle Control System
↓
Physical Vehicle
↓
Feedback
↓
┌───────┼────────┐
↓ ↓ ↓
Perception Memory Experience
│
↓
Cognition
↓
Reasoning
↓
Decision
完整车辆案例
假设:
Vehicle_A
正在:
Road_A
Lane_1
speed = 40km/h
前方发现:
Obstacle_A
distance = 20m
speed = 10km/h
第一步:Sensor
车辆 Sensor 获取:
distance = 20m
relative object speed = 10km/h
形成:
Information
第二步:Perception
Perception 形成:
Obstacle_A
type = VEHICLE
distance = 20m
position = FRONT
第三步:Scene Collection
当前 Scene:
Road_A
└── Lane_1
├── Vehicle_A
│ speed = 40
│
└── Obstacle_A
distance = 20
speed = 10
历史 Scene:
Scene_001 → 30m
Scene_002 → 25m
Scene_003 → 20m
因此:
Obstacle_A
distance decreasing
第四步:Cognition
建立关系:
Vehicle_A
↓
front_of
↓
Obstacle_A
并得到:
distance = 20m
relative_speed = 30km/h
第五步:Reasoning
规则:
IF distance < 30m
AND relative_speed > 20km/h
THEN risk = HIGH
计算:
20 < 30 → TRUE
30 > 20 → TRUE
所以:
Risk = HIGH
第六步:Decision
候选:
CONTINUE
DECELERATE
STOP
TURN_LEFT
TURN_RIGHT
判断:
CONTINUE → REJECT
DECELERATE → AVAILABLE
STOP → AVAILABLE
根据当前条件:
Decision = DECELERATE
第七步:Behavior
建立:
Behavior
{
type = DECELERATE,
target = Vehicle_A,
state = READY
}
状态:
READY
↓
RUNNING
第八步:Action
建立:
Action
{
target = Vehicle_A,
method = DECELERATE,
target_speed = 20
}
第九步:Vehicle Adapter
转换:
Action
↓
Vehicle Command
发送:
Vehicle_A
DECELERATE
target_speed = 20
第十步:Vehicle
车辆执行:
40km/h
↓
30km/h
↓
20km/h
车辆状态:
MOVING
第十一步:Feedback
返回:
Feedback
{
action = DECELERATE,
state = SUCCESS,
speed = 20
}
更新:
Vehicle Object
speed = 20
同时 Scene 更新:
Obstacle_A
distance = new value
于是系统再次开始:
Sensor
↓
Information
↓
Perception
↓
Scene
↓
Cognition
↓
Reasoning
↓
Decision
形成连续运行闭环。
本章核心模型
第84章将 SAI 与 Vehicle 的关系进一步具体化:
Environment
↓
Sensor
↓
Information
↓
Perception
↓
Scene Collection
↓
Objects / Relations
↓
Cognition
↓
Reasoning
↓
Risk
↓
Decision
↓
Behavior
↓
Action
↓
Vehicle Adapter
↓
Vehicle Control
↓
Physical Vehicle
↓
Feedback
↓
Information
核心职责:
Vehicle Object
= 车辆内部结构表示
Environment
= 车辆所处环境
Road
= 道路对象
Position
= 车辆或对象在哪里
Motion
= 车辆如何运动
Obstacle
= 影响车辆运动的场景对象
Scene Collection
= 连续场景及场景变化记录
Decision
= 选择下一步行动
Action
= 具体车辆操作
Vehicle Adapter
= SAI 与车辆控制系统之间的连接
Feedback
= 车辆执行后的真实结果和状态
最终形成:
┌──────────────────────────────┐
│ External World │
│ │
│ Road / Vehicle / Obstacle │
└──────────────┬───────────────┘
↓
Sensor
↓
Information
↓
Perception
↓
Scene Collection
↓
Cognition
↓
Reasoning
↓
Risk
↓
Decision
↓
Behavior
↓
Action
↓
VehicleAdapter
↓
Vehicle
↓
Feedback
│
└──────────────→ SAI
SAI + Vehicle 的本质不是“车辆本身具有智能”,而是 SAI/ICAI 通过 Vehicle Object、Scene、Perception、Cognition、Reasoning、Decision、Behavior、Action 和 VehicleAdapter 建立一个能够感知车辆环境、形成结构化认知、做出行动决策、执行车辆操作并接收反馈的闭环系统。