Copter 4.1.0 with T265 Indoor test, sometime EK3 filter velocity estimate z error

Hi all~

I follow vio-tracking step. and use EK3
https://ardupilot.org/copter/docs/common-vio-tracking-camera.html

FC :Pixhawk4 mini , Copter 4.1.0
CC : Raspberry Pi4 4GB, APSync ubuntu image for T265
Frame :QAV380 Kit frame

I know T265 is sensitive to vibrations, So i reduce the vibration.

EK3_SRC1_POSZ = 1 (Baro)
EK3_SRC1_VELZ = 6 (ExternalNav)

Loiter time 1:15~ 4:15
test drone front / back is OK 4:16~4:50
test drone left/right is OK 4:50~5:17
but velocity estimate z error in 5:45

velocity estimate z error

log file:
https://drive.google.com/file/d/1qMk-nPw400h4MvcJ2H_XXMTooo89x3_F/view?usp=sharing

Thanks for your time.

Good afternoon,

What happened to you looks very similar to this:

Checking your log, it is clear that your altitude estimation was out of control, and the drone was climbing when it was supposed to go down. The landing mode does not help since it still requires altitude control which needs a good altitude estimation. Observe how different was the Kalman filter estimation with respect to the barometer. It thinks is going down when actually is going up; the barometer is consistent with the video:

Eventually, the fail-safe of the Kalman filter commands to land which does not happen because the altitude estimation is fooling the control at the end of the flight:

Thanks for testing 4.1 and reporting back.

I think the problem is that the camera started reporting insanely high downward velocity. This is most likely caused by high vibration so perhaps it would be good to switch to use David Sastre’s vibration mount which has been added to the T265 wiki page.

Thanks @sbaccam @rmackay9 analysis LOG file.

altitude estimation was out of control, I think the problem caused by camera high vibration,
i use David Sastre’s vibration mount, and use different 3M vibration isolation foam, Softer is better


I have turned off the air conditioner to test, but altitude control not very well,
drone to test by FW Copter-beta5

GCS video, suggest use speed 2X

log file:
https://drive.google.com/file/d/1Rbs39_QOj8NvvSnlTyqyaoHREvCBv8K1/view

Thanks for your time.

Good morning,
@WangLouis I can’t access your last log. Also, are you using a range finder? sometimes when the barometer is very noisy and the altitude prediction is not that accurate, a range finder can send small corrections to the set-point of the altitude control and keeps the altitude of the drone more consistent. This is the terrain following feature of Arducopter.

Good afternoon,

sorry, i forgot open permissions for last log… I set it up.

I have experience using lidar~ altitude accurate is very well. But some environments are not suitable.

I want to using T265 + Baro fly under the bridge~

I compared the vision velocity of system Motion capture and T265 Camera,

Motion capture vision velocity

T265 Camera vision velocity

T265 Camera vision velocity noise is very high, Maybe
VISO_VEL_M_NSE = 0.1 -> change to 0.5?

Good morning,

Your application seems very particular. Have you tried a sonar or a radar as range finder? LiDAR is the best when it works, but I agree it is not the best when there is water or fog. Also, when using the T265 camera, be aware that there must be features around no farther than approximately 15m or your position estimation may not be good enough for flying. If you have the chance, you can even print your own features and place them around.

@WangLouis,

I think the height changes are coming from the camera’s vertical velocity. Beyond the adviced about vibration dampening I don’t know what else to say, the issue is in the camera itself, not in ArduPilot. Your idea to try changing the VISO_VEL_M_NSE might work, I’m really not sure.

Perhaps it would be good to stop the EKF from consuming the camera’s vertical velocity by setting EK3_SRC1_VELZ = 0.

By the way, before the first takeoff you should lift the vehicle about 1m and then put it back down again to allow the T265 to calibrate the scale. If you’re using the python scripts, you should then see a message like, “T265: Tracking Confidence High” displayed. I’ve recently added this to the wiki page.

By the way, it looks like the vehicle has quite high vibrations on the forward-back direction. If the autopilot is hard-mounted to the frame it might be good to instead add some vibration isolation.

@sbaccam ,
i have tried a sonar, but distance is too short ~
OK, I will attention to the features, thank you very much for your reminder.

@rmackay9 ,

Thanks for your time to analyze my drone log.
i try changing the VISO_VEL_M_NSE = 0.5 is work (indoor / outdoor),
But Flight accuracy is generally.

After, Follow your suggestion, i try to reduce mount vibration.
image

The T265 camera velocity noise is lower than 0.1.
image

Flight accuracy is very good , Thank you very much for your assistance.

2 Likes

This is awesome @WangLouis ! did you design this mount yourself? I have had issues with vibrations and the T265 camera before. Any advice you can give me for designing one or, if it is possible, can you share the files for this?

@WangLouis,

Really glad you got it working. great stuff.

1 Like

@sbaccam

This is my colleague’s design.
No problem, I can share the files.
I using 15 degrees Shock-absorbing ball.

tripod head.zip (31.8 KB)

2 Likes

Thank you very much @WangLouis!

2 Likes