第83章 SAI + Robot
本章大纲
- Robot Object
- Robot State
- Scene
- Sensor
- Information
- Perception
- Cognition
- Decision
- Behavior
- RobotAdapter
- Feedback
- 完整机器人案例
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 可以进行对象表示、状态管理、环境认知、决策、行为执行和反馈学习的外部实体。