I am not an expert on obstacle avoidance, nor am I privy to DJI's obstacle avoidance firmware's algorithms, but I am a computer programmer and as much as we say that a computer can multi-task, it can't. It can do a lot of things at one time, but in reality, it really just does one thing at a time. It works on one task for a bit, and then it works on the next task, and so forth…
For example, I can make big breakfast: eggs, bacon toast, and orange juice… I turn on the stove, while the pan is heating, I put the bread into the toaster, I put the bacon into the pan, I check the toast, I put the eggs into the pan too. I flip the bacon, but I smell the toast burning, I run to the toaster, but it's too late, I jerk the burnt toast out, and put in fresh bread, then I smell the bacon burning, I run to take the bacon out, but it's really crispy. SO I pour the juice but now I smell the toast again. While taking the burnt toast out, I remember the eggs, but they too are over cooked, hard fried… So, you see, I also multi-tasked breakfast but only the juice gets served…
I would venture a guess that all those variable shapes and structures just overwhelmed the software. Did you notice the stuttering at time 0:42 and again at 0:49. When it crashed into the wall, the Drone was trying to follow you after it lost you as you walked past the wall and its processor running the software to find you and track you probably just took precedence over the obstacle avoidance routine.
View attachment 144782