Skip to content
This repository was archived by the owner on Nov 13, 2019. It is now read-only.
This repository was archived by the owner on Nov 13, 2019. It is now read-only.

Improve HRIM module error management #57

@carlossvg

Description

@carlossvg

Describe the feature that you would like to include:

This is an open discussion on order to extend HRIM error management.

Additional context

Currently errors in HRIM are just a subfield on certain topics. There is not a common way to deal with errors for all the components. For instance, in the case of HRIM/models/actuator/servo/topics/state.xml the error are specified in field called fault with the following faults:

  • "FAULT_NONE": 0
  • "FAULT_CURRENT": 1
  • "FAULT_TEMPERATURE": 2
  • "FAULT_BUS_VOLTAGE": 3
  • "FAULT_BRIDGE_DRIVER": 4

It would be good to have a common definition of error that can be shared by all modules. In this way, error management could be consistent for different types of modules. The error semantic would be different for each component, but not the structure. That means that I can call the same function in order to retrieve the error for an actuator or a gripper.

I propose to follow a structure similar to the one used in CMM machine standard language (I++ DME (Dimensional Measurement Equipment) | NIST) (chapter 8 Error Handling):


captura de pantalla 2019-02-27 a las 9 00 15


In this implementation the error is composed by:

  • A severity code (F1)
  • A code defined inside the standard (F2). This could be an error defined in HRIM.
  • Native error code (F3). An error code which is provided each component vendor. i.e: 0x0080 (Position following error).
  • A string describing the error.

Apart from the message structure we would need to define an error classification for each component type. Some error codes could be common for all modules (i.e: communications failure, generic, wrong parameter, etc..) and other specific for each module type.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions