Security Protection State
The Security Protection State is designed for scenarios where the robot loses control. Upon entering this state, the controller first sets all actuators to damping mode for 2 seconds, then sets all actuators to zero-torque mode. Joint state can still be read in zero-torque mode.
Some controllers include an auto protection switch mechanism. When they detect they are outside a controllable range, they automatically switch to the Security Protection State.
State Details
| State Name | Task Name | Joystick Mapping | DDS Mapping | Frequency |
|---|---|---|---|---|
| Security Protection | SecurityProtectionTask | LT+RT | 9 | 500Hz |
| Available for Hanging | Available for Standing | Auto Protection Switch |
|---|---|---|
| Yes | No | No |
Joystick Control
Enter Security Protection State
After initializing AuroraCore, press triggers LT and RT simultaneously to enter the Security Protection State.
Client Control
| Velocity Control | Pose Control | Joint Control | Motor Config |
|---|---|---|---|
| No | No | No | No |
Enter Security Protection State
After initializing AuroraCore, use the set_fsm_state function to enter the Security Protection State.
Python
import os
import time
os.environ.setdefault("FASTDDS_BUILTIN_TRANSPORTS", "UDPv4") # required on the robot
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("state change request not accepted")
time.sleep(2.5) # 2 s of damping, then zero torque
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 notes
- A standing GR-W (supported by the wheeled base) entering state 9 first damps and then zero-torques the joints; the upper body and waist go limp while the wheeled base keeps the robot upright. The "available for hanging/standing" table above is legacy GR-3 wording.
get_group_state()still reads all joint states normally in zero-torque mode (includingwaist,head, and both arms).- Recovery path
9 → 1 (JointStand) → 3 (grw_policy_task): joints converge back to the JointStand targets. On-site personnel should steady the robot and keep the e-stop within reach during recovery.