System design for python driven autonomous vehicle (boat)
You are designing a mobile robot. Forget about Asimov, the real three laws of mobile robotics are:


Everything in it goes wrong all the time.
There's a battery in the way.
It broke down.


Whatever else you do, bear these fundamental truths in mind.


Everything will go wrong all the time. This is especially true for a robot that's at sea, or even in the middle of a lake. Every technical component in the robot is something which can go wrong, and the more you have, the more things will go wrong. Even if you make them all 99% reliable and you have 70 things in there, then you have a 50% chance of one of them failing. "Aha" you say, then I'll add a safety system which detects when something goes wrong and, say, stops the motor. Well, now you have another thing which can go wrong, and you've given it the power to stop the motor. The take away lesson is to reduce the number of components in the robot as much as possible. You mentioned "several on board micro-controllers". Why, how big is this boat? Maybe you can get away with just one?
There's a battery in the way. This is really two truths. Firstly you may find yourself stuck for space. Maybe not, boats can be pretty big and don't have many actuators, so this may be one of the few robots not to suffer this problem. Secondly, mobile robots just never have enough battery capacity. I'm sure you've thought about this, but I'll mention it for completeness. Carefully measure how much power the various parts of the robot consume, and calculate how much running time you're likely to get out of them. 
It broke down. Your background is in Computer Science, something will fail. Unless you select very good connectors and don't assemble them yourself, they will fail. Probably solder joints will fail if you do them all yourself. The boat will leak, and blow the electronics. When you're assembling the boat, you need to imagine you have 20 years' bitter experience of robots breaking down when they're almost inaccessible (I have). Every piece you make, imagine how it's going to go wrong. What's to stop the connectors just disconnecting themselves? What's to stop water getting into the electronics? You sealed them? What's to stop them overheating now? Did you take ESD precautions? If not then you've probably half blown a pin on a chip which will only start showing faults when the boat is 100 miles from land.