-
Notifications
You must be signed in to change notification settings - Fork 2
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
iCubGenova09 β Magnetometer of the IMU in the strain2 constantly streams zero #1485
Comments
Thanks for reporting @GiulioRomualdi ππ»
True that it might be unrelated to the HW but it's still a problem whose progress can be shared with the community herein. We will plan for it soon. |
Hi @GiulioRomualdi, we are organizing to address this issue in early February. |
/remind on February 06 |
β° Reminder
|
That's great! Thank you! |
|
Just planned for this sprint! |
We added icub-tech-iit/ft-sensors-simulink#11 the possibility to read the magnetometer and |
Next steps from @Nicogene:
|
I tried to read the magnetometer data through the old imu we used to mount on icub-head, that has bno055 sensor as well. I wrote a very simple executable that instantiates the
In our firmware instead, we are reading 47 bytes, but I don't think this can affect somehow the magnetometer readings. And also in the firmware we are setting the The only difference seems to be the electronics boards. |
The next step will foresee configuring the FT-IMU in |
Some interesting findings we came up with lately. From @marcoaccame:
Also, @AntonioConsilvio and @Nicogene reported that, among the three boards, the IMU unit is plugged with a different kit of resistances, which is worth investigating. |
We repeated the tests on the 3 boards (
|
Ciao @Nicogene can you recover code, revision and serial number for the boards under test? |
Just for completeness, we verified that the differences were relative just to the pull-up stage. |
since in the schematic, the only difference between RFE and the other two cards is in the selector pin I have also a curiosity, are we using the configuration for using the external oscillator or the internal one? How the SYS_TRIGGER is configured? |
From this search it seems that on mtb4 and strain2 is configured the external oscillator, on rfe it doesn't (see here) cc @marcoaccame |
I'll change to |
Hi, this is not the code running on the boards, rather the original HW test project. You have to look at the code inside the embot::hw::bno055 driver. |
All boards use the default mode after bootstrap which is internal oscillator. |
I believe this pin was added to change comm from i2c to usart. The pin But the value of PS1, the associated pin on the bno055, must be zero because i2c communicates fine. |
This is not the best choice. We should use the external one. The internal one drift quite a lot |
It can be easily done. @Nicogene, if you want I can pass you some code to place just after the reset phase in the driver. |
In ...
OPR_MODE = 0x3D,
PWR_MODE = 0x3E,
SYS_TRIGGER = 0x3F,
AXIS_MAP_CONFIG = 0x41,
AXIS_MAP_SIGN = 0x42
};
In itβs cpp write 0x80 to the above register inside the ...
s_powerON(s, PORtime);
// enable the external oscillator by writing 0x80 in reg 0x3F
embot::hw::bno055::write(s, embot::hw::bno055::Register::SYS_TRIGGER, 0x80, 5*embot::core::time1millisec);
...
That should be all. |
Hi there, We have an update on this. From @marcoaccame:
Stay tuned. |
@marcoaccame has churned out a patch in: We need to thoroughly test it and be careful while merging as there are other pending PR's in the queue. |
robotology/icub-firmware#361 fixed indeed the magnetometer, see the plots above Thanks heap @marcoaccame! We will proceed then releasing the binaries Magnetometer
|
That's great! Thank you a lot for the effort! |
OK, thanks @Nicogene. I have just merged the PR for the sources: As I understand you will take care of the PR for the binaries which will soon follow. In the meantime, I attach in here the new binary v2.1.0 for the |
The fix has been delivered also in terms of binaries: I think we can close the issue π |
Device name π€
iCubGenova09
Request/Failure description
Reading the magnetometer from IMU mounted on the strain2 through the yarp port I got a constant vector of zero elements.
Detailed context
I'm trying to read the Magnetometer measurement from the IMU mounted on the FTs sensor of the
iCubGenova09
.ΒThe
multipleanalogserver
device is used to stream the data.I checked the IMU readout, and by reading the yarp port, I noticed that the magnetometer value is constant and equal to zero.Β
This behavior is observed in all iCub FT imus. Please notice that iCubGenova09 is currently mounting the FT45 in the feet and the FT58 in the legs.
This is the
left_leg imu
(FT58).while this is the
left_foot imu
(FT45) (currently on iCubGenova09 there are two FTs connected to the same ems for the foot)Accordingly to the
multipleAnalogSensorsSerializations.thrift
, the magnetometer is the third element of the yarp bottle.So for the foot FTs (FT45) we have
Similarly for the leg (FT58) we have
I also tried to check the magnetometer data coming from the IMU mounted on the iCub head and in this case the value changes as shown in the following plot
Here the outcome of the head inertials port
Additional context
I opened the issue here however I think this is not a problem related to the Hardware of the robot since is involving all the FTs.
@pattacini if you want we can move the discussion in a separate repo.
cc @traversaro and @G-Cervettini
How does it affect you?
No response
The text was updated successfully, but these errors were encountered: