跳到主要内容

安全保护状态

安全保护状态是为机器人失控的场景准备的。进入安全保护状态时,控制器将首先将所有执行器设置为阻尼模式 2 秒,然后将所有执行器设置为零扭矩模式。用户仍然可以在零扭矩模式下读取关节状态。

某些控制器带有自动保护切换机制。当它们发现自己超出可控范围时,它们将自动切换到安全保护状态。

状态明细​

状态名称任务名称手柄映射DDS 映射频率
Security ProtectionSecurityProtectionTaskLT+RT9500Hz
可用于悬挂可用于站立自动保护切换
是否否

手柄控制​

进入安全保护状态​

初始化 AuroraCore 后,同时按下扳机 LT 和 RT 进入安全保护状态。

客户端控制​

速度控制站姿控制关节控制关节参数控制
否否否否

进入安全保护状态​

初始化 AuroraCore 后,使用 aurora 客户端的 set_fsm_state 函数进入安全保护状态。

Python
import os
import time

os.environ.setdefault("FASTDDS_BUILTIN_TRANSPORTS", "UDPv4") # 机器人上运行必须设置

from fourier_aurora_client import AuroraClient

client = AuroraClient.get_instance(domain_id=123, robot_name="grw")
try:
time.sleep(1.0)
print(f"before: {client.get_fsm_state()} ({client.get_fsm_name()})")
if not client.set_fsm_state(9):
raise RuntimeError("状态切换请求未受理")
time.sleep(2.5) # 阻尼 2 s 后进入零扭矩
print(f"after: {client.get_fsm_state()} ({client.get_fsm_name()})")
print(f"joints still readable: {client.get_group_state('head', key='position')}")
finally:
client.close()
GR-W 说明
  • 站立的 GR-W(轮式底盘支撑)进入状态 9 后先阻尼再零扭矩,上肢/腰部关节松弛但整机由轮式底盘支撑,不会倾倒;上方"可用于悬挂/站立"表为 GR-3 沿用语义。
  • 零扭矩模式下 get_group_state() 仍可正常读取各关节状态(含 waist、head、双臂)。
  • 恢复路径 9 → 1(JointStand)→ 3(grw_policy_task):关节会重新收敛到 JointStand 目标位。恢复期间现场人员应扶稳机器人并保证急停可用。