The robot revolution is happening and it's in need of more open and modular technology! Providing an open source platform to build a robot will help anyone having a robot solution in mind to jump start development for that solution. Not only a small robot for learn or play, but a real close to human size robot which can carry a significant load in order to perform a real world task. Making a modular and open platform will allow anyone to build this and change this to their own needs. The platform should be affordable, targeting a 1000 euro budget for a mobile base robot which can navigate an environment. This project focuses on the mobile base first, but adding generic end effectors or complete robotic arms is definitely the next step.
There aren't that many robot platforms out there that you can buy and start building your own robot. There are a *lot* toy-scale platforms, but somewhat larger, closer to human-size and able to carry a load, not so much. The ones that do exist either are targeting commercial use and are priced accordingly (~10K euro) or have other serious limitations. When I wanted to build my own robot a year ago and looked for a platform to build it on, there were basically two options which came close. The Turtlebot 2 which uses the Kobuki base and the Parallax Arlo platform. I had a budget in mind with of around 1000 euro. This already excluded the Arlo, which would take up the complete budget and then some, on the mobile base alone. I have some experience with the Kobuki in real life and was generally disappointed with the noise and small payload ability (~5KG) and the relative high price tag of 350 USD (without shipping). At the same time the 'hover'boards became popular, can carry a real load (~100KG), operate silently due to their brushless hub motors and are relatively inexpensive (~200 euro). I remembered seeing the VESC, an open source brushless electronic speed controller project (on Hackaday off-course) and the idea to combine them into a robot platform was born. I wanted to build a robot which I could use, but was also designed with some principles in mind, to allow the project to be open and reusable by others.
The applications are endless. The low price makes it feasible to have a fleet of robots doing specialized tasks. There are a lot of applications that are possible, which are built around a mobile base and do not require a robot arm yet. Here are some ideas:
- camerabot or robotic tri-pod
- smart trashcontainer which moves to a central location when it needs to be emptied
- waiter bot serving drinks or snacks from a tray
- smart storage container which picks up contents or brings its contents when needed
- robotic furniture or walls to have a dynamic room layout
- robotic (vacuum) cleaner
- robotic lawn mower
- endless surface CNC-bot
- robotic (shopping) cart
To be truly modular there should be no limitations up front. The design should be extensible, but also allow parts of it to be replaced by something else. In the end building a robot should be as easy as building your PC, build a frame, add a power supply, wheels, sensors, computer and add or develop software.
- Total physical modularity: it should be possible to change the appearance or design of the robot to meet a desired solution. This is accomplished with the use of T-slot profiles which allow you to rapid prototype the design of the robot to build the solution you need.
- Total electronic modularity: instead of one big controller board which is designed up-front with the capabilities required the electronics is build around a modular power supply and modular electronics with separate USB controller boards for each input / output.
- Total software modularity: the ROS driver is built around the ros_control library with a implementation of the wheel driver interface to allow controlling the wheels in different configurations. Currently the robot is designed as a differential drive mobile base, but with the wheel driver interface it's easy to extend to a different configuration if needed.
Fully open technology, meaning:
- open source software (also for firmware)
- open source hardware
- open design
- open documentation
- uses only open projects
- has an open tool chain
- has no dependency on a proprietary component for which there is no alternative
I think the VESC project is an excellent example of this. It's fully open source hardware and software, the toolchain is fully open: electronics design is made with Kicad, the BLDC-tool to program the VESC is also released as open source and the firmware is based on the open ChibiOS.
To give some contrast to this: the Turtlebot 2 has the 'open hardware' label but the main component is a Kobuki mobile base, which is not open hardware and is only available from one manufacturer. While the computer main board and 3D camera are also proprietary, at least there you'll have plenty of options from different manufacturers to choose from. In an ideal world it would have been nice to have all parts fully open, but unfortunately we're not there yet.
This project would not have been possible without the great work already done in other open projects, the main ones being:
This one does not require any clarification, does it?
This project serves as a starting point, a base, or a way to build your robot. It does not describe a single robot. I'm not even sure how my robot will end up looking or what it will do. Eventually I may end up with several variations testing out some scenario's and ideas along the way. The platform should allow these variations and make it possible to make these kind of changes.
This last part is really about completing the acronym, but also acts as a disclaimer. This project does not intend to be a out-of-the-box fully working robot experience. Instead it requires some 'hacking' to get to the working state and is really a base design on which you could build your own robot and save some time designing all of the parts and instead focus more on the solution you want the robot to bring.