连接
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
创建或返回单例 AuroraClient 实例。同一进程内多次调用返回同一对象。
运行前设置 UDP transport
机器人上的 AuroraCore 以系统用户运行。二开程序以普通用户运行即可,无需 root/sudo;请在导入 fourier_aurora_client 或创建任何 DDS participant 前执行:
Bash
export FASTDDS_BUILTIN_TRANSPORTS=UDPv4
否则 Fast DDS 可能选择同机共享内存传输,出现端点已匹配但收不到状态数据的情况。
| 参数 | 类型 | 说明 |
|---|---|---|
domain_id | int | DDS domain ID,必须与机器人的 infra.yaml 一致(默认 123) |
participant_qos | — | DDS participant QoS,传 None 使用默认值 |
robot_name | str | 机器人型号,支持 "gr1"、"gr2"、"gr3"、"gr3mini"、"grw"、"krabby"、"fouriern1"、"dr1" |
namespace | str | None | DDS topic namespace;传 None 时自动检测 |
is_ros_compatible | bool | None | 是否启用 ROS-compatible DDS topic 命名 |
返回:AuroraClient 实例。初始化失败时抛出 DDSInitError。
示例
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(client.get_fsm_state(), client.get_fsm_name())
finally:
client.close()
close()
Python
close() -> None
关闭 DDS 接口并释放所有资源。程序退出前应调用此方法。
示例
Python
import os
os.environ.setdefault("FASTDDS_BUILTIN_TRANSPORTS", "UDPv4") # 机器人上运行必须设置
from fourier_aurora_client import AuroraClient
client = AuroraClient.get_instance(domain_id=123, robot_name="grw")
# ... 执行操作 ...
client.close()