If you’re reading this, then robots probably look cool to you. You might be inspired to learn to make a robot yourself because of shows like BattleBots or maybe you just want to create a helper around the house like iRobot’s Roomba. The truth is, there are much easier roads to travel in programming than learning robotics, but there are few as rewarding either.
So where do you begin? If you’re not in a high school or college robotics club, it can seem like robotics is impossible to get into.
If you follow these steps and invest the resources necessary to learn—robotics can be an expensive hobby—you’ll be programming robots to do all kinds of things for you sooner than you think.
Learning to Make a Robot, Starting From Scratch
The block-structure still teaches the fundamental knowledge and skills you will need to know in order to start programming with text and it is the perfect place to start, especially since your first few robots will be programmed using this same visual programming model.
Evo App-Connected Coding Robot
The Evo Coding Robot is a good first robot to work within that its usable right out of the box. It's small, requires no assembly, and no extra parts; it's just you, the robot, and your code. There are two ways to program the Evo: online using a similar blockly system that you saw with Scratch, or you could use the color-coded markers to create visual cues for the robot.
While the markers are interesting in that they show you how a robot can use sensors to make decisions, where you really need to spend your time is working with its blockly system, which will serve as your primary programming tool for your next few robots.
UBTECH JIMU Robot Astrobot
The Astrobot isn’t exactly Boston Dynamics, but it's a good start. This robot kit will serve as an introduction to common robot parts and design features and it's easy to start building something right away.
It uses the same kind of blockly-style programming that Scratch and the Evo do, so after some time with the Astrobot, you should start getting comfortable with the idea of loops, if-else conditional decision making, nested commands, overall program flow, and how to debug code that isn't doing what you want it to.
Don’t worry if you’re awful at it, we all were when we started, and these essential programming skills are developed over a lifetime, not overnight.
LEGO Mindstorm EV3
You may not have known it before, but LEGO has one of the coolest robot lineups out there in their Mindstorm product line. Beginning with a central CPU block called an Intelligent Brick, there is an unlimited potential for creative robot building using existing LEGO pieces and add ons for various sensors.
The EV3 programming software is a different form of visual programming blocks that is specific to the EV3 robot but don’t worry. The dirty, little secret to programming is that once you learn to program in one language, other languages become much easier to pick up since the fundamental principles of programming do not change from language to language.
With the EV3, you could stop here and spend a lifetime building cool, sophisticated robots that do all kinds of things. But if what you’re looking to do is build the kinds of machines that you see in BattleBots or similar shows? From here on out, you’re going to start building toward more custom-built machines of the sort we think of when we think about robotics as an industry.
The Sphero Bolt is the first robot you’ll buy that you can program with text code but it also uses blockly to ease the transition if necessary. Once you’re comfortable programming the Sphero Bolt, you’ll be ready to make the most significant jump yet.
However, C/C++ also has unique advantages over newer languages that tend to manage fundamental operations for you. The most important being that C/C++ is much closer to the machine hardware than other languages, so it is the lingua franca of robotics (and high-performance game development, but that’s another article).
Invest in a solid C/C++ for Programmers manual and start getting used to pointers, static typing, preprocessor instructions, and all the rest, but as you go, you’ll be working with robots that are functionally no different than the stuff Boston Dynamics is putting out.
Like LEGO Mindstorm, VEX Robot Kits allow you to build sophisticated machines using modular bricks and pieces, so you are limited only by your creativity, the available parts, and the strength of your program. These kits are the major educational tool for robotics clubs the world over, so you will be doing the same robotics programming you see in robotics championships and competitions.
VEX robots can be programmed in 4 different ways using the VEX Coding Studio. It uses a version of blockly called ModKit Blocks to get you started before transitioning to Modkit Text, which introduces text programming to the mix. Next, you’ll have VEX C++, which is an assisted form of C++ that will help you gain your footing before you move fully into professional, industry standard C/C++ programming.
iRobot Create 2
You know the iRobot Create 2 very well. The Create 2 is a Roomba, those automated, floor vacuuming robots that cats and lazy people adore, except it has the vacuum component removed. That’s it.
It has a serial port to that converts to USB so you can plug your Create 2 into your computer and start programming the thing to do whatever you want.
There are no guard rails though. It only knows UNIX-based C++, comes with no branded accessories, and offers no guidance on where to even begin but this is an actual, functioning robot used in the real world, repurposed for educational purposes. With some engineering know-how (or the ability to google some in a pinch), external sensors like cameras, laser range finders, and others can be hooked into it and used to control the robot.
From here on you’ll need to study up on some robotics theory and learn about things like drift, probability sampling, mapping, and navigation but take some pride in knowing that you've already learned to make robots and programmed them to do some amazing things. It's up to you now what you want to do with your hard-earned knowledge.