所有子器件的ALMemory默认关键码

(致动器与传感器具有相同的关键码)

  • Value(浮点)

    子器件通常有一个主值。

    传感器的值是传感器的返回值,致动器的值是(由DCM)发送至致动器的最后一个命令。

    例如,一个关节(至少)有2个子器件:致动器(需要达到的角度)和传感器(目前所处的角度,取决于传感器的精度)。

    其值具有一个最后更新时间 (由ALMemory自动完成)。

    该值通常为一个整数(8位、16位等,有符号或无符号),由电路板收发,由DCM(使用增益“Gain”和偏移“Offset”)转换为浮点或作为浮点读取。致动器首先转化为整型值(int),然后应用定时命令算法,在ALMemory里设定最后的值。这就是为什么如果您使用定时命令,要求一个发光二极管的浮点值为0.4时,最后发送到ALMemory里的值可能是0.398。

    要获得ALMemory里的子器件值时,只需在子器件名中添加“baseName”和“/Value”,如:“Device/SubDeviceList//HeadPitch/Position/Actuator/Value”。

    使用“/Value”来获得该值。

  • “Gain”和“Offset”(浮点)

    “Gain”(增益)和“Offset”(偏移)应用于器件的返回/发送值。

    当传感器返回一个值时(通常为整数),会自动乘以增益值,加上偏移值。

    当向致动器发送一个命令时,首先扣除偏移值,然后除以增益值。之后,(应用定时命令计算后)所得的值发送至致动器。

    使用“/Gain”和“/Offset”关键码来获得这些值。

    正常使用时,您无需改变这些关键码。

  • “ACK”和“NACK”(整型)

    每个子器件都有一个“ACK”(器件已应答)值 和一个“NACK”(器件未应答)值,它们只是简单的计数器,是所有接收到的“ACK”和“NACK”的整数增量。

    每当一条信息成功地发送或接收至(次)器件时,“ACK”就会增加。每当在(次)器件出现信息交流错误(或无返回)时,“NACK”就会增加。如果没有信息交流,“ACK”和“NACK”就不会增加。

    请注意,可能会返回 负值或0。在这里,上层也可以使用最后更新时间。

    除特殊功能外,“NACK”意味着器件至少目前可能丢失或不存在(这有可能 仅仅是某一个信息交流的问题)。

    使用“/Ack”和“/Nack”关键码来读取这些值。

    注释:

    目前,只有器件才具有“ACK”和“NACK”信息,而且接收到的有关某一器件的 “ACK”或“NACK”不会转发至其子器件。因此,您必须查看器件的相关信息。

  • Error

    每个器件、子器件都有一个错误列表。 每条错误信息中都有一个时间值、一个0至7的错误程度编码和一个字符串。 每个值都有30秒的时限,因此,如果出现错误的话,只会保留30秒内的错误信息。

    错误程度编码为:

    7 严重错误,无法使用(同“NACK”)
    6 严重错误,但仍可勉强使用
    5 对主要性能有不良影响的错误
    4 错误
    3 警告
    2 轻微警告
    1 注释
    0 一切正常

    > 使用“/Error”关键码来读取该值。

    注释:

    目前尚未使用。只有电机电路板器件的错误信息,其值是一个特殊的8位整型(见下一章)。

  • “Min”和“Max”

    还有强制性的“Min”(最小值)和“Max”(最大值)。

    每个发送到致动器的定时命令都会经最小和最大值进行增、减调整。

    对传感器来说,这个两个值的含义取决于子器件的类型。针对某些致动器,它们也会有特定的用途。

    使用“/Min”和 “/Max”关键码来读取这些值。

    请勿更改这两个值。

  • 其它配置值包括“Type”,“Device”和“SubDeviceNumber”

    “Type”是一个字符串,说明子器件的类型。

    “Device”也是一个字符串,是控制这个子器件的器件名。

    “SubDeviceNumber”是一个整型,以1开始,是 这个子器件的编号。

    请勿更改这些值。

这些仅是强制性的关键码。根据类型不同,子器件可能会有其它“information”(信息)(诸如改变的传感器值),或“configuration”(配置)的关键码。

在以下的章节中会详细介绍所有的关键码。





Copyright © 2010 Aldebaran-Robotics - 版权所有