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.
Description
This PR belongs to a set of PRs which enable to stream AMO data towards YARP ports for debugging purposes.
It extends the content of a previous PR called AMO diagnostics by allowing an alternative diagnostics path which sends the content of AMO registers and values to YARP ports.
This mode can be configured in runtime by acting on the xml files of the MC service.
In the following is shown how the AMO dat to YARP ports can be configured and what it does.
How to activate / deactivate the AMO diagnostics
The AMO to YARP ports is disabled by default.
If one wants to activate that, he/she must add the group named
DIAGNOSTICS
in the xml file which describes the MC service on a ETH board, as in the following.Code list. The
DIAGNOSTICS
group has two parameters:mode
equal toeomn_serv_diagn_mode_MC_AMOyarp
activates the AMO streaming. The parameters par16 expressed the time in ms of delay of application of motor configuration to the 2foc board. In this case 1 second.The service can be disable also by using a special mode called
eomn_serv_diagn_mode_NONE
as in the following.Code list. The diagnostics is disabled if the group DIAGNOSTICS is not present or if it has
mode
equal toeomn_serv_diagn_mode_NONE
.
What the AMO streaming produces
When the AMO streaming is enabled, the board sends to YARP ports which contains the name of the board and of the relevant joint number as show in the following. The name of the ETH board is the same in
ETH_BOARD.ETH_BOARD_SETTINGS.Name
as specified in the relevant xml file.$ yarp read ... /amo/left_leg-eb6-j0_1/j0 [yt, amo, reg, pos] 111111.000000 333333 2048 444444 [yt, amo, reg, pos] 111111.005000 333333 2048 444444 ...
Log excerpt. The YARP port opened for the first joint (j0) of board
left_leg-eb6-j0_1
signals what is described inside brackets:YARP time
,AMO raw value
,content of registers of the AMO
,eOmc_joint_status_t::core.measures.meas_position
.Use of the delay in activation of the motors
If the AMO streaming is enabled with a given delay of motors, let's say par16 = 1000 which corresponds to
1 second
, the effect is the following:In such a way, we can read values without the effect of the activation of the motor (which may emit EM noise).
Requirements of this PR
Requirements of this PR
To enable the features of this PR we also need similar PRs. They are:
icub-firmware-shared
which contains the data structures,icub-firmware
we have the code for the ETH boardsicub-main
which contains code to publish on the YARP port.icub-firmware-build
to give the new binaries for theems
,mc4plus
,mc2plus
.So far we omit any PR in
robots-configuration
.Executed tests
Tests were extensively done on a dedicated setup but not yet on
iCubGenova09
.