While building my first Arducopter (with sonar) I had an idea that I couldn’t find any reference to. I was wondering if anyone’s thought of using a 3-sonar array pointed forwards for obstacle avoidance. We like to fly in open areas, but sometimes there’s a tree or two or more in the area. If you took 3 sonars in a horizontal array with slightly overlapping coverage, you could just program it such that if the array in the middle detected an object the copter would move in the direction of the sonar with no obstruction. If all 3 were detecting objects, it would stop and rotate(yaw) until it finds an opening. I guess a simple version would just have 1 sonar and if it ‘saw’ something it’d turn until the way was clear. Much of this has to do with the range of the sonar and speed of the UAV - it’d be easy to overfly your sonar, but with a “Bat” or “sonar” mode selected, max speed would slow to a couple of m/sec. The ‘danger’ factor could be enough to say this is a terrible idea, so let me know!
It's definitely possible to do object avoidance with a number of sonar although it's not in the current code. You need to daisy chain the sonar together so that they fire at different times (otherwise the ping's interfere with each other and mess up the readings). I actually implemented a simple version a long time ago which would simply move away from objects if they came to close but didn't get it to the point where it was really solid code so it got dropped during a big upgrade.
I think you might want 360 degree sonar coverage, otherwise you would only be able to face forward in flight.
I live near potential flying site with a wide open drain (~6 meters wide, ~3 meters deep, steep concrete walls and shallow v concrete floor). I've toyed with the idea of using multiple sonar modules to fly allong the drain at fixed altitude and equidistant from the walls. Might even want upward facing sonar for safely clearing bridges. I don't see why this particular type of flying would be especially dangerous, if anything it might be the safest kind of urban flight (assuming you are still in visual range and avoid taggers, etc).
Yeah, I agree 360 would be cool and useful. We start running out of analog inputs (unless you're willing to give up your flashy LEDs and/or pan/tilt camera) so might require a separate io board to handle that..but there are solutions floating around there I suspect either in the diydrones store or sparkfun (or a multitude of other places).
I once have stopped developing a 360-degree sonar array in favor of three head sensors, because the second choice requires no complex quaternion programming, you just direct your bot to go left or right:)