【发布时间】:2019-04-09 16:13:35
【问题描述】:
我有一个与 Naoqi DCM 通信、发送命令和读取状态信息的 C++ 程序,但我找不到直接读取关节刚度设置的方法。
Naoqi 有以下ALMemory 键用于特定关节,左肩间距在下面的示例中。
Device/SubDeviceList/LShoulderPitch/Position/Actuator/Value
Device/SubDeviceList/LShoulderPitch/Position/Sensor/Value
Device/SubDeviceList/LShoulderPitch/ElectricCurrent/Sensor/Value
Device/SubDeviceList/LShoulderPitch/Temperature/Sensor/Value
Device/SubDeviceList/LShoulderPitch/Hardness/Actuator/Value
Device/SubDeviceList/LShoulderPitch/Temperature/Sensor/Status
虽然我能够写入上述执行器并从传感器读取数据,但我需要确定关节的刚度设置,但 Hardness 是只写执行器,无法读取。
我查看了ElectricCurrent 传感器返回的值,并确定它本身并不能提供所需的结果。即使将刚度设置为最大值,如果手臂处于其目标姿势并且没有位移扭矩力,ElectricCurrent 也会报告关节的零电流。因此,您不能假设没有电流时刚度会关闭。
有人知道如何在不使用motionProxy.getSummary() 的情况下确定关节的刚度设置吗?
【问题讨论】:
-
开始时,设置一个默认值,然后跟踪您设置的值吗?
-
我已经这样做了。但是,如果流程被重置,或者 walk 模块在进行调整时直接写入 DCM,那么状态就会变得不清楚。我需要能够通过读取一些值来确定机器人的当前状态。
-
我不同意你的说法:“Device/SubDeviceList/LShoulderPitch/Hardness/Actuator/Value”是只写的。我很确定您可以阅读它。