客户端与状态读取
客户端与状态读取#
AirbotClient 同时负责传输资源、客户端注册、控制租约和状态访问。这些资源的就绪时间不同:
构造成功不表示服务状态缓存已经收到首帧,也不表示当前客户端拥有控制权。
任务入口#
| 要完成的任务 | 主参考页 |
|---|---|
| 选择 gRPC 或 DDS,正确创建和关闭客户端 | 客户端生命周期 |
| 查询客户端身份,申请、释放或交还控制权 | 控制权与租约 |
判断 getter 是否阻塞、何时返回 None、数据是否可能陈旧 |
状态读取参考 |
| 查询每个返回字段的类型、长度、单位和坐标系 | 状态数据模型 |
推荐的资源结构#
from arm_p7_sdk import AirbotClient
with AirbotClient(host="P7_IP_ADDRESS", port=50071) as client:
service = client.get_service_state()
joints = client.get_arm_joint_state()
退出 with 时会停止后台任务、释放当前客户端持有的租约、注销客户端并关闭传输。状态读取本身不申请
控制权;上面的代码不会切换模式或发送运动命令。
需要连续观察状态时,使用
只读诊断示例。它处理了固定采样间隔、None、
键盘中断和资源关闭,但不是确定性实时控制循环。