Used to be, if you wanted to build a robot “from scratch”, you needed to be an electronics engineer, or to be ready to spend quite a lot of time learning electronics theory and practice. In short, you needed to be ready to design and build electronic circuits from scratch and that’s no small feat. Of course, there’s still some knowledge of electronics needed, but the days of mounting your microcontroller chip into a blank prototyping PCB or breadboard are largely gone.
Now days, almost all you need to be ready to support any device you want to connect with is a USB hub. From Arduinos and Raspberry Pi’s to LIDAR sensors, depth cameras, etc., there’s fewer and fewer components or sensors that don't connect via USB. There’s still some, but they tend to be the simple ones (e.g. digital compasses or ultrasonic sensors and the like). And, most often they connect directly to an Arduino or Raspberry Pi or to a shield on one of those and you’re quickly back to using USB to talk to whatever parent device or platform you’re using to control the overall robot, IoT installation or whatever you’re controlling…
At the end of the day, from a skills perspective, what this boils down to is for many potential robotic projects, it’s much more about programming and not that much about electronics these days. Obviously, if you’re out to build a robot that can do the “Mashed Potato” and jump flips or navigate on freeways, this article may not apply to you.
But if you’re designing a new Roomba-spinoff or the next grocery delivery ‘bot, we’re living in a time when it might very well apply to you. In those cases, you will likely be building what I’m calling an “off-the-shelf” robot. It seems safe to say, this category will make up a significant portion of the robotic products that will be coming down the pike as we roll into the future.
And, if you can operate a USB hub and as long as you understand the programming involved and have enough electronics knowhow to set up a power supply, you’ll do fine if you’re designing something that fits this category.
Of course, you’ll have to come up with the physical “body” for your robot, but even that is getting easier and easier given the availability of affordable 3D printers, myriad structural and mechanical components available online and various really good “starter” kits that are out there now.
More and more, robotic design is becoming a world of coming up with new, creative, and useful ways to marry different existing components together and authoring the programming that surrounds those components. From an electronics perspective, things end up being relatively simple.
Your big task will be writing the C or C++ (or whatever…) for controller card sketches and the language supported by the device or framework you’re using to communicate with your USB hub. The creative and “WOW” part will end up being what you do with those off the shelf components. This is the world we’ve designed our software framework to live in.
Our goal is to make it easy to connect to all those off the shelf components with very little code and to provide a thread-safe, high-performance platform for orchestrating them and maintaining the central state needed to operate the parent robot, IoT installation, etc... This is what we're talking about when we say we want to turn robotics from a scientific endeavor into a creative pursuit.