Skip to main content

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.

ParameterTypeDescription
domain_idintDDS domain ID — must match the robot's infra.yaml (default 123)
participant_qos—DDS participant QoS; pass None to use defaults
robot_namestrRobot model: "gr1", "gr2", "gr3", "gr3mini", "grw", "krabby", "fouriern1", "dr1"
namespacestr | NoneDDS topic namespace; None for auto-detection
is_ros_compatiblebool | NoneEnable 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()