This is solid advice, particularly #4 is the reason I have started building my own bots. I do have one question though, how to design the production pipeline such that it is easy to iterate on the bot design with minimal disruption?
- Find robust parts for the non-innovative aspects of your system (eg motor drivers)
- ...with a standard interface (PWM/PPM, RS485, CAN, Ethernet, whatever)
- ...hide that interface behind a simple software interface so that if you do have to swap to a different bus type you can do so mostly transparently
- ...and don't reinvent the wheel if you don't have to.
Once you have a set of proven parts with well-defined simple interfaces you can start treating those like Lego and mix and match to your heart's content.
What scale are you operating at, what sort of things do you want to iterate on, and how minimal does minimal disruption need to be? :)