OmniSimulator.action.action_manager.ActionManager
- class OmniSimulator.action.action_manager.ActionManager(world_state, env_manager, agent_manager, scene_abilities=None)[source]
动作管理器 - 负责动作的创建、验证和执行
这个类整合了原有的ActionParser, ActionValidator和ActionExecutor的功能, 采用了面向对象的设计模式,使代码更清晰、易于维护和扩展。
主要职责: 1. 解析命令字符串,创建动作对象 2. 验证动作是否可以执行 3. 执行动作并返回结果 4. 维护协作动作的状态
- __init__(world_state, env_manager, agent_manager, scene_abilities=None)[source]
初始化动作管理器
- Parameters:
world_state – 世界状态对象
env_manager – 环境管理器
agent_manager – 智能体管理器
scene_abilities – 场景支持的能力列表,用于注册不需要工具的属性动作
Methods
__init__(world_state, env_manager, agent_manager)初始化动作管理器
execute_action(action)执行动作
获取智能体支持的所有动作的字符串描述
is_action_registered(action_name)检查动作是否已注册
parse_command(command_str, agent_id)解析命令字符串并创建相应的动作对象
process_command(command_str, agent_id)处理命令字符串,包括解析、验证和执行
register_ability_action(action_name, agent_id)为特定智能体注册能力相关动作(仅限需要工具的动作)
register_action_class(action_name, action_class)注册单个动作类
register_action_classes(action_classes_dict)批量注册多个动作类
unregister_ability_action(action_name, agent_id)为特定智能体解绑能力相关动作(仅限需要工具的动作)
validate_action(action)验证动作是否有效
Attributes
- agent_action_classes = {}
- __init__(world_state, env_manager, agent_manager, scene_abilities=None)[source]
初始化动作管理器
- Parameters:
world_state – 世界状态对象
env_manager – 环境管理器
agent_manager – 智能体管理器
scene_abilities – 场景支持的能力列表,用于注册不需要工具的属性动作
- classmethod register_ability_action(action_name: str, agent_id: str)[source]
为特定智能体注册能力相关动作(仅限需要工具的动作)
- Parameters:
action_name – 动作名称
agent_id – 智能体ID
- classmethod unregister_ability_action(action_name: str, agent_id: str)[source]
为特定智能体解绑能力相关动作(仅限需要工具的动作)
- Parameters:
action_name – 动作名称
agent_id – 智能体ID
- register_action_class(action_name: str, action_class: Type[BaseAction])[source]
注册单个动作类
- Parameters:
action_name – 动作名称,将自动转为大写
action_class – 动作类,必须是BaseAction的子类
- Returns:
支持链式调用
- Return type:
self
- register_action_classes(action_classes_dict: Dict[str, Type[BaseAction]])[source]
批量注册多个动作类
- Parameters:
action_classes_dict – 动作名称到动作类的映射字典
- Returns:
支持链式调用
- Return type:
self
- is_action_registered(action_name: str) bool[source]
检查动作是否已注册
- Parameters:
action_name – 动作名称
- Returns:
是否已注册
- Return type:
- parse_command(command_str: str, agent_id: str) Tuple[BaseAction | None, str | None][source]
解析命令字符串并创建相应的动作对象
- Parameters:
command_str – 命令字符串,如”GRAB cup_1”
agent_id – 执行动作的智能体ID
- Returns:
- (动作对象, 错误消息)
如果解析成功,错误消息为None;如果解析失败,动作对象为None
- Return type:
Tuple[Optional[BaseAction], Optional[str]]
- execute_action(action: BaseAction) Tuple[ActionStatus, str, Dict[str, Any] | None][source]
执行动作
- Parameters:
action – 动作对象
- Returns:
(执行状态, 反馈消息, 额外结果数据)
- Return type:
Tuple[ActionStatus, str, Optional[Dict]]