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

FAP reading for mtb4 and mtb4c + IMU configurability over CAN #347

Merged
merged 5 commits into from
Feb 24, 2023
Merged

FAP reading for mtb4 and mtb4c + IMU configurability over CAN #347

merged 5 commits into from
Feb 24, 2023

Conversation

marcoaccame
Copy link
Contributor

@marcoaccame marcoaccame commented Feb 24, 2023

Content of the PR

This PR improves the features of some CAN boards:

  • the mtb4 and mtb4c boards now can stream the magnetic encoder values of the FAP (POS service);
  • the boards mtb4, mtb4c, strain2, strain2c and rfe now support an extended CAN protocol which adds more configurability of the Bosch BNO055 chip. The protocol document is also updated w/ examples.

And changes to the code of the ETH boards ems, mc4plus, mc2plus so that they can manage the POS service offered by the mtb4 and mtb4c.

Benefits of the PR

FAP reading

The reading of the FAP values in the ergoCub robot is now done by the so called mtb4fap board.

The mtb4fap board is nothing but the mtb4c board with a special FW on it. Instead of reading SKIN patches attached to connector J3 as the standard mtb4c do it reads up to four FAP boards attached to the same connector.

However, these boards cannot be easily distinguished on the robot and that takes confusion and too much carefulness in maintenance.

So, after a first testing stage for the FAP reading and the movement of the fingers, we have moved to have a unique mtb4c board w/ extended functionality able to read SKIN patches but also FAP boards from the same J3 connector.

The board commits to manage either SKIN or FAP boards in runtime when it receives proper CAN messages to configure one or the other: who comes first takes the feature until next bootstrap.

Suitable changes to the control FW of the ETH boards was also required so the they could recognize the mtb4c as boards suitable for the POS service.

The mtb4fap board will be present inside robotology for a short period to allow a smooth migration towards the mtb4c and then it will be removed with a future PR.

IMU configurability over CAN

The backward compatible extension of the CAN protocol message IMU_CONFIG_SET now allows to explore different configurations of the Bosch BNO055 chip w/ respect to the fusion (or not) of the acquired data and also w/ different axis mapping as for in the following figures taken from section 6.2.2, Configurability via CAN, of document TSD-ICUBUNIT-canprotocol-sensorboards.docx.

image
Figure. The modes shown inside the datasheet of the BNO055 which we can configure via CAN messages

image

Figure. The placements shown inside the datasheet of the BNO055 which we can configure via CAN messages.

Tests

Both features have been extensively tested on dedicated setups.

We are ready to merge.

Associated PRs

There are associated PRs in:

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.

1 participant