Welcome to Robot Rebels, an online robot maker community.

Register today to post your projects, ask questions, share knowledge and meet like-minded people from around the world.

The Community

Author Topic: ROS Breakthrough  (Read 535 times)


  • Member
  • ****
  • Posts: 21
ROS Breakthrough
« on: February 27, 2018, 11:49:15 AM »
Hey y'all.

Taking a break from Artie to work on some more autonomous robots.  Given that autonomy on a robot the size of Artie is pretty dangerous, I'm working on some smaller bots.

Most of you have probably heard of ROS, Robot Operating System.  I've tried learning it for many years, but kept hitting a wall.  In particular because at the early stages it seems geared for either premanufactured robots like the Turtlebot (or the PR2, which was $400K!), or simulation.  But typical hobbyist robots, not so much.

But, in an article of Servo magazine a few months back, someone wrote about how easy it is to cobble together a Neato Botvac (which is much cheaper than a Roomba), a Raspberry Pi 2/3, and an external cellphone power cell to make a complete ROS-compatible robot.

So, I tried it myself, and here are the first steps!

What you see here is a Neato Botvac 80 hooked up to a Raspberry Pi3 and a portable cellphone battery pack.  It's connected via wifi to my laptop running Ubuntu.  Both of them have ROS installed.

On the bot, I have ROS nodes running that handle taking in movement information and sending it to the Neato, as well as reading LIDAR scan data from the Neato and publishing so that the laptop can read it.  On the laptop there are ROS nodes running that take input from my keyboard and convert it to movement data and take the LIDAR scan data and put it into mapping software.

Big thanks to Camp Peavy for his Servo magazine article from a couple months back that gave me the confidence to try to give ROS a go once again.

Here is the github where a lot of information on how to do this is kept.

There were a couple gotchas that I had to google through to get everything to work.  If you want to try to replicate my results and have issues, feel free to reach out.

Next step, will be to get ROS running on Artie and take the movement data published over ROS and actually move his base with it.  Stay tuned and wish me luck!


  • calling from free Europe
  • Sr. Member
  • *****
  • Posts: 420
Re: ROS Breakthrough
« Reply #1 on: February 27, 2018, 02:55:02 PM »
looking good luke, I have to take another look at ROS soon as I nailed grbl.
I build bots


  • Member
  • ****
  • m
  • Posts: 19
Re: ROS Breakthrough
« Reply #2 on: February 27, 2018, 07:23:48 PM »
Nice! Always good to see a fellow hobbyist getting it to work.
I so wish that ROS2 becomes stable, so that we can finally have Windows support.


  • Member
  • ****
  • Posts: 21
Re: ROS Breakthrough
« Reply #3 on: February 28, 2018, 11:27:33 AM »
Yeah, my journey with ROS has definitely been a long one, and it was only through a combination of other stuff in my life that it finally all clicked together.  Here's a brief rundown.

1 - (2005) Got interested in programming by wanting to make video games, got a job making video games.  Development consisted of programming on Windows machines in C++, where everything was a single executable and the final product was a shipped and never looked at again.
2 - (2006) Being in the video game industry, companies pretty much told me that if I made games on my own time I'd be getting in legal trouble, and they could either take the games or sue me for violating my noncompete.  So I found a different hobby and started pursuing robotics.
3 - (2006) Built robots in Lego Mindstorms, found LejOS.  Java was close enough to C++ that I was comfortable with so started programming robots in Java.
4 - (2008) Moved to building GUIs in Java that communicated with my LejOS programs running on the Mindstorms machines.
5 - (2010) Found I could drive a Roomba around by sending serial data, just how I was interfacing with Mindstorms, so started moving towards hacking real hardware.
6 - (2011) Started investigating ROS, couldn't wrap my head around how it worked, plus Mindstorms support wasn't very good so went back to doing what I know.  Also, being a total Linux newbie made things very difficult.
7 - (2012) Due to a series of layoffs, ended up working at Zynga, which is half-videogame/half-web app company.  Started using Java, Actionscript, and php at work, started getting used to multiple code bases of different languages all talking to each other.  Started using OSX as primary operating system at work and started getting off of Windows.
8 - (2013) After getting laid off at Zynga, went back to conventional games, started building human-sized robots (Artie V1) that was driven by an Arduino written in Arduino's C-like language and communicating via serial to laptop GUIs in Java.
9 - (2015) Got out of the game industry completely, and started working at a conventional web-company (eventually became through acquisition).  Started learning about microservice architecture, where multiple code-bases running in parallel all talk to each other via different protocols (REST, Thrift).  Also, started working in Ubuntu as my primary OS vs Windows (or briefly Mac OS at Zynga)
10 - (2015) Tried ROS again, the parallels between ROS nodes/microservices started making sense, but couldn't make heads or tails out of pub-sub.  Plus, couldn't figure out how to interface well with my hardware.  Gave up.
11 - (2016) Started working on a project at work that used RabbitMQ as the primary mode of aynchronous communication between multiple services.  The concept of ROS nodes & topics now really started to make sense as a parallel to microservices & message queuing.
12 - (2016) Tried ROS again.  Messed around with simulations and RVIZ, but without real hardware just seemed boring.  Went back to working on what I knew.
13 - (2017) Servo magazine article comes out explaining Neato + RPi3 + ROS.  Now I had a hardware solution to start.  Bought a used Botvac off of ebay.
14 - (2018) Voila!  All obstacles around ROS were overcome.  I understand Linux, I understand the concept of ROS nodes + topics, AND found relatively inexpensive hardware to experiment on.

Ok, maybe that's not so brief, but my point - Keep at it.  Don't give up, keep revisiting ROS every now and then, because it might just be that you aren't in the right position at the time to really learn it.  But life changes, and your experience changes.  Break the hurdles down into multiple steps and keep tackling them one at a time.

And if you need any help, feel free to reach out to your fellow rebels.

Also, share your experiences and expertise.  You might never know who you will help.  Who out there was just waiting for that final piece to click before they could start doing great things.


  • Member
  • ****
  • m
  • Posts: 19
Re: ROS Breakthrough
« Reply #4 on: March 05, 2018, 08:15:40 PM »
Thanks for that rundown :)

I have been playing with ROS quite a while, mostly in a virtual machine under Ubuntu, but the performance is not up to par. I am familiar with Linux since university, but my main development tools are under Windows, and several tools that are not available under Linux. So the ideal world would really be a cross platform ROS, that can have nodes on either a Windows or a Linux system.

Your tip for affordable robot hardware gives me another cue on how to go from simulation to actual hardware. Maybe simpler before using custom built robots, that are based on Raspberry Pi's.

So far I make custom software that is glued together individually by custom solutions. A system standardized on ROS would be welcome. It looks like ROS 2.0 will be out this year, so this change may be finally possible :D


* Search

* Recent Topics

Antique (fun) stuff by MEgg
[April 24, 2018, 01:48:57 PM]

Spider by viswesh
[April 21, 2018, 09:41:33 AM]

Google Vision API using Raspberry Pi and Node by Ladvien
[April 20, 2018, 02:38:12 PM]

Hello from HITBOT - a young robot arm team by tinhead
[April 20, 2018, 11:32:57 AM]

MKS Gen L 1.0 by grayknight235
[April 20, 2018, 06:55:50 AM]

1B1 -- RAN Stack by Ladvien
[April 14, 2018, 10:40:54 AM]

Editing Raspberry Pi Code Remotely from Visual Studio Code by Ladvien
[April 14, 2018, 05:09:09 AM]

Post your last purchase. by Impala
[April 08, 2018, 12:54:11 PM]

Supercon by BaldwinK
[April 04, 2018, 09:57:55 AM]

Hex VI formally know as XCR3D v6 by jinx
[April 04, 2018, 07:10:51 AM]

Upload Arduino or AVR Programs to ATtiny84/85 Over UART by Ladvien
[April 02, 2018, 09:39:21 AM]

Are separate metric drill bit sizes sold in the US? by fabry
[April 01, 2018, 09:58:34 AM]

I2C Setup for Raspberry Pi Zero W with Arch Linux by Ladvien
[March 30, 2018, 09:35:16 PM]

Headless Arch Linux on Raspberry Pi Zero W by Ladvien
[March 30, 2018, 09:28:37 PM]

Sbase and the reprap full graphics smart controller by jinx
[March 30, 2018, 11:03:45 AM]

* Recent Posts

Re: Antique (fun) stuff by MEgg
[April 24, 2018, 01:48:57 PM]

Re: Spider by viswesh
[April 21, 2018, 09:41:33 AM]

Re: Spider by 1 what
[April 20, 2018, 10:38:41 PM]

Google Vision API using Raspberry Pi and Node by Ladvien
[April 20, 2018, 02:38:12 PM]

Re: Spider by viswesh
[April 20, 2018, 01:26:35 PM]

Re: Hello from HITBOT - a young robot arm team by tinhead
[April 20, 2018, 11:32:57 AM]

Re: Antique (fun) stuff by Ladvien
[April 20, 2018, 06:58:52 AM]

Re: MKS Gen L 1.0 by grayknight235
[April 20, 2018, 06:55:50 AM]

Re: Antique (fun) stuff by jinx
[April 20, 2018, 04:25:26 AM]

Re: MKS Gen L 1.0 by jinx
[April 20, 2018, 02:13:52 AM]

Re: MKS Gen L 1.0 by grayknight235
[April 19, 2018, 08:03:25 PM]

Re: Antique (fun) stuff by Catalinaz
[April 19, 2018, 01:04:15 AM]

Re: Hello from HITBOT - a young robot arm team by Catalinaz
[April 19, 2018, 01:01:55 AM]

Re: Spider by erco
[April 17, 2018, 01:24:55 PM]

Re: MKS Gen L 1.0 by MEgg
[April 15, 2018, 07:47:32 AM]