首页 理论 架构 工程 文档 白皮书 著作 研究 案例 下载 博客 关于 开始使用 →

第84章 SAI + Vehicle

第84章 SAI + Vehicle

本章大纲

  1. Vehicle Object
  2. Environment
  3. Road
  4. Position
  5. Motion
  6. Obstacle
  7. Scene Collection
  8. Decision
  9. Action
  10. Vehicle Adapter
  11. 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 建立一个能够感知车辆环境、形成结构化认知、做出行动决策、执行车辆操作并接收反馈的闭环系统。

Leave a Reply

Your email address will not be published. Required fields are marked *