跳到主要内容

连接

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_idintDDS domain ID,必须与机器人的 infra.yaml 一致(默认 123)
participant_qos—DDS participant QoS,传 None 使用默认值
robot_namestr机器人型号,支持 "gr1"、"gr2"、"gr3"、"gr3mini"、"grw"、"krabby"、"fouriern1"、"dr1"
namespacestr | NoneDDS topic namespace;传 None 时自动检测
is_ros_compatiblebool | 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()