Connection
AuroraClient.get_instance()
Python
AuroraClient.get_instance(
domain_id: int,
participant_qos=None,
robot_name: str | None = None,
namespace: str | None = None,
is_ros_compatible: bool | None = None
) -> AuroraClient
Creates or returns the singleton AuroraClient instance. Multiple calls within the same process return the same object.
Set UDP transport before running
AuroraCore runs as a system user on the robot. Secondary-development programs just need to run as a regular user — no root/sudo required. Before importing fourier_aurora_client or creating any DDS participant, run:
Bash
export FASTDDS_BUILTIN_TRANSPORTS=UDPv4
Otherwise Fast DDS may pick the shared-memory transport on the same host and you will see matched endpoints but no incoming data.
| Parameter | Type | Description |
|---|---|---|
domain_id | int | DDS domain ID — must match the robot's infra.yaml (default 123) |
participant_qos | — | DDS participant QoS; pass None to use defaults |
robot_name | str | Robot model: "gr1", "gr2", "gr3", "gr3mini", "grw", "krabby", "fouriern1", "dr1" |
namespace | str | None | DDS topic namespace; None for auto-detection |
is_ros_compatible | bool | None | Enable ROS-compatible DDS topic naming |
Returns: AuroraClient instance. Raises DDSInitError on failure.
Example
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) # wait for state data
print(client.get_fsm_state(), client.get_fsm_name())
finally:
client.close()
close()
Python
close() -> None
Closes the DDS interface and releases all resources. Call this before the program exits.
Example
Python
import os
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")
# ... perform operations ...
client.close()