-
Notifications
You must be signed in to change notification settings - Fork 104
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
Calibration type 5 for EMS4 control boards connected to 2FOC DC - Firmware integration in icub-firmware repos #750
Comments
Thanks @plinioMoreno for opening up this feature request. |
Sorry for being late but we kind of struggled with this activity while attacking a big problem of the AMO absolute sensors on iCub 3. However, we have finally completed the task and now the EMS/2FOC are capable of carrying out the incremental calibration. Relevant PR's:
We eventually re-used the Type 10 calibration that is already employed on R1 for the incremental calibration of the pronosupination. Calibration Type 10 is not yet documented at https://icub-tech-iit.github.io/documentation/icub_r1_icub3_calibration_types/icub_r1_calibration_types/ but we will do it soon. In the meantime, I hope you could inherit the relevant quantities from the body of robotology/robots-configuration#307 and with the help of @ale-git. |
Hi @pattacini, Thanks for the update. If I understood correctly, we should update to the current devel repositories and upload the ems 3.45 firwmare to the board. We hope to run our tests here soon and will ask @ale-git for help. cc @wevmacedo |
That's correct. |
Hi @pattacini and @ale-git, We managed to upgrade the repositories and upload the firmwares of EMS4 and 2foc. We used the calibration parameters as follows: <group name="HOME">
<param name="positionHome"> 0 </param>
<param name="velocityHome"> 10.00 </param>
</group>
<group name="CALIBRATION">
<param name="calibrationType"> 10 </param>
<param name="calibration1"> 2000 </param>
<param name="calibration2"> 0 </param>
<param name="calibration3"> 0 </param>
<param name="calibration4"> 0.0 </param>
<param name="calibration5"> 0.0 </param>
<param name="calibrationZero"> 10.0 </param>
<param name="calibrationDelta"> 0.1 </param>
<param name="startupPosition"> 0.00 </param>
<param name="startupVelocity"> 10.0 </param>
<param name="startupMaxPwm"> 2000 </param>
<param name="startupPosThreshold"> 2 </param>
</group>
<param name="CALIB_ORDER">(0) </param> The output from
The motor that we are using started to move in one direction, then it moved in the other direction. This happened several times up until it did not move anymore. Let us know what can we change in the calibration file, or if we need to use another 2foc firmware file. cc @wevmacedo |
Hi @wevmacedo, I think that first of all we have to check if the 2FOC configuration matches the real characteristics of your motor. |
@ale-git provided the documentation of the parameters for Type 10. |
Hi @ale-git and @pattacini, Thanks for sending the documentation link of calibration type 10. We are using the encoder Faulhaber, with a resolution of 512. The motor we are using for our tests is a Faulhaber 3242g024cr. The motor is free, so there is no gearbox attached to it. About the
The configuration files are in this commit |
Hi @wevmacedo, I see that the motor is DC, while only the 2FOC firmware for BLDC motors can send the index error message above, so I guess that the wrong firmware has been uploaded to the 2FOC board by mistake. The right firmware is https://github.com/robotology/icub-firmware-build/blob/master/CAN/2foc/2foc.r1.dc.hex About the quadrature encoder, if your wheel has 512 ticks the resolution in the configuration file must be 2048 because the board is configured to count any quadrature signal change. |
Hi @ale-git, We changed the firmware to the r1 version of the previous message, and also changed the When running the calibration procedure, the motor does not move and the process reaches the timeout. The screen info as follows:
Let us know what should we change |
Hi @wevmacedo, I succeeded at last in making calibration type 10 working with a joint without primary encoder that uses the motor encoder connected to the 2FOC board. I think that it should work with your DC motor as well. |
Hi @ale-git, we uploaded the new firmware to the EMS board, and after running The paramerters of the calibrator are as follows: <group name="HOME">
<param name="positionHome"> 0 </param>
<param name="velocityHome"> 10.00 </param>
</group>
<group name="CALIBRATION">
<param name="calibrationType"> 10 </param>
<param name="calibration1"> 4000 </param>
<param name="calibration2"> 0 </param>
<param name="calibration3"> 0 </param>
<param name="calibration4"> 0.0 </param>
<param name="calibration5"> 0.0 </param>
<param name="calibrationZero"> 10.0 </param>
<param name="calibrationDelta"> 0.1 </param>
<param name="startupPosition"> 0.00 </param>
<param name="startupVelocity"> 0.0 </param>
<param name="startupMaxPwm"> 5000 </param>
<param name="startupPosThreshold"> 0.0 </param>
</group>
<param name="CALIB_ORDER">(0) </param> Let us know if we should run more tests. |
@ale-git and @wevmacedo are working these days side by side on this. |
Is your feature request related to a problem?
The
ems4
control board attached to a2foc
currently support only calibration type 9. The initial report of the missing feature is related to this discussion and this issueThe solution you would like to have available
We want to have the calibration type 5 (hardware stop) implemented in the firmware of
ems4
board, and integrated in the icub-firmware* repositories.Alternatives you have considered
No response
Additional context
In the near future we want to change all the control boards of our robot Vizzy to the ETH versions. Since our robot currently runs
yarprobotinterface
using the config files here, we need the calibration type 5 working and integrated in the official firmware files in icub-firmware* repositories.The text was updated successfully, but these errors were encountered: