Open source isn't just changing the way we interact with the world, it's changing the way the world interacts back with us. Case in point: open source robotics.
Robots are playing an increasing role in our world, and while we perhaps haven't reached the utopian future with robotic housekeepers imagined for us in the Jetsons, robotics are making advances in fields that fifty years ago would have been completely unimaginable.
While undoubtedly manufacturing has been one of the biggest beneficiaries of the robot renaissance, we are seeing robots enter the mainstream as well. Many of us have robots that clean our floors, clear our gutters, mow our grass, and more.
And now, with the advances of self driving cars, drones, and other transport technologies, the line between what is a robot and what is a vehicle is steadily blurring.
But let's be honest: a lot of us have an interest in robotics simply because it's fun! And the good news is you don't need to be an electrical engineer to enjoy robotics as a hobby. Fortunately, there are a number of open source projects out there that can help even the most novice beginner get started.
A robot is a physical thing, and therefore, both its code and its hardware are subject to licensing. Fortunately, there are a number of open hardware platforms for getting started with robotics. Here are a few you might want to check out.
Sparki is a complete open source robotics platform in every sense of the word. The schematics, 3D model files, and source code underneath are all open source. Designed to be an affordable introductory robot for students from elementary-age to adult, Sparki comes with a distance sensor, accelerometer, infrared communications, compass, light sensor, line-follower, and more. While Sparki comes on wheels, he has a walking cousin named Hexy the hexapod, a similarly open sourced platform.
Robots don't just walk; sometimes, they fly. A number of open source drones exist which take advantage of project like OpenPilot or Ardupilot systems. The ArduPilot Copter, for example, can be assembled as a helicopter, quadcopter, or a variety of other configurations, both in a DIY-approach, as well as kits and parts from a number of manufacturers.
TurtleBot is another robot platform, available as both a kit from a variety of manufacturers as well as a set of completely open instructions allowing you to build your own from pieces including a netbook computer, Kinect, and Kobuki, or by building onto an iRobot Create.
A robot is more than just its metallic bones. It needs some form of intelligence to be able to serve its master, either by direct command or by making some, at least rudimentary, decisions on its own. Here are a few interesting open source projects on the software side of robotics.
LeJOS might be a good robotics software project for beginners to become acquainted with; it's essentially a drop-in replacement for the firmware which comes with Lego Mindstorms robotics, allowing the used to program their Mindstorms robots easily using the Java programming language.
Rock, the Robot Construction Kit, is a software framework for robotics, based on the Orocos RTT (Real Time Toolkit). Rock is designed to be extensible and includes a number of drivers for existing applications.
ROS, the Robot Operating System, is a framework for writing software for robots, that includes various tools and libraries to simplify the process. It is designed for collaborative development, with modular components and a worldwide community. ROS is BSD-licensed and sponsored by the Open Source Robotics Foundation.
Before you just start assembling hardware randomly, you need to have a plan of action. Robots operate in the real world and are subject to physical constraints from gravity to terrain to weather. Just because a design looks good on paper, doesn't mean it's going to pan out in reality. So why not simulate your robot's functionality before you begin?
Gazebo is an Apache-licensed complete simulation solution, with advanced 3D graphics, virtual sensors, an extensive command line tool collection, and the ability to run your simulations in the cloud. It supports many plugins and comes with several common robot platforms for you to get started modeling with.
MORSE, the Modular OpenRobots Simulation Engine, is a BSD-licensed project focused on simulation for academic robots, either indoors or outdoors. MORSE can be programmed with Python and renders using the Blender game engine.
V-REP is a GPL-licensed “virtual robot experimentation platform” which works across Windows, Mac, and Linux desktops, supports multiple programming approaches and languages, and can simulate both advanced physical situations as well as data from proximity and vision sensors.
These are far from the only open source projects for robot enthusiasts out there; we couldn't begin to list them all. There are plenty more that are worth taking a look at, and of course, with the advent of low-cost hobbyist hardware platforms like the Raspberry Pi and Arduino, it's easier than ever to start out from scratch and build your own creation.
Did we miss one of your favorites? Let us know in the comments below.