Johnny-five/nodebots vs. ROS

A project log for Autonomous rover/robot dog

Ultimately, my goal is to construct a rover (in a K-9 shell) to follow me when I attend sci-fi conventions (myself dressed as Dr. Who).

Dan ShauretteDan Shaurette 03/15/2017 at 03:390 Comments

To celebrate #PiDay 2017, I decided it was time to investigate options for open-source robotics libraries and protocols that I could use with my Raspberry Pi 3 (and Arduino Mega). There's still a part of me that wants to just keep exploring and building Python scripts to find out just what I can accomplish with the Rpi and Arduino. There's also the part of me that wants to take full advantage of what others who've come before me have created that could move things along faster. The great thing about both approaches is that I can always scrap what I don't think is working and take another path.

So, what's out there? The one that is most mature and has many developers contributing to it is the Robot Operating System, aka ROS. As of the writing on this blog, Kinetic Kame is the most recent release, and on their wiki there are instructions on how to install it on the Raspberry Pi. To be blunt, it is not a simple process, but if everything installs without conflicts, it does seem straight-forward.

In fact, their upfront advice is to download an SD card image with Ubuntu and ROS installed. I agree, that would be a good idea, but I have invested quite a bit of time on my existing Raspbian (Debian Linux for Rpi) installation and I'm not going to scrap it. I may very well buy a new card and experiment with ROS in this way later.

Now, ROS itself is hefty. There are modules to build some amazing and sophisticated robots with many off the shelf parts and other popular libraries (like CV Computer Vision software). It also comes with 3D virtual prototyping environments so that you can design before you build with real parts. All of this is both a blessing and a curse. I'm sure there's a way to get only what you need, but in my admittedly cursory dive into their website, it feels like it might be too much overhead for what I want to build.

So for now, I'm setting ROS aside as a luxury item to find out more about later.

Another promising open-source project is, named after one of my favorite robots, from the movie "Short Circuit". This project uses the node.js Javascript environment on many platforms (Raspberry Pi included) to control an Arduino. You may have heard of nodebots, which are a type of robot built with Johnny-five.

What strikes me immediately is how lightweight, versatile, and easy-to-use this project is. I did have to do some digging into how to get node.js on my Rpi, but once that was done, the rest was trivial. Javascript is a language that many people can pick up quickly, so it was a wise choice by them, but admittedly not one that I would have expected. I mean, it's primarily for website design. I have never used node.js before but I have extensively used Javascript itself.

So, at least for now, I see more immediate value in Johnny-five, and if nothing else, I think it will be fun to experiment with. I will update later with my thoughts after I have a chance to play with it.

If YOU have used either ROS or Johnny-five and you have any advice, I would love to hear it.