FAP reading for mtb4
and mtb4c
+ IMU configurability over CAN
#347
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Content of the PR
This PR improves the features of some
CAN
boards:mtb4
andmtb4c
boards now can stream the magnetic encoder values of theFAP
(POS
service);mtb4
,mtb4c
,strain2
,strain2c
andrfe
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
boardsems
,mc4plus
,mc2plus
so that they can manage the POS service offered by themtb4
andmtb4c
.Benefits of the PR
FAP reading
The reading of the FAP values in the
ergoCub
robot is now done by the so calledmtb4fap
board.The
mtb4fap
board is nothing but themtb4c
board with a special FW on it. Instead of reading SKIN patches attached to connectorJ3
as the standardmtb4c
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 sameJ3
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 insiderobotology
for a short period to allow a smooth migration towards themtb4c
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 documentTSD-ICUBUNIT-canprotocol-sensorboards.docx
.Figure. The modes shown inside the datasheet of the BNO055 which we can configure via CAN messages
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:
mtb4
andmtb4c
+ IMU configurability over CAN #347mtb4
andmtb4c
icub-firmware-shared#79mtb4
andmtb4c
+ IMU configurability over CAN icub-firmware-build#69mtb4
andmtb4c
boards icub-main#858