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

第217章 Behavior State|行为状态

第217章 Behavior State|行为状态

第216章建立:

Method
↓
Behavior
↓
Action

第217章进一步定义 Behavior 的内部状态结构,同时明确:

Behavior ≠ Action

217.1 Behavior 是行为过程

Behavior 不是一个动作,也不是几个 Action 的简单集合。

定义:

Behavior 是一个具有起始、过程、状态转换、反馈和结束条件的连续行为过程。

因此:

Behavior
│
├── Start
├── State
├── Transition
├── Action
├── Feedback
└── End

例如:

Move Object

是一个 Behavior。

它内部可能经历:

Approach
↓
Contact
↓
Grasp
↓
Move
↓
Hold
↓
Release
↓
Complete

这里整个过程:

Approach → Contact → Grasp → Move → Hold → Release

才叫:

Behavior

而不是其中某一个 Action。


217.2 Behavior ≠ Action

必须正式建立:

Behavior ≠ Action

二者关系是:

Behavior
    ↓
组织行为过程
    ↓
Action
    ↓
执行具体动作

可以定义为:

对象 定义
Behavior 行为过程
Behavior State 行为当前阶段
Action 具体动作
Feedback 动作结果/环境反馈

例如:

Behavior:
MoveObject

State:
Approach

Action:
MoveToTarget

然后:

Behavior:
MoveObject

State:
Grasp

Action:
CloseGripper

所以:

Behavior
    │
    ├── State: Approach
    │      └── Action: MoveToTarget
    │
    ├── State: Contact
    │      └── Action: DetectContact
    │
    ├── State: Grasp
    │      └── Action: EstablishGrip
    │
    ├── State: Move
    │      └── Action: MoveObject
    │
    └── State: Release
           └── Action: ReleaseObject

一个 Behavior 可以包含多个 Action,但 Behavior 本身不是 Action。


217.3 为什么必须分开

如果:

Behavior = Action

那么系统会变成:

Method
↓
Action
↓
Result

这实际上没有真正的行为层。

系统只能知道:

做了什么

却无法表达:

正在进行什么行为
行为处于什么阶段
下一阶段是什么
为什么进入下一阶段
行为是否失败
行为是否完成

因此必须:

Method
↓
Behavior
↓
Behavior State
↓
Action

217.4 Behavior State

Behavior State 描述:

一个 Behavior 当前处于哪个阶段。

第一组标准状态:

Approach
Contact
Grasp
Move
Hold
Release
Failure
Complete

形成:

Behavior
│
├── Approach
├── Contact
├── Grasp
├── Move
├── Hold
├── Release
├── Failure
└── Complete

217.5 Approach

Approach

表示:

行为正在接近目标或进入目标作用范围。

例如:

Behavior:
MoveObject

State:
Approach

Action:
MoveToObject

注意:

Approach ≠ MoveToObject

前者是:

行为状态

后者是:

具体动作

217.6 Contact

Contact

表示:

Behavior 已经与目标建立有效接触或交互关系。

例如:

Approach
↓
Contact

转换依据不是固定时间,而可以来自:

distance
sensor
relation
observation
condition

因此:

Observation
↓
Condition
↓
Contact

217.7 Grasp

Grasp

表示:

Behavior 已经建立对目标的控制、保持或抓取关系。

这里 Grasp 应保持抽象。

它可以代表:

机械抓取

也可以表示:

建立控制关系
锁定对象
取得操作权
建立稳定连接

所以 ICAI 中:

Grasp

是一个行为状态概念,而不是单纯的机械手动作。


217.8 Move

Move

表示:

Behavior 正在改变自身、目标或相关对象的状态/位置。

例如:

Grasp
↓
Move

Action 可以是:

MoveObject
ChangePosition
Transfer

但:

Move

仍然只是当前 Behavior State。


217.9 Hold

Hold

表示:

Behavior 暂时维持当前状态、关系或控制条件。

例如:

Move
↓
Hold

可能意味着:

目标已经到位
但暂时不能释放

因此 Hold 不是“不做任何事情”。

它可能对应:

MaintainPosition
MaintainGrip
MaintainConnection
WaitCondition

217.10 Release

Release

表示:

Behavior 正在解除此前建立的控制、接触或保持关系。

例如:

Hold
↓
Release

Action:

OpenGripper
Disconnect
Unlock
TransferControl

但:

Release

仍然是行为状态。


217.11 Complete

Complete

表示:

当前 Behavior 的目标过程已经完成。

例如:

Release
↓
Complete

注意:

Behavior Complete

不等于:

System Complete

也不等于:

Task Complete

它只表示:

当前 Behavior

完成。


217.12 Failure

Failure

表示:

当前 Behavior 无法按照当前行为路径继续完成。

例如:

Approach
↓
Contact
↓
Grasp
↓
Failure

Failure 是一个正式的 Behavior State。

它可以触发:

Failure
↓
Feedback
↓
State Update
↓
Method Evaluation

从而产生:

New Method
↓
New Behavior

因此:

Failure

不是系统终止状态。

它是一个可被系统处理的行为状态


217.13 Behavior State Transition

这些状态不是孤立的。

基本路径:

Approach
   ↓
Contact
   ↓
Grasp
   ↓
Move
   ↓
Hold
   ↓
Release
   ↓
Complete

失败路径:

Approach ──┐
Contact ───┤
Grasp ─────┤
Move ──────┤
Hold ──────┤
Release ───┤
            ↓
         Failure

所以:

Behavior State
↓
Condition
↓
Transition
↓
Next Behavior State

217.14 一个 Behavior 中可以有多个 Action

例如:

Behavior:
MoveObject

可以产生:

Approach
   ↓
Action: MoveToTarget

Contact
   ↓
Action: DetectContact

Grasp
   ↓
Action: EstablishGrip

Move
   ↓
Action: MoveObject

Hold
   ↓
Action: MaintainPosition

Release
   ↓
Action: ReleaseObject

Complete

因此:

一个 Behavior
    ↓
多个 Behavior State
    ↓
多个 Action

这就是:

Behavior ≠ Action

最直接的工程证明。


217.15 Behavior 的本质

因此第217章应该正式定义:

Behavior
=
State Machine
+
Action Execution
+
Feedback

而:

Action
=
具体执行单元

进一步:

Behavior
    ↓
描述“行为过程”

Behavior State
    ↓
描述“行为过程现在处于哪里”

Action
    ↓
描述“当前具体做什么”

三层完全不同。


217.16 工程结构

可以建立:

Behavior.php
BehaviorState.php
BehaviorTransition.php
BehaviorStateMachine.php

关系:

Behavior
│
├── BehaviorStateMachine
│      │
│      ├── Approach
│      ├── Contact
│      ├── Grasp
│      ├── Move
│      ├── Hold
│      ├── Release
│      ├── Failure
│      └── Complete
│
└── Action
       ├── Action A
       ├── Action B
       └── Action C

217.17 核心数据结构

Behavior:

class Behavior
{
    protected string $behaviorId;

    protected ?Method $method = null;

    protected ?BehaviorState $currentState = null;

    protected array $stateHistory = [];

    protected array $actions = [];

    protected string $status = 'created';
}

Behavior State:

class BehaviorState
{
    public const APPROACH  = 'approach';
    public const CONTACT   = 'contact';
    public const GRASP     = 'grasp';
    public const MOVE      = 'move';
    public const HOLD      = 'hold';
    public const RELEASE   = 'release';
    public const FAILURE   = 'failure';
    public const COMPLETE  = 'complete';
}

核心关系:

Behavior
   ↓
Current Behavior State
   ↓
Current Action

而不是:

Behavior = Current Action

217.18 与前面 Method 的关系

现在整个结构变成:

Cognition
   ↓
Dynamic Method
   ↓
Method Evaluation
   ↓
Method Selection
   ↓
Method
   ↓
Behavior
   ↓
Behavior State
   ↓
Action
   ↓
Feedback

其中:

Method

决定:

采用什么方法
Behavior

决定:

这个方法当前如何形成连续行为过程
Behavior State

决定:

行为现在处于哪个阶段
Action

决定:

当前执行哪个具体动作

217.19 第217章最重要的架构原则

正式确定:

Method ≠ Behavior
Behavior ≠ Behavior State
Behavior State ≠ Action
Action ≠ Feedback

形成:

Method
  ↓
Behavior
  ↓
Behavior State
  ↓
Action
  ↓
Feedback

每层职责分别是:

Method
方法结构

Behavior
行为过程

Behavior State
行为阶段

Action
具体动作

Feedback
执行结果与环境反馈

217.20 本章最终模型

                  Method
                     │
                     ▼
                 Behavior
                     │
             ┌───────┴───────┐
             │               │
             ▼               ▼
        State Machine       Actions
             │
             ▼
        ┌───────────┐
        │ Approach  │
        └─────┬─────┘
              ↓
        ┌───────────┐
        │ Contact   │
        └─────┬─────┘
              ↓
        ┌───────────┐
        │ Grasp     │
        └─────┬─────┘
              ↓
        ┌───────────┐
        │ Move      │
        └─────┬─────┘
              ↓
        ┌───────────┐
        │ Hold      │
        └─────┬─────┘
              ↓
        ┌───────────┐
        │ Release   │
        └─────┬─────┘
              ↓
        ┌───────────┐
        │ Complete  │
        └───────────┘

        任意阶段
             │
             ▼
          Failure

第217章最终定义

Behavior 是一个连续的行为过程,不是一个具体动作。Behavior 通过 Behavior State 描述自身所处阶段,通过 State Transition 在阶段之间转换,并在每个阶段调用一个或多个 Action 完成具体执行。

因此正式确定:

Method
↓
Behavior
↓
Behavior State
↓
Action

其中最关键的一条工程原则:

Behavior = Process
Action   = Operation

Behavior 是“正在进行什么行为过程”,Action 是“当前具体做什么”。

这样下一章如果进入 Behavior Transition|行为转换,就可以专门解决 Approach → Contact → Grasp → Move……为什么转换、依据什么转换、什么时候转换,而不再把转换逻辑混进 Action。

Leave a Reply

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