第190章 Action Data
行为数据
第189章建立:
Cognition
↓
Method
↓
Action Object
第190章继续向机器执行层推进:
Action Object 如何转换为机器可以直接接收、解析和执行的标准化数据?
因此建立:
Action Object
↓
Action Data
↓
Machine Interface
↓
Machine
1. Action Object 与 Action Data
两者需要明确区分。
Action Object
属于 ICAI 内部 OOP 对象:
Action
{
type
target
position
orientation
velocity
force
parameters
}
它服务于:
ICAI Cognitive System
Action Data
属于系统之间传输的数据:
{
"action": "grasp",
"target": "egg_001",
"position": [100, 80, 30],
"velocity": 0.08,
"force": 0.25
}
它服务于:
API
Machine Interface
Device Controller
因此:
Action Object
↓
Serialization
↓
Action Data
2. 为什么需要 Action Data
机器设备通常不需要知道:
Cognition
Reasoning
Method Matching
机器只需要获得:
What
Target
Position
Velocity
Force
Parameters
例如:
{
"action": "grasp",
"target": "egg_001",
"position": [100, 80, 30],
"velocity": 0.08,
"force": 0.25
}
因此建立明确的数据边界:
Cognitive Layer
↓
Action Object
↓
Action Data
↓
Machine Layer
3. Action Data 的核心结构
可以定义标准结构:
{
"action": "grasp",
"target": "egg_001",
"position": [100, 80, 30],
"orientation": [0, 0, 90],
"velocity": 0.08,
"force": 0.25,
"parameters": {}
}
其中:
action
表示行为类型。
target
表示行为对象。
position
表示空间位置。
orientation
表示姿态。
velocity
表示运动参数。
force
表示作用力或限制力。
parameters
表示具体 Method 所需要的扩展参数。
4. Action Data 不是新的认知
需要严格区分:
Cognition
和:
Action Data
Action Data 不负责:
理解
推理
判断
学习
这些属于:
Cognitive System
Action Data 只是:
认知系统计算出的行为结果的数据化表达。
因此:
Cognition
↓
Decision
↓
Method
↓
Calculation
↓
Action Object
↓
Action Data
越往下:
Abstract
↓
Structured
↓
Executable
5. Action Object → Action Data
可以建立独立的转换器:
class ActionSerializer
{
public function serialize(Action $action)
{
return [
'action' => $action->getType(),
'target' => $action->getTarget(),
'position' => $action->getPosition(),
'orientation' => $action->getOrientation(),
'velocity' => $action->getVelocity(),
'force' => $action->getForce(),
'parameters' => $action->getParameters()
];
}
}
使用:
$serializer = new ActionSerializer();
$data = $serializer->serialize($action);
得到:
Action Object
↓
ActionSerializer
↓
Action Data
6. Action Data JSON 化
如果通过 API 通讯:
$json = json_encode($data);
形成:
{
"action": "grasp",
"target": "egg_001",
"position": [100, 80, 30],
"velocity": 0.08,
"force": 0.25
}
于是:
PHP Object
↓
Array
↓
JSON
↓
API
成为标准的数据传输路径。
7. Action Data API
独立系统架构下:
ICAI Cognitive System
↓
Action Data
↓
API
↓
Machine System
例如:
POST /api/action/execute
发送:
{
"action": "grasp",
"target": "egg_001",
"position": [100, 80, 30],
"velocity": 0.08,
"force": 0.25
}
机器系统接收以后:
API Controller
↓
Action Parser
↓
Action Validator
↓
Device Adapter
↓
Machine
这样 ICAI Cognitive System 不需要绑定某一个具体机器人品牌。
8. Action Data 与设备解耦
这是本章非常重要的工程原则。
ICAI 不直接输出:
Servo1 = 123
Servo2 = 87
Motor3 = 45
而输出:
Action Data
例如:
{
"action": "move",
"target": "egg_001",
"position": [100, 80, 30],
"velocity": 0.08
}
然后由设备层负责:
Action Data
↓
Device Adapter
↓
Robot-specific Command
因此:
ICAI
与:
Robot Hardware
之间形成接口隔离。
9. Action Data 与不同设备
例如同一个:
Action Data
可以进入:
Robot A Adapter
或者:
Robot B Adapter
或者:
Manipulator Adapter
最终:
Action Data
│
┌──────────┼──────────┐
↓ ↓ ↓
Robot A Robot B Robot C
Adapter Adapter Adapter
↓ ↓ ↓
Device Device Device
这样 ICAI 的认知逻辑与具体设备实现可以独立演化。
10. Action Data 必须具有时间性
由于 ICAI 是实时认知系统:
Action(t)
对应:
ActionData(t)
可以增加:
{
"timestamp": "...",
"scene_id": "scene_001",
"action": "grasp",
"target": "egg_001",
"position": [100, 80, 30],
"velocity": 0.08,
"force": 0.25
}
这样机器执行层可以知道:
这是哪个 Scene 产生的 Action?
以及:
这个 Action 属于哪个认知周期?
11. Action Data 与 Scene ID
可以建立:
Scene Instance
↓
Cognition
↓
Method
↓
Action
↓
Action Data
因此:
{
"scene_id": "scene_001",
"action_id": "action_001",
"action": "grasp",
"target": "egg_001"
}
形成:
Scene
↓
Cognition
↓
Action
的可追踪关系。
这对于后面的:
Feedback
Learning
Experience
非常重要。
12. Action Data 与验证
Action Data 不能生成以后直接无条件执行。
应该经过:
Action Data
↓
Validation
检查:
Action Type
Target
Position
Velocity
Force
Capability
Safety
例如:
Force = 0.25
是否在设备允许范围?
Velocity = 0.08
是否超过设备能力?
Target = egg_001
是否仍然存在于:
Current Scene
中?
如果不满足:
Action Data
↓
Validation Failure
↓
Feedback
↓
Cognition
重新计算。
13. Action Data 与实时变化
特别重要的是:
Action Data
不是永久有效的。
例如:
Scene(t)
↓
Action Data(t)
但机器人尚未执行。
此时:
Egg Position
发生变化:
Scene(t+1)
那么原来的:
Action Data(t)
可能已经失效。
因此:
Action Data
应该具有:
Validity
Timestamp
Scene ID
必要时:
Action(t)
↓
World Change
↓
New Scene
↓
Recalculate
14. Action Data 与反馈闭环
最终:
Cognition
↓
Method
↓
Calculation
↓
Action Object
↓
Action Data
↓
Machine
↓
Physical Result
↓
Feedback Data
↓
Scene Update
↓
Cognition
于是:
Action Data
成为认知系统进入现实世界的出口。
而:
Feedback Data
成为现实世界返回认知系统的入口。
形成:
ICAI
│
↓
Action Data
│
↓
Machine
│
↓
World Change
│
↓
Feedback Data
│
↓
ICAI
15. Action Data 与 API 边界
最终可以明确系统边界:
┌──────────────────────────────┐
│ ICAI Cognitive System │
│ │
│ Scene │
│ Cognition │
│ Method Matching │
│ Method Calculation │
│ Action Object │
└──────────────┬───────────────┘
│
↓
Action Data
│
API
│
↓
┌──────────────┴───────────────┐
│ Machine System │
│ │
│ Action Parser │
│ Validator │
│ Device Adapter │
│ Controller │
│ Hardware │
└──────────────────────────────┘
这样:
ICAI 负责认知和行为数据生成,机器系统负责行为数据解释与物理执行。
16. Action Data 的核心公式
可以定义:
ActionData(t)
=
Serialize(
ActionObject(t)
)
而:
ActionObject(t)
=
F(
Method(t),
Cognition(t),
Scene(t)
)
因此完整:
Scene(t)
↓
Cognition(t)
↓
Method Matching
↓
Method Calculation
↓
Action Object(t)
↓
Action Data(t)
↓
Machine
17. 本章核心原则
Action Data Principle
ICAI 中的 Action Data 是 Action Object 面向机器执行层的标准化数据表达。它将认知系统内部产生的行为对象转换为机器系统可以通过 API 接收、验证、解析和执行的结构化数据,同时保持认知逻辑与具体设备控制逻辑之间的独立性。
最终建立:
Cognitive Result
↓
Action Object
↓
Action Data
↓
API
↓
Machine
到这里,第189章和第190章实际上完成了一个非常关键的转换:
第189章
Action Object
↓
“机器要做什么”的对象
第190章
Action Data
↓
“把什么数据交给机器”的接口
因此现在整个链条已经进一步变成:
Real-Time Data
↓
Element Instance
↓
Object Instance
↓
Relation
↓
Scene Instance
↓
Cognition Instance
↓
Method Matching
↓
Method Calculation
↓
Action Object
↓
Action Data
↓
Machine API
↓
Machine
下一章可以顺着进入第191章 Action Execution:研究 Action Data 进入机器以后,如何经过设备接口真正转化为物理动作,以及动作执行结果如何重新进入第181章的 Scene Update,最终形成完整的实时认知—行为闭环。