There’s a lot to say on the topic. Your sensors setup is only seen on very large passenger boats, which justify the extreme costs of the equipment and computing systems required.
I have been involved in a few R&D projects on marine ASV collision avoidance systems and my original idea was exactly a blended Radar + forward looking sonar + AIS; however my supervisor turned it down due to the excessive costs (just the forward looking sonar is priced $3k+) and useless data produced.
In fact, being the radar only 1 or 2m above the sea level, readings would be excessively noisy.
I also checked with most radar producers and, even when removing all unused parts and replacing the chassis with thin fiberglass, the weight is still above 15Kg and 50cm diameter, and I’m pretty sure until last year there was no solid state small radar sold off the shelf (only military grade SAR radars unavailable for universities and individuals).
So to sum up, a simple (thermal) camera, terrain/bathymetry map and AIS receiver are more than enough to build up a reliable collision avoidance system for a small to medium sized boat/sailboat.
Going to my implementation, I though about having a very basic MAVLink message with MMSI id, positional data, heading and speed info and vessel dimensions, in order to create a vector field with predicted routes and perform a basic path planning.
You can check my current implementation here:
I have done a AIS ardupilot implementation, currently it is reporting only but it paves the way for avoidance in the future. It receives NMEA AIVDM messages over serial. This makes it compatible with most AIS receivers for yachts. I am using a NASA Marine AIS engine 3 for testing. Would be great to get some more testing!
This is the test setup. AIS receiver is connected to 12v and a big (by drone standards) VHF antenna. The NMEA output is connected to a rs232 level shiftier to convert the signal levels to something the flight controller can receive. The output of the level shiftier is connected to the receive pin on the flight controller.
So far I have received boats from about 6km out, bearing in mind that I have no direct line of sight to the sea I think that is quite respectable.
At the moment it just means that ais vessels will show up in mission planner. Once we are sure that is working OK it is trivial to include AIS as one of the things ArduPilot can avoid, so we can keep a minimum distance between other boats or pause our mission until one has passed.
I’m up for doing some testing with your AIS solution if you are still interested! We have at least one vessel in the water almost every week, and have some tech sprints scheduled as soon as the weather breaks a bit here in Florida. I’ll be near Port Canaveral and Sebastian Inlet, so we should see some commercial and other AIS traffic. AIS has been slow in adoption for inshore vessels around here…
We do have Radar to augment if we can get the graphics translated into vector and distances to the targets. Been working on that a while as well. Can’t wait for the NMEA OneNet if they ever figure that out.
My PR branch has gotten rather conflicted. I have been meaning to get back to it but have been very busy. I will try and resurrect it as some point soon so you can try it.
Long time since this topic was picked up. I am working on a university project to refurbish an old outdated ASV with off-the-shelf and open-source components. I have a dAISy+2 AIS receiver connected to the Pixhawk and can see the vessels with no problem. However, I was wondering if vessel avoidance was achieved or not. If so could you give me a hand or point me in the right direction?