跳转到主要内容

概述

连接后把设备的静态信息与当前诊断状态一次打印出来:手性、IP、在线关节位图、20 个关节的标签与力矩上限,以及每个关节的状态字、电流、母线电压、温度与错误码。 排查设备问题的第一步。关节离线、温度异常、故障码非零,在这里一眼就能看到。 对应的 C 示例为 2_hand_info.c。 设备参数与可执行操作的完整清单见设备参数与操作,本页只讲怎么跑起来与实测结果。
Python 侧没有对应的独立示例,但相关能力都有:hand.handedness()、hand.ip()、hand.online_joints_count()、hand.joints、hand.effort_limit(),以及订阅 joint_diagnostics 取诊断快照。
本示例只读取,不使能电机,手指不会动。

前置条件

硬件

软件

关节的两套编号

这是读懂本示例输出、也是读懂 joint_states 的关键。 每根手指占用 5 个 nid 号段但只用前 4 个,所以 5、10、15、20 被跳过。两者的换算关系实测吻合全部 20 个关节:
拿 joint_states 里的 nid 直接当数组下标会整体错位。

数据流

在线位图是 32 位整数,第 N 位对应索引 N 的关节。20 关节全在线时为 0x000FFFFF。

运行时分支

调用顺序

运行与输出

实测输出

在 20 关节全在线的右手 Wuji Hand 2 上实跑:
静置未使能时电流在零附近小幅波动,温度稳定在 50 摄氏度上下,这是正常状态。

调整与适配

判断关节是否在线

位图比逐个查询快。(bitmap >> i) & 1 为 1 表示索引 i 的关节在线。注意这里用的是数组索引,不是 nid。

温度与电压的参考范围

实测静置状态温度 49 到 59 摄氏度、母线电压 12.3 到 12.4 V。长时间大幅运动后温度会上升,持续偏高要检查散热与负载。

故障码排查

err_code 非零时对照故障码表定位。清除故障用 clear_fault(),清不掉说明故障仍然存在。

定位某个具体关节

已知标签想找 nid,用上面的换算公式。已知 nid 想找标签,反推索引 i = (nid - 1) // 5 * 4 + (nid - 1) % 5,注意 nid 为 5、10、15、20 时无对应关节。

相关内容