Closed AlexisTM closed 5 years ago
It is odd that you do not get any GYRO_ACC_TEMP and POSE data when you power the anchors. I have no good explanation for this. I don't see why? Can it be caused by an over flow somewhere? That the TDoA data fills some buffer and the other data is discarded? Do you see the same behaviour if you only power one anchor?
Have you checked what the estimated position is just before you power the anchors? If it is far away from the real position, the kalman filter can maybe go crazy when it starts to get TDoA data?
It does go crazy once it gets the TDoA data, especially for the attitude. I do think that this is a bug as the attitude should not be impacted by the possibly bad TDoA data.
When we start the roadrunner in a properly calibrated system, it does not seems to have the issue for the small time we actually had a roadrunner connected to the computer for manual checks (Meaning I did not replicate the problem)
I don't understand why would the update function not be called anymore. It could also be on the way the data is published that fails under certain conditions and that the update function is actually still called.
@AlexisTM I can not reproduce this. I have added counters and logging to stateEstimator() and estimatorEnqueueTDOA() to monitor when they are called, but have not been able to observe that stateEstimator() is no longer called when the LPS system is turned on. Not sure if I miss understood the issue?
This could be another bug introduced by a wrong usage or an overlooked problem due to the MAVLink middleware. I am closing this for now.
Short description
The estimator has an issue when the TDoA (v3) anchors are started after initialisation. The master branch outputs becomes chaotic. My guess is that the position of the TDoA shouldn't be impacting orientation of the copter.
The following gif shows what happens when the 3rd anchor is powered (thus giving chaotic position because it is only 3 anchors)
More information
I hooked up MAVLink into the estimator abstraction to send the roadrunner state, sensors and TDoA in the following places: Sensors and Kalman state and TDoA Measurement
It seems to be working when the TDoA anchors are started when powering the roadrunner. Yet, if the anchors are not connected beforehand and then connected, the GYRO/ACC/POSE are no more received.
Rates of the following log:
When the anchors are powered afterwards: