Let's Make Robots!

The future of hobby robotics?

Hello dear LMRers! Not long ago I launched a blog at ohmnivore.co.nr . For a start, I wrote about an idea I had in mind for a long time and that has me wondering; why are there so little RaspberryPi-powered robots? I post this to stimulate a discussion about the RPi (I'm aware a lot more people will see it here, not at my blog). I'm too lazy to edit all the links, so the original version with working links is here.


In general opinion and world culture, robots are pictured as machines much more complex than what hobby robotics has to offer today. People expect robots to interface with our world much the same way we humans do. That’s very challenging, especially for the hobbyist.

I have been long enough in the hobby robotics community (mainly letsmakerobots) to witness the popularity of some components such as the Arduino, Picaxe, PING, and the general-purpose servo. The advent of each of these components has brought hobby robotics up a notch, and the more they arrive, the better.

I think that the next step to make more functional robots is to innovate with computer vision and sound processing. This is mainly done with a wireless connection that uses a PC for all the computations. While it does work, it can be compared to an invisible tether. The robot loses part of its autonomy. Instead, single board computers allow full autonomy. But to be honest, who at letsmakerobots.com has used an SBC? Not many people, at least before RaspberryPi came out. And that’s the point of my article. I firmly believe that this open-source, low-cost, versatile,community-supported, efficient and small SBC is the future of hobby robotics. While it may not be great to support a robot by itself, it can be coupled to an Arduino for a complete awesomness overload. The Arduino can take care of interfacing with electronics, while the RPi computes sound processing, computer vision and AI, for example. What do you think?


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

In the .. ongoing..development of LMRv4 we have implemented a Wiki. The idea is that things like the R-PI should have a page in there, that everyone can contribute to. And then you can "include" this info / board in your robot projects that use the platform.

I am just saying this to contribute to the general knowledge (not becase I want people to ask when v4 goes on air - I tell you; We are seriously doing the last fixes these days - seriously! :)

Awesome! Thanks a lot to everyone working on LMR, it really is a great website and community.

I think there is an analogy with robotics between where things were in early to mid 1990s with computers in the workplace and home and where we are today with robotics.  I think the IRobot roomba, scooba etc are sort of like those first PCs with dual 5 1/4" drives, 640 K of ram.  At the time, they were kind of an expensive novelty but did some really nice stuff for their buyers.  It took a bit for people to understand the value, but they did.  Pretty soon, people couldn't imagine their lives without them. 

I am a PC developer, and I work in a very rich environment of services which just weren't in place in 1994 on Windows 3.1.  Back then, even creating a sorted list was a lot of work.  Now, go online, find a template application that does something close and similar to what you need (trust me, it is out there!) drag, drop change a few lines, clip that, tweak that and you have close to what you want..  With robotics, we have a mishmash of hardware and development platforms, none of which talk to each other, none of which can physically be connected to each other because there are no standards for connectors either.  But the vision of how robots can enhance and change people's lives is really, truly within reach.  Having robots that can help care for the elderly, clean your house when you are at work, shovel your driveway when it snows is more than just whimsy.  Today, Google's car can drive your car for you.  And in robotics, all of these problems are standard problems that could be off the shelf integrated components that interact smoothly with each other and anybody can easily purchase (Model T of robots!!). 

So, the RPi, the Arduino, Pickaxe etc are all just stepping stones, the great, great, great grandparent to that integrated solution of hardware and software components that can solve whatever problem you want.  I think you are right that an Arduino and a RPi together is great solution platform.  Linux has huge number of services and software available to it, great development tools in C++ and Python (which is really nice to work in).  The hobbyist such as myself, is not going to be putting together a robot maid in a weekend but is definitely a step on the way.




I used in mine :) 

But you are correct, no one does really advanced stuff as you describe, I think this is mostly because advanced stuff is pretty hard to do in the end, especially on hardware with limited capabilities.

I have build my RPI bot to try OpenCV on it an do some advanced stuff but hey I'm just a hobbyst in the end and my interest on it got away.  Not the bot just stads there waiting for some time and attention :/



Having actually done a little work in this field, I'll try to be a bit more brief than I usually am when a subject like this comes up. The first thing that occurs to me is that the Pi is a full blown computer like your desktop machine rather than a microcontroller. That means it needs a monitor, which is less than convenient to have to go chasing after on a mobile platform, either to read the monitor on board or to attach a prohibitively long cable to. Also, an on board monitor sucks batteries down like crazy. You kind of cover this when talking about the tether problem, but overlook that it creates its own problems on that front. The second is that the Pi only has one PWM channel built in and that isn't available if you use audio out (this can be overcome to an extent using WiringPi-see my tutrorial at http://letsmakerobots.com/node/34774) and it doesn't have any ADCs built in (which can likewise be overcome for far less than the cost of an Arduino using an MCP3008 or an ATTiny over the I2C bus.)   I do see a lot of people state the intention of using an Arduino as an intermediate between the Pi and the I/O, which to me is kind of like buying a light truck to pull around your tow truck given the solutions I mentioned above and the myriad others that I'm sure are extant.

Python is not strictly needed to program your Pi. If you want you can do everything in C-every level of control is available to you, so I don't think that's so much of a problem, and the availability of Python is an asset rather than a liability. It is an "elegant" language that lets you do complex things simply.

In addition to bdk6's observations, I will say that I have read accounts of people getting discouraged by the long compile times they experience when customizing builds of things like openCV, which may be necessary when you're trying to integrate vision and motion. Also, for hobby robotics, this is on the very high, complex end of what a hobbiest can work with-its low expense has out moded it's power. For the most part, hobby robotics is oriented towards "trapping" the next generation of engineers into seeing the inescapable coolness of what can be done for purposes of generating our next crop of engineers to put through college. Very few of us ever try to take it to a more utilitarian level. 99 percent of hobby robots built are line followers, obstacle avoiders, photophobes/photovores, beam walkers, maze solvers or sumo bots. You don't need a full Linux system to make any of those (indeed it would probably be more of a hindrance than an asset to have that much power.)  Very very few hobbyists ever branch out to try to make something that can do a simple household chore, and those that do usually find that even the simplest chores are more complex than even a Desktop workstation based unit can handle.

In summation, The Pi is a very young platform compared to Parallax and Arduino, and its primary function isn't mechatronics-it's education. The point is to get a Linux machine in to the hands of young people everywhere. Doubtless you'll see more and more Pis popping up in projects, but it may be a while before it becomes a popular robot brain.