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

ergoCubSN001-002: Update amcbdlc and amc versions #684

Merged
merged 3 commits into from
Oct 11, 2024

Conversation

mfussi66
Copy link
Member

@mfussi66 mfussi66 commented Oct 10, 2024

In relation to the latest PRs in icub-firmware (robotology/icub-firmware#523) and icub-firmware-build (robotology/icub-firmware-build#165), this PR updates the boards as per title:

AMC2C : 3.1
AMCBLDC: 2.1

@pattacini
Copy link
Member

pattacini commented Oct 10, 2024

Hi @mfussi66

I've seen that the PR is still draft, so I imagine you'll be doing some tests.
Hence, what's your strategy to test these changes on the robot?

Ideally, given the small updates, you would be testing the changes on top of the robot-specific fork branches1:

This guarantees that everything remains consistent on the robot setups.

Those changes will be then propagated back to upstream (aka here) with periodical PRs. Or, we can do that manually straight away.

I'm bringing up this point to get everyone aligned, especially considering that these are the first times we've been testing this approach.

cc @S-Dafarra @traversaro

Footnotes

  1. Refer to https://github.com/robotology/robots-configuration/blob/master/.github/CONTRIBUTING.md.

@mfussi66
Copy link
Member Author

Hence, what's your strategy to test these changes on the robot?

The tests were performed only on ergoCubSN000 (robotology/icub-firmware-models#92) and ergoCubSN001 (robotology/icub-firmware-models#95)

On SN000 since the AMC does not perform motor control, I only tested the AMCBLDCs. on SN001 I tested both the boards.

SN002 is unavailable at the time of this PR, so i was not able to perform tests, but the boards' features should be the same as SN001, hence why this PR targets that one, too.

However, it does not target SN000 since on that robot no check is performed on the AMCBLDC firmware's version, and I did not want to disrupt its operation mode by enforcing a version.

The configuration files I used are stored in my fork and the yarprobotinterface boots up only the wrist boards.

Let me know if this workflow can be considered equivalent to the contributing guidelines, and if this PR can be merged.

I'll mark this as ready for review since the tests were performed, and put it back to draft if deemed insufficient.

@mfussi66 mfussi66 marked this pull request as ready for review October 10, 2024 10:07
@pattacini
Copy link
Member

pattacini commented Oct 10, 2024

The most important point is:

  • How did you leave the robot?
    I imagine you flashed back to the previous version of the FW once you finished testing. Is that correct?

If so, I think we can merge the PR and once AMI decides to align the fork with upstream the boards will need to be updated. This operation is usually performed outright at each Distro release unless there are particular requests.

The configuration files I used are stored in my fork and the yarprobotinterface boots up only the wrist boards.

The tests on the robot should be carried out on the complete setup to avoid underestimating any possible side effects, meaning launching the whole robot with the complete set of conf files.


Regarding this

However, it does not target SN000 since on that robot no check is performed on the AMCBLDC firmware's version, and I did not want to disrupt its operation mode by enforcing a version.

I have a memory of the past when we decided to disable the FW versions because it was creating too many headaches1, cc @GiulioRomualdi.
Apparently, this is done for SN000 but not for SN001/2.

Footnotes

  1. Also in light of the refactoring of the FW version handling.

@mfussi66
Copy link
Member Author

How did you leave the robot?
I imagine you flashed back to the previous version of the FW once you finished testing. Is that correct?

Yes, the firmware was restored to the version present in icub-firmware-build contained in the robotology-superbuild folder.

So a rebase to devel would require a firmware flash.

The tests on the robot should be carried out on the complete setup to avoid underestimating any possible side effects, meaning launching the whole robot with the complete set of conf files.

Agreed, at the time of testing the robots were not fully functional however, and I would have had to wait for repairs.

@pattacini
Copy link
Member

Yes, the firmware was restored to the version present in icub-firmware-build contained in the robotology-superbuild folder.

Good 👍🏻
So, let's wait a bit for others to chime in before merging.

Agreed, at the time of testing the robots were not fully functional however, and I would have had to wait for repairs.

Clear 👍🏻

@S-Dafarra
Copy link
Contributor

Thanks @pattacini for all the caring!

Would it be possible to wait for a release of icub-firmware-build before merging? In this way, when rebasing on top of devel, we also know that we have to update to a new release.

@pattacini
Copy link
Member

Sure!
Awaiting that robotology/icub-firmware-build#165 is merged before proceeding here.

Copy link
Contributor

@marcoaccame marcoaccame left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

About tests:
I am confident to say that since @mfussi66 has tested the binaries of the amc2c and amcbldc on two robots, that is enough to assume that they will work also on the third robot.

So, I am expecting to see six files changed: the -mc_service.xml for left and right wrists for the three ergoCub robots.

About changes:
@mfussi66 I can see only three files changed, so you have probably missed the others.

About merging:
this PR has two other associated PRs that are ready to be merged.

We shall surely merge them together to this one, so that we don't have binaries un-aligned with the xml files.

Copy link
Member

@pattacini pattacini left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@marcoaccame is right.
The right arm of SN002 is missing. @mfussi66 can you update it?

SN000 has version checking disabled as we reported in #684 (comment)

@mfussi66
Copy link
Member Author

Thanks for noticing @marcoaccame and @pattacini , the last commits update the missing file.

@pattacini
Copy link
Member

pattacini commented Oct 11, 2024

Thanks @mfussi66 👍🏻

Would it be possible to wait for a release of icub-firmware-build before merging? In this way, when rebasing on top of devel, we also know that we have to update to a new release.

@S-Dafarra, the corresponding PR on icub-firmware-build has been merged, so we're good to go here as well.

We generally don't produce releases of the build until the new Distro. I think you're ok with rebasing on top of devel.

@S-Dafarra
Copy link
Contributor

We generally don't produce releases of the build until the new Distro. I think you're ok with rebasing on top of devel

Is it a hard dependency? I would like to remain consistent with all the FW of all the boards for a given version of icub-firmware-build. In other words, if we have to update some boards, I would rather update all the boards, otherwise it gets messy. The update usually goes smooth for a release, while for commits it might generate a domino effect with the yarp and icub-main versions. If this cannot be satisfied, I am good in merging this, but I would postpone the rebasing of the robots configuration branches until the next release. Does this sound reasonable?

@pattacini
Copy link
Member

pattacini commented Oct 11, 2024

I think that, in this case, it's safe to update only the boards controlling the wrist of the ergoCub robot. I'm referring here to 2 AMC and 4 AMCBLDC boards handling the left and right wrist. No need to update the middleware or higher levels.

Tagging icub-firmware-build means that tags should propagate upward, up to a given extent (icub-firmware, icub-firmware-models, icub-firmware-shared...). This could be maybe undesirable at this stage? @marcoaccame?

I am good in merging this, but I would postpone the rebasing of the robots configuration branches until the next release. Does this sound reasonable?

I would like to merge this PR to remain consistent with the devel of our whole codebase.

Tip

When you aim to update the fork branches is not really critical for us, as we're happy with our tests, I'd say.

Important

While waiting for the next Distro, if important devs/patches applied to devel will need to land on the physical robots, we will help with the tests/updates.

Calling for feedback on this proposal, @S-Dafarra @mfussi66 @marcoaccame @Nicogene

@S-Dafarra
Copy link
Contributor

I think that, in this case, it's safe to update only the boards controlling the wrist of the ergoCub robot. I'm referring here to 2 AMC and 4 AMCBLDC boards handling the left and right wrist.

I would discourage this approach. We have done it a few times in the past and it was never a good situation, ending up in unexpected results. One common assumption is that the robot is aligned to the fw version of icub-firmware-build status in the head/torso. If this is not the case, we might end up in unreproducible situations.

@pattacini
Copy link
Member

I would discourage this approach. We have done it a few times in the past and it was never a good situation, ending up in unexpected results.

Did you mean it happened while updating the FW of the wrist?

One common assumption is that the robot is aligned to the fw version of icub-firmware-build status in the head/torso. If this is not the case, we might end up in unreproducible situations.

This would essentially mean that the update will take place only upon fresh tags if I got it right.
As said, that's fine 👍🏻

@pattacini pattacini merged commit c20e3ed into robotology:devel Oct 11, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants