My adventures with a Raspberry Pi and Arduino programming

ROS woes…

I’ve had a lot of issues using the Robot Operating System…

I figured given the number of people and institutions running ROS that it would be relatively easy to get started. Indeed the level of documentation looked promising. It’s not turned out that way though.

I should mention up front that I’m not running on Ubuntu Linux. If I were I’m sure all would be well… hmm well pretty sure.

I’ve tried installing ROS on both OS X 10.9 Mavericks and the Raspberry Pi’s latest Raspbian Linux OS. I’ve hit problem after problem. Indeed, I’ve had to write my own install guide because there are missing steps or errors not explained in each of the individual install guides.

I eventually gave up on OS X. It just refused to compile a bunch of packages. I managed, eventually, to get it all compiled on the Raspberry Pi. Even to the point of having roscore running. Now I’m experiencing failure of rosbridge suite – the main reason I wanted to use ROS in the first place.

ROS fails to see the rosbridge_server or rosauth packages. I’ve catkin_make install’ed them, and it still can’t find them! Weird! I’ve even edited ROS_PACKAGE_PATH to point to them, to no avail.

User error?

Now I know what you’re thinking. Is this guy just a n00b? No. I’ve compiled my own linux kernels, learnt new languages when porting software, decompiled code where the source had been lost and managed to get a whole load of weird and wonderful tech working in my time.

ROS though is a thorough pain up the posterior. It seems like the docs are written to deliberately miss out required steps. Having to use a mix of easy_install, pip, apt-get and compiling from source is just cruel and unusual. And then not to have it to work… GAAAAAAHHHH!!!

What now?

The whole purpose of me building Ralph was to get a Robot up and running fast, and sharing how it had been achieved. I thought ROS would give me the ‘middleware’ to link together my sensors, AI code, motors, and other routines I build inside of Ralph.

It’s turned out to be a pain. Getting it working for me is one thing, but making it easy for others? I’m convinced now ROS just doesn’t fit the bill. So what to do?

Well, I like the idea of rosbridge. This is a JSON protocol accessed over websockets. I think I’ll re-use that. Especially as I’ve taken the time to get their API working in Node.js now.

I think I’ll use this as a foundation. That way if people have ROS then great, they can re-use my services, but the hassle to get ROS up and running means I’ll need another middleware component.

I think I’ll take the rosbridge websockets server and repurpose that in to my own lightweight node.js based ROS core. All built on websockets. That way it’s standards based so other apps can talk to it.

I would call it Ralph OS but that abbreviates to ROS also. I think I’ll call it Easy Robot. The name’s not taken on npmjs.org, and it hints at a library to make it easy to write your own Robot controller.

I’ve just created the GitHub Project and the initial NPM Publish to save the name. Watch the blog for more entries.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: