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

第83章 SAI + Robot

第83章 SAI + Robot

本章大纲

  1. Robot Object
  2. Robot State
  3. Scene
  4. Sensor
  5. Information
  6. Perception
  7. Cognition
  8. Decision
  9. Behavior
  10. RobotAdapter
  11. Feedback
  12. 完整机器人案例

1. Robot Object

Robot Object 是 SAI/ICAI 内部对真实机器人的结构化对象表示

它不是机器人本身,而是 SAI 对机器人进行管理、认知和控制所使用的对象。

基本结构:

Robot Object
├── Identity
├── State
├── Properties
├── Sensors
├── Methods
├── Abilities
├── Actions
├── Position
└── Relations

例如:

$robot = array(
    'id'   => 'Robot_A',
    'type' => 'mobile_robot',
    'name' => 'Robot_A',

    'state' => 'READY',

    'position' => array(
        'x' => 10,
        'y' => 20
    ),

    'abilities' => array(
        'MOVE',
        'STOP',
        'TURN'
    ),

    'sensors' => array(
        'camera',
        'distance_sensor'
    )
);

Robot Object 记录的是:

真实机器人
      ↓
Sensor / Adapter
      ↓
Robot Object

因此:

Robot Object ≠ Physical Robot
Robot Object ≠ RobotAdapter
Robot Object ≠ Sensor
Robot Object ≠ Action

2. Robot State

Robot State 表示机器人当前已知状态。

例如:

OFF
INITIALIZING
READY
RUNNING
MOVING
STOPPED
PAUSED
ERROR
CHARGING
MAINTENANCE
DISCONNECTED
UNKNOWN

可以定义:

$robotState = array(
    'state'     => 'MOVING',
    'previous'  => 'READY',
    'timestamp' => time()
);

机器人状态不是固定不变的:

READY
  ↓
MOVING
  ↓
STOPPED

或者:

MOVING
  ↓
ERROR

状态变化需要通过 Information、Feedback 等进入 SAI。

因此:

State = 当前状态
State Change = 状态变化

机器人真实状态与 Robot Object 状态也可能暂时不同:

Physical Robot
      ↓
真实状态 = MOVING

Robot Object
      ↓
已知状态 = READY

此时系统需要:

Feedback
   ↓
Perception
   ↓
Cognition
   ↓
State Update

重新建立对应关系。


3. Scene

Scene 是机器人当前所处环境的结构化表示。

Scene 不只是“一张图片”,而是 SAI 对环境中相关对象、位置、状态和关系的组织。

例如:

Scene
├── Robot_A
├── Person_A
├── Obstacle_A
├── ChargingStation_A
└── Door_A

进一步:

Scene
{
    location:
        Factory_A

    objects:
        Robot_A
        Obstacle_A
        Person_A

    relations:
        Robot_A near Obstacle_A
        Person_A near Robot_A

    states:
        Robot_A = MOVING
        Door_A = OPEN
}

Scene 可以表示:

对象
属性
状态
位置
距离
关系
事件
环境条件

核心关系:

Sensor Information
        ↓
Perception
        ↓
Scene Elements
        ↓
Scene

4. Sensor

Sensor 是机器人获取外部环境信息的设备。

例如:

Camera
Distance Sensor
Temperature Sensor
Pressure Sensor
Position Sensor
Touch Sensor
Motion Sensor

Sensor 的基本作用:

External Environment
        ↓
Sensor
        ↓
Sensor Data

例如距离传感器:

$sensorData = array(
    'sensor_id' => 'Distance_A',
    'type'      => 'DISTANCE',
    'value'     => 0.8,
    'unit'      => 'meter',
    'timestamp' => time()
);

Sensor 本身主要负责获取数据

因此:

Sensor ≠ Perception

区别:

Sensor
    = 获取物理数据

Perception
    = 获取并组织可认知的信息

例如:

Distance Sensor
      ↓
0.8 meter
      ↓
Perception
      ↓
Obstacle_A
distance = 0.8m

5. Information

机器人通过 Sensor、Adapter 或其他接口获得 Information。

例如:

Sensor Data
{
    sensor: Distance_A
    value: 0.8m
}

经过基本信息整理后:

Information
{
    source: Distance_A
    type: DISTANCE
    value: 0.8
    unit: meter
}

机器人 Information 的来源可以有多个:

Sensor
Camera
RobotAdapter
External System
Operator
Internal State
Feedback

形成:

Environment
    ↓
Sensor
    ↓
Information

或者:

Robot
    ↓
RobotAdapter
    ↓
Information

Information 仍然只是输入。

它需要经过 Perception 和 Cognition 才能形成更完整的认知结构。


6. Perception

Perception 是 SAI 获取和组织机器人外部信息的过程。

例如 Sensor 得到:

Distance = 0.8m

Perception 可以形成:

Element
{
    type: DISTANCE
    value: 0.8
}

进一步识别:

Object:
Obstacle_A

Property:
distance = 0.8m

形成:

Perception Result
{
    object: Obstacle_A,
    property: distance,
    value: 0.8,
    state: OBSERVED
}

完整过程:

Sensor
   ↓
Information
   ↓
Perception
   ↓
Element
   ↓
Object
   ↓
Property / State / Relation

例如:

Camera
  ↓
Information
  ↓
Perception
  ↓
Person_A
  ↓
position = front

Perception 的核心是:

获取外部世界中与当前系统有关的信息,并形成结构化感知结果。


7. Cognition

Cognition 对 Perception 结果进行理解和关联。

例如:

Perception:

Obstacle_A
distance = 0.8m
position = front

Cognition 可以形成:

Robot_A
      ↓
front_of
      ↓
Obstacle_A

并形成状态:

Obstacle_A
distance = 0.8m
relation = IN_FRONT
state = RECOGNIZED

如果系统已有规则:

IF obstacle.distance < 1.0m
THEN obstacle_risk = HIGH

则认知结构可以进入 Reasoning。

完整链路:

Information
    ↓
Perception
    ↓
Elements
    ↓
Objects
    ↓
Relations
    ↓
Understanding
    ↓
Cognition

这里需要保持前面章节的边界:

Perception = 获取
Cognition = 理解
Reasoning = 推导
Decision = 选择
Behavior = 执行过程
Action = 具体操作

8. Decision

机器人 Decision 是根据当前 Scene、Cognition、Reasoning、Risk、Rules、Experience 和能力选择下一步行动。

例如:

Robot_A
    ↓
前方 Obstacle_A
    ↓
distance = 0.8m
    ↓
Risk = HIGH

候选行动:

A. CONTINUE
B. STOP
C. TURN_LEFT
D. TURN_RIGHT

Decision 进行条件检查:

CONTINUE
    Risk HIGH
    → REJECT

STOP
    Capability TRUE
    Risk LOW
    → AVAILABLE

TURN_LEFT
    Path available
    → AVAILABLE

TURN_RIGHT
    Obstacle detected
    → AVAILABLE

根据优先级:

STOP
TURN_LEFT
TURN_RIGHT
CONTINUE

形成:

$decision = array(
    'target' => 'Robot_A',

    'action' => 'STOP',

    'reason' => array(
        'obstacle_distance' => 0.8,
        'risk'              => 'HIGH'
    ),

    'state' => 'DECIDED'
);

因此:

Cognition
   ↓
Reasoning
   ↓
Risk
   ↓
Decision

Decision 并不直接等于机器人动作。


9. Behavior

Behavior 是机器人执行 Decision 的行为过程。

例如:

Decision
    ↓
STOP

形成:

Behavior
{
    target: Robot_A
    type: STOP
    state: READY
}

然后:

READY
   ↓
RUNNING
   ↓
SUCCESS

或者:

READY
   ↓
RUNNING
   ↓
FAILED

机器人行为可以包括:

MOVE
STOP
TURN
WAIT
FOLLOW
AVOID
DOCK
CHARGE
PICK
PLACE
COMMUNICATE

Behavior 是过程:

Decision
    ↓
Behavior
    ↓
Action

而 Action 是具体执行操作。

例如:

Behavior:
Avoid Obstacle

Action 1:
STOP

Action 2:
TURN_LEFT

Action 3:
MOVE_FORWARD

所以:

Behavior ≠ Action

10. RobotAdapter

RobotAdapter 是 SAI 与真实机器人之间的连接层。

它负责:

SAI Action
    ↓
RobotAdapter
    ↓
Robot Command
    ↓
Physical Robot

例如:

class RobotAdapter implements AdapterInterface
{
    protected $state = 'DISCONNECTED';

    public function connect($target)
    {
        $this->state = 'CONNECTED';

        return true;
    }

    public function send($action)
    {
        if ($this->state !== 'CONNECTED') {
            return false;
        }

        // 将 Action 转换成机器人可以执行的 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 = Robot_A
    method = STOP
}

RobotAdapter 转换:

Robot Command
{
    robot_id = Robot_A
    command = STOP
}

然后:

RobotAdapter
      ↓
Physical Robot

RobotAdapter 不负责:

Cognition
Reasoning
Decision
Learning

它负责的是连接和转换


11. Feedback

机器人执行 Action 后,会产生 Feedback。

例如:

Action:
STOP

机器人返回:

Feedback:
state = STOPPED

或者:

Feedback:
state = FAILED
error = Motor Error

基本路径:

Action
   ↓
RobotAdapter
   ↓
Robot
   ↓
Robot Response
   ↓
Feedback

Feedback 可以进入:

Perception
Memory
Experience
Detection
Risk
Diagnosis

例如:

Robot Response
      ↓
Feedback
      ↓
Perception
      ↓
Cognition
      ↓
Memory Update

如果停止失败:

Feedback
   ↓
Detection
   ↓
Risk
   ↓
Diagnosis
   ↓
Decision
   ↓
Repair

因此机器人形成了完整闭环。


12. 完整机器人案例

现在建立一个完整案例:

Robot_A 正在工厂内移动,前方 0.8 米发现障碍物,SAI 判断存在较高风险,决定停止机器人。


12.1 Robot Object

系统已有:

Robot_A

state = MOVING

position =
    x = 10
    y = 20

abilities =
    MOVE
    STOP
    TURN

12.2 Scene

当前 Scene:

Scene_A

Robot_A
    position = (10,20)

Obstacle_A
    position = (10.8,20)

关系:

Robot_A
    ↓
front_of
    ↓
Obstacle_A

12.3 Sensor

Distance Sensor 获取:

Distance_A

value = 0.8m

形成 Sensor Information:

{
    source: Distance_A,
    type: DISTANCE,
    value: 0.8,
    unit: meter
}

12.4 Perception

Perception 处理:

Sensor
   ↓
Information
   ↓
Perception

形成:

Obstacle_A
distance = 0.8m
position = FRONT
state = OBSERVED

12.5 Cognition

Cognition 建立:

Robot_A
   ↓
front_of
   ↓
Obstacle_A

并确认:

Obstacle_A
distance = 0.8m

形成认知:

当前机器人前方存在距离 0.8 米的障碍物。

这里的“认知”不是生成文字,而是内部结构:

{
    object: Obstacle_A,
    relation: FRONT,
    distance: 0.8,
    state: RECOGNIZED
}

12.6 Reasoning

已有规则:

IF obstacle.distance < 1.0m
THEN risk = HIGH

当前:

0.8 < 1.0

因此:

Risk = HIGH

Reasoning Result:

Obstacle_A
distance = 0.8m

→ Risk = HIGH

12.7 Decision

候选:

CONTINUE
STOP
TURN_LEFT
TURN_RIGHT

当前判断:

CONTINUE → REJECT
STOP     → AVAILABLE
TURN     → AVAILABLE

根据当前安全优先级:

Decision = STOP

形成:

Decision
{
    target: Robot_A,
    action: STOP,
    state: DECIDED
}

12.8 Behavior

形成:

Behavior
{
    type: STOP,
    target: Robot_A,
    state: READY
}

开始执行:

READY
   ↓
RUNNING

12.9 Action

形成:

Action
{
    target: Robot_A,
    method: STOP,
    state: READY
}

进入:

RobotAdapter

12.10 RobotAdapter

Adapter 转换:

Action
   ↓
Robot Command

例如:

{
    robot_id: Robot_A,
    command: STOP
}

发送:

RobotAdapter
      ↓
Robot_A

12.11 Robot Response

机器人执行:

MOVING
   ↓
STOPPING
   ↓
STOPPED

返回:

RobotResponse
{
    robot_id: Robot_A,
    state: STOPPED
}

12.12 Feedback

形成:

Feedback
{
    source: Robot_A,
    type: ACTION_RESULT,
    action: STOP,
    state: SUCCESS,

    changes:
    {
        previous: MOVING,
        current: STOPPED
    }
}

Feedback 返回 SAI:

Robot
 ↓
RobotAdapter
 ↓
Feedback
 ↓
Perception
 ↓
Cognition
 ↓
Memory / Experience

最终 Robot Object 更新:

Robot_A
state = STOPPED

完整 SAI + Robot 模型

最终形成完整闭环:

                         SAI + Robot
                              │
                              ↓
                         Robot Object
                              │
                              ↓
                            Scene
                              │
                 ┌────────────┴────────────┐
                 ↓                         ↓
              Sensor                 Robot State
                 │
                 ↓
             Information
                 │
                 ↓
             Perception
                 │
                 ↓
              Elements
                 │
                 ↓
              Objects
                 │
                 ↓
             Cognition
                 │
                 ↓
             Reasoning
                 │
                 ↓
                Risk
                 │
                 ↓
              Decision
                 │
                 ↓
              Behavior
                 │
                 ↓
               Action
                 │
                 ↓
           RobotAdapter
                 │
                 ↓
         Physical Robot
                 │
                 ↓
             Feedback
                 │
        ┌────────┼─────────┐
        ↓        ↓         ↓
   Perception  Memory   Experience
        │
        ↓
     Cognition
        │
        ↓
     Decision

本章核心定义

SAI + Robot 可以定义为:

SAI 通过 Robot Object 建立对机器人的内部结构表示,通过 Sensor 获取环境 Information,经 Perception 和 Cognition 形成 Scene 与对象关系,再通过 Reasoning、Risk 和 Decision 选择行为,通过 Behavior、Action 和 RobotAdapter 控制真实机器人,并利用 Feedback 更新内部状态、Memory 和 Experience。

核心职责:

Robot Object
    = 机器人的内部结构表示

Robot State
    = 机器人当前状态

Scene
    = 当前环境结构

Sensor
    = 获取外部物理数据

Information
    = 进入 SAI 的信息

Perception
    = 获取和组织信息

Cognition
    = 理解对象、属性、状态和关系

Decision
    = 选择行动

Behavior
    = 行动过程

RobotAdapter
    = SAI 与真实机器人的连接

Feedback
    = 机器人执行后的结果和状态

最终形成:

Environment
     ↓
   Sensor
     ↓
Information
     ↓
Perception
     ↓
Cognition
     ↓
Reasoning
     ↓
Decision
     ↓
Behavior
     ↓
Action
     ↓
RobotAdapter
     ↓
Robot
     ↓
Feedback
     ↓
Information

这使 Robot 不再只是一个“被调用的设备”,而成为 SAI 可以进行对象表示、状态管理、环境认知、决策、行为执行和反馈学习的外部实体。

Leave a Reply

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