robotology / icub-firmware

iCub Firmware
Other
12 stars 30 forks source link

Make the joint encoder diagnostic more general as possible #533

Open valegagge opened 3 weeks ago

valegagge commented 3 weeks ago

A long time ago the only joint encoder available were the AEA and in the diagnostic message we refer to them. Now we have different type of joint encoder, so we need to make the diagnostic message more general.

For example in this issue https://github.com/robotology/icub-tech-support/issues/1901, the user was left blindsided.

Dod The joint encoder diagnostic messages are clearer.

MSECode commented 5 days ago

Considering the problems we had with the diagnostic described in the body of the issue and the desire to always make the diagnostic of our system more general and complete as possible, thus to remove from the final user all the effort of interpretation of the logs information, we have chosen not only to make the aforementioned messages more general but to improve them with other useful information. Therefore, we have added to the following messages:

the name of the type of the absolute encoder interested by the fault. This has been done since now we are starting to always use new types of encoders for the same joints in different robots. Therefore, it might be helpful to show to the user what type of encoder is mounted on the faulted branch, without having them to check this information in the configuration files.

The code we are working on is available in the following branches:

MSECode commented 5 days ago

I've tested on a bench setup the changes applied to the diagnostic. As you can see from the line I retrieved from the logs below, now the diagnostic message related to the errors we can have for a joint encoder is more general and we can also see the info about the type of encoder we have mounted at the joint. In order to get these logs, I've pushed the external fault button to be in a safe condition. Then, I've disconnected and then reconnected the encoder cable from the sensor board.

[ERROR] from BOARD 10.0.1.1 (three-encoders-setup) time=1419s 114m 367u : MC: Absolute encoder invalid data. Hardware problem in the magnetic position sensor of the joint caused invalid position readings. (Joint=three_encoders_joint (NIB=0), encoderPort=0, encoderType=AMO)

[WARNING] from BOARD 10.0.1.1 (three-encoders-setup) time=1409s 180m 295u : MC: Absolute encoder has spikes. There is impulsive noise in the measures of the magnetic position sensor of the joint. (Joint=three_encoders_joint (NIB=0), encoderPort=0, encoderType=AMO)