Specific ALMemory keys for each device type

MotorBoard

Note:

There is no specific meaning for mandatory keys.

Specific keys:

  • StructVersion: an integer that is the version of the configuration structure for the motor board. This value is returned by the Device
  • BoardId: an integer value used as ID for the electronic board.
    Note:

    This will change in the future

  • BoardId2: a second integer value used as ID for the electronic board.
    Note:

    This will change in the future

  • BootLoaderVersion: an integer value with the motor board bootloader version.
    Note:

    This will change in the future

  • ProgVersion: an integer value with the motor board program version.
    Note:

    This will change in the future

  • Bid: a number from 1 to number max of board in the specific bus used in RS485 broadcast communication. This number is automatically given by the DCM at startup, and sent to the motor board in the config struct.
  • Error: One byte returns each cycle by the motor board. If there is more than one error, the motor board will send a different one every cycle. Be careful that motor and MRE numbers are physical numbers and not subdevice numbers.
    Note:

    MRE means Magnetic Rotary Encoders and are the main sensors for joints (there is one on the joint itself, and there could be another one that is directly on the motor for more precision in some other joints). Most of the MRE errors are directly sent by the MRE sensor.

  • Error codes for motor board:

    > ERROR COM

    Kind 1st value (7-4 bits) Bit 3 Bit 2 Bit 1 Bit 0 Value Test only after config
    RS485 protocol 10 READ UNFINISHED RCRC ERROR UNFINISHED READ CRC ERROR 161 to 175 No
    Note Text
    Bit 3 Start of a read request to this PIC, then ask for another address before the end
    Bit 2 Read CRC (write to this dsPIC point of view) was wrong
    Bit 1 New address found while message was not finished
    Bit 0 Message read by the dsPIC as a CRC error

    > ERROR_UART_SPI

    Kind 1st value (7-4 bits) Bit 3 Bit 2 Bit 1 Bit 0 Value Test only after config
    Com RS485 / SPI (MRE) 11 OERR FERR PERR SPI_SPIROV 177 to 191 No
    Note Text
    Bit 3 Overrun Error bit: Received FIFO full (5 bytes)
    Bit 2 Framing Error bit: bad stop bit
    Bit 1 Parity Error bit: bad parity
    Bit 0 SPI Overflow: a byte in the SPI was lost (SPI used for MRE communication)

    > ERROR_MRE_BAD_OCF

    Kind 1st value (7-4 bits) Bit 3 Bit 2 Bit 1 Bit 0 Value Test only after config Text
    MRE 9 MRE 4 MRE 3 MRE 2 MRE 1 145 to 159 Yes MRE: the offset compensation is not finished. Not tested if ERROR_NO_DATA or ERROR_PARITY

    > ERROR_MRE_BAD_COF

    Kind 1st value (7-4 bits) Bit 3 Bit 2 Bit 1 Bit 0 Value Test only after config Text
    MRE 5 MRE 4 MRE 3 MRE 2 MRE 1 81 to 95 Yes MRE: data invalid due to cordic overflow (magnet above XYZ limit). Not tested if ERROR_NO_DATA or ERROR_PARITY

    > ERROR_MRE_WARNING_BAD_LIN

    Kind 1st value (7-4 bits) Bit 3 Bit 2 Bit 1 Bit 0 Value Test only after config Text
    MRE 6 MRE 4 MRE 3 MRE 2 MRE 1 97 to 111 Yes MRE: Linearity alarm: Data could be invalid (magnet above XYZ limit). Not tested if ERROR_NO_DATA or ERROR_PARITY

    > ERROR_MRE_WARNING_BAD_MAG

    Kind 1st value (7-4 bits) Bit 3 Bit 2 Bit 1 Bit 0 Value Test only after config Text
    MRE 7 MRE 4 MRE 3 MRE 2 MRE 1 113 to 127 Yes MRE: magnetic input field invalid (too large or too small). Not tested if ERROR_NO_DATA or ERROR_PARITY

    > ERROR_MRE_ERROR_PARITY

    Kind 1st value (7-4 bits) Bit 3 Bit 2 Bit 1 Bit 0 Value Test only after config Text
    MRE 8 MRE 4 MRE 3 MRE 2 MRE 1 129 to 143 Yes MRE: Parity of the SPI message is false. Not tested if ERROR_NO_DATA

    > ERROR_MRE_ERROR_NO_DATA

    Kind 1st value (7-4 bits) Bit 3 Bit 2 Bit 1 Bit 0 Value Test only after config Text
    MRE 4 MRE 4 MRE 3 MRE 2 MRE 1 65 to 79 Yes MRE: Message is only 0 (no SPI)

    > ERROR_TEMPERATURE

    Kind 1st value (7-4 bits) Bit 1 Bit 0 Value Test only after config Text
    Temperature 2 Motor 2 Motor 1 33, 34 or 35 Yes Motor temperature too high, current limitation is decreased

    > ERROR_CURRENT_NO_MOTOR

    Kind 1st value (7-4 bits) Bit 1 Bit 0 Value Test only after config Text
    Motor 1 Motor 2 ERROR Motor 1 ERROR 17, 18 or 19 Yes Error sent when there is no current for a while on the mother while the PWM is >10%. Divide PWM by two, until there is current back for a while.

    > ERROR_ASSERV_ERROR_TOO_BIG_MOTOR

    Kind 1st value (7-4 bits) Bit 1 Bit 0 Value Test only after config Note Text
    Motor control 3 Motor 2 Motor 1 49, 50 or 51 Yes Must be 100% hardness Motor control error greater than x deg

    > WARNING_CURRENT_LIMITATION

    Kind 1st value (7-4 bits) Bit 1 Bit 0 Value Test only after config Text
    Motor 13 Motor 2 Motor 1 209, 210 or 211 Yes Motor current too big, PWM is decreased.

    > ERROR_MOTOR1_NOT_ASSERV_BECAUSE_MRE

    Kind 1st value (7-4 bits) Bit 3 Bit 2 Bit 1 Bit 0 Value Test only after config Text
    MRE 14 MRE joint OTHER ISSUE MRE motor OTHER ISSUE MRE joint NO DATA MRE motor NO DATA 225 to 239 Yes Position control cut for the motor one because of a MRE issue

    > ERROR_MOTOR2_NOT_ASSERV_BECAUSE_MRE

    Kind 1st value (7-4 bits) Bit 3 Bit 2 Bit 1 Bit 0 Value Test only after config Text
    MRE 15 MRE joint OTHER ISSUE MRE motor OTHER ISSUE MRE joint NO DATA MRE motor NO DATA 241 to 255 Yes Position control cut for the motor two because of a MRE issue

Battery

  • ManufactureDate : Manufacture date (DD-MM-YYYY) (string)
  • Manufacturer (Ausgabe: "FSM-BMZ") (string)
  • Device Name (Ausgabe: "AR-NAO ") (string)
  • Firmware Version (Ausgabe: "V1.01") (string)
  • Serial number (int: 2 bytes)
    Note:

    None of these values are implemented, except for the new Sanyo battery, where the serial number is now a string like "ALDE000039___PD00100600", with "ALDE000039___PD00" + year ("10") + month ("06") + 2 bytes serial in hexa "0x00". The manufacturer is "SANYO".

Chest Board

There are the mandatory keys, plus:

  • BodyId: official ID of the robot as a string. This string is stored in the chestBoard, and so linked to the body.
  • BodyNickName: string with the nick name of the robot, usually "NaoX", X is the NAO number. This string is stored in the chestBoard, and so linked to the body.
  • ProgVersion: this is a string with the program version.
  • ChainResult: this is a string describing the chaining of motorBoard result. The chaining process is the way to give address to the motorBoard.
    Note:

    This value is not correct right now.

Note:

A Nack increment from the chestBoard usually means that the USB connection is lost. This is a very important error.

Other devices

Other devices only have the mandatory keys.





Copyright © 2010 Aldebaran-Robotics - All rights reserved