Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

the joints is not set in HW fault if the TDB cannot read from the starting pahse #567

Open
valegagge opened this issue Feb 27, 2025 · 1 comment
Assignees
Labels

Comments

@valegagge
Copy link
Member

valegagge commented Feb 27, 2025

During the robot usage, we noticed that a joint is in running even if the TDB is not reading at all.

Please see here for more details.

Dod
bug fixed

@MSECode
Copy link
Contributor

MSECode commented Mar 3, 2025

First of all, while testing on ergoCub SN002 we have seen that the version used on the ems and on the 2foc are as follows:

  • EMS --> 3.99
  • 2FOC --> 3.3.36

See the screen below:

Image

Testing on ergoCub SN001 we noticed the same behavior. In this case the robot is updated to the latest fw versions:

  • EMS --> 3.101
  • 2FOC --> 3.3.38

In this image you can see the problem --> form the yarpscope we can see that the torso roll is constantly not reading any data (temperature set to -90) while the yarpmotorgui, as the yarprobotinterface, are not rising any error:

Image

This probably happens because the i2c communication breaks before even receiving the ACK signal, thus the temperature reading on the 2FOC goes in timeout in a condition, which we are not taking into account for calling the error manager.

Anyway, we dumped the temperature data from all the joints that has the TDB on both ergoCub001 and ergoCub002 in 2 conditions:

  • while the robot was stable in the position it reaches at the end of the calibration
  • while the robot was in the standing still position, but hanged on the crane

Temperature errors tables

Left Leg

Joint eCub001 - endOfCalib - NR eCub001 - standingStill - NR eCub002 - endOfCalib -NR eCub002 - standingStill NR
hip_pitch 0.4447 0.0558 3.0438 3.2121
hip_roll 0.0000 0.0000 0.0000 0.0000
hip_yaw 0.0000 0.0000 0.7751 0.0000
knee 0.0000 0.0000 3.4313 0.1936
ankle_pitch 0.6103 0.2635 0.0000 0.0000
ankle_roll 0.0000 0.0000 broken broken

Right Leg

Joint eCub001 - endOfCalib - NR eCub001 - standingStill - NR eCub002 - endOfCalib -NR eCub002 - standingStill NR
hip_pitch 25.6379 8.3167 11.9433 90.7373
hip_roll 100.0000 100.0000 0.0000 0.0000
hip_yaw 25.6379 8.3167 11.9433 90.7373
knee 0.2307 0.0317 0.2193 0.0000
ankle_pitch 0.0000 0.0000 0.0000 0.0000
ankle_roll 0.0000 0.0000 0.0000 0.0000

Left Arm

Joint eCub001 - endOfCalib - NR eCub001 - standingStill - NR eCub002 - endOfCalib -NR eCub002 - standingStill NR
shoulder_pitch 0.0000 1.3827 100.0000 100.0000
shoulder_roll 0.0420 0.0000 100.0000 100.0000
shoulder_yaw 72.9321 2.5485 0.0000 0.0000
elbow 1.6201 11.2917 0.0000 0.0000

Right Arm

Joint eCub001 - endOfCalib - NR eCub001 - standingStill - NR eCub002 - endOfCalib -NR eCub002 - standingStill NR
shoulder_pitch 0.0000 0.0000 4.5562 8.8878
shoulder_roll 0.0000 0.0000 0.8640 1.3720
shoulder_yaw 0.0000 0.0000 4.5562 8.8878
elbow 37.0828 5.5282 100.0000 100.0000

Final conclusion

In a nutshell we have seen that sometimes the temperature detection boards stop to read data without as knowing it. This happens because a different problem from the ones that our diagnostic takes into account occurs. Therefore, we cannot see the error neither from the yarprobointerface nor from the motorgui while the temperature detected stays fixed to -90 degrees.
We need thus, to add to the table which joints have the i2c_extender mounted and which is the problem that makes the i2c going in timeout. Probably the clock signal gets broken.
Moreover, we need to check if the joints that have errors high but not equal to 100% have or not the i2c_extender mounted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants