5 ms·
I don't work in robotics, but from my electrical engineering degree, I could hazard a guess: - Software becomes much harder if you have to interface with hardw
by yingw787 8y ago
I don't work in robotics, but from my electrical engineering degree, I could hazard a guess:
- Software becomes much harder if you have to interface with hardware. You mess up software, you edit and then recompile/rerun. You mess up hardware, you need to buy a new copy of the hardware. Imagine if every time you wrote a bug or compiled a dependency with a bug, you need to pay $5 to somebody. If somebody else's software caused an error on a piece of critical hardware, your hardware may break too (e.g. car crash). And good hardware costs a ton of money. A Dynamixel servo costs something like $500, for a motor that's maybe 8 inches cubed or less, but if you use a cheap motor from China your precision over time will suck and software-based closed-feedback loops aren't as good as good hardware. So maybe you decide to do simulations, and you write a hardware emulator to load your software on. That costs a lot of money too, and doesn't and never will mimic hardware in all cases.
- Software for robotics is pretty low-level. You may need to write drivers for special hardware you develop, or you may need to rewrite drivers if proprietary drivers don't do the job for some reason. Drivers are if not hard to write, then a long slog to write (I don't write drivers). You need to make sure your software is highly performant, lightweight, and fault-tolerant. Maybe you need a real-time operating system, or you need to fork the Linux kernel and rip out bits and pieces (I heard somewhere SpaceX does this for their avionics, because they didn't want to deal with an RTOS). There is no let-it-crash philosophy. There may be no concurrency abstractions that are performant enough besides threading/locking primitives. There's the added complexity of failover that you plan into your design. You can't live without any of these most likely, because otherwise your customers may not live at all.
- By the time you master all the tools you need to build a successful robotics company, you haven't changed the system, the system has changed you. You accept the truth that good hardware is hard to make, good low-level software is hard to make, and great insurance plans are expensive. You're a Windows guy now because you use SolidWorks to design parts, and you can't be bothered to make a startup to rewrite SolidWorks for Linux because it's hard to get the physics/math background to reproduce even a part of SolidWork's functionality and user experience (which is a lot, CFD/FEA/etc). You deal with manufacturers who are perfectly happy with older tech because it works and because newer stuff always comes with risk. Your customers are enterprise Karens who shatter your roadmaps and don't care about your dreams.
This is a (possibly inaccurate) tasting of why building a hardware company is hard. I have the highest respect for those who do.
- jchallis 8y agoWhat is an enterprise Karen?
- yingw787 8y agoSo this is a Karen: "44. mother of three. blonde. owns a volvo. annoying as hell. wears acrylics 24/7. currently at your workplace speaking to your manager." https://www.urbandictionary.com/define.php?term=karen https://www.urbandictionary.com/define.php?term=karen I used "enterprise Karen" as a corporate personification of "Karen".