ArduPilot / ardupilot

ArduPlane, ArduCopter, ArduRover, ArduSub source
http://ardupilot.org/
GNU General Public License v3.0
11.04k stars 17.61k forks source link

Copter/Rover: We need to improve Obstacle Avoidance Trajectory splicing #21513

Open xianglunkai opened 2 years ago

xianglunkai commented 2 years ago

Modify AP_ Oapathplanner enables the planner to output a spatiotemporal trajectory instead of a point at a time, and each point carries absolute time. Every time mission_avoidance() is called in the avoidance interface, the track points should be obtained through time interpolation. In addition, the planning starting point should not always be the current position. In most cases, it should be the projection of the current position on the previous planning result (unless the control effect is poor or unexpected), and the time of high-speed movement of vehicles in the planning cycle should be considered.

xianglunkai commented 2 years ago

I look forward to discussion. I have some ideas, but they are not good enough.

rmackay9 commented 2 years ago

I agree very much with this point, "projection of the current position on the previous planning result".

I think one of the biggest problems with AP's avoidance is the "estimation" part of the problem. We tend to rely on lidar but this just isn't good enough for most vehicles. I've talked with @rishabsingh3003 about this and I think we agree that we need to use AI cameras that can do a better job of figuring out what are real obstacles.

xianglunkai commented 2 years ago

AI cameras are really good, but the distance is limited. I think we can try to use radar, such as ars408-can firstly.

rmackay9 commented 2 years ago

@xianglunkai,

Yes, radar is good. By the way, I did a presentation a couple of weeks ago about boats and object avoidance. I don't have a recording of the presentation but here are the slides. It's not much and it's quite similar to my AP dev conference presentation but..

xianglunkai commented 2 years ago

Thank you very much!

timtuxworth commented 2 years ago

This could apply just as much to fixed objects. In plane I would like to see the plane able to avoid a known/pre-configured geofence instead of just plowing blindly into it and then reacting after it's too late. It could also apply to ADSB detected vehicles where the location and even velocity are known with certainty so the plane doesn't have to detect anything, just avoid something it knows with certainty is (or will be) in the way. For this purpose, the same original comment is very important as a plane flying maybe 15 or even 25m/s or even faster approaches an object, we need to know where we project it will be going to determine whether it is likely to hit an object that might be hundreds of meters away (but actually only seconds of flight time).