collapse

Welcome!



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 RobotRebel.org Community

Author Topic: ROS Breakthrough  (Read 1109 times)

lukeyes2

  • 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!

https://www.youtube.com/watch?v=xSDMHaxLzS4&t=3s


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.
https://github.com/SV-ROS/intro_to_ros

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!

jinx

  • calling from free Europe
  • Sr. Member
  • *****
  • Posts: 442
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

maelh

  • Member
  • ****
  • m
  • Posts: 20
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.

lukeyes2

  • 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 Web.com 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.

maelh

  • Member
  • ****
  • m
  • Posts: 20
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

Gordon McComb Passes by jinx
[September 18, 2018, 02:12:53 AM]


sdsds by jinx
[September 16, 2018, 04:11:16 AM]


1B1 -- RAN Stack by Protowrxs
[September 12, 2018, 05:35:59 PM]


Picture Topic by Underwooz
[September 05, 2018, 12:27:28 AM]


ESP32 - Stepper - LIDAR - Platform by ZeroMax
[August 25, 2018, 06:48:32 PM]


NASA bot by ossipee
[August 05, 2018, 06:52:36 PM]


Android Adware by Pittmanz
[July 24, 2018, 12:40:23 AM]


Greetings! by Pittmanz
[July 24, 2018, 12:39:20 AM]


Sloooow progress on the I3 clone by KingBeetle
[July 16, 2018, 04:20:59 AM]


MKS Gen L 1.0 by jinx
[July 15, 2018, 03:55:57 AM]


Motor rewinding machine by 1 what
[July 10, 2018, 06:03:46 PM]


All the stories in the forum are most important. by ZeroMax
[July 01, 2018, 09:44:53 PM]


Parallax CR Servo with Built-In Encoder by 1 what
[June 28, 2018, 12:13:32 PM]


He's Back...BoB V3.0 by k120189
[June 21, 2018, 07:03:17 PM]


Funding by MEgg
[June 21, 2018, 04:34:36 PM]

* Recent Posts

Re: Gordon McComb Passes by jinx
[September 18, 2018, 02:12:53 AM]


Gordon McComb Passes by erco
[September 17, 2018, 10:00:37 PM]


Re: sdsds by jinx
[September 16, 2018, 04:11:16 AM]


sdsds by sdsds
[September 15, 2018, 03:55:20 PM]


Re: 1B1 -- RAN Stack by Protowrxs
[September 12, 2018, 05:35:59 PM]


Re: Picture Topic by Underwooz
[September 05, 2018, 12:27:28 AM]


Re: 1B1 -- RAN Stack by tinhead
[August 27, 2018, 04:06:01 PM]


Re: 1B1 -- RAN Stack by Bajdi
[August 27, 2018, 09:58:53 AM]


Re: 1B1 -- RAN Stack by ZeroMax
[August 25, 2018, 06:53:15 PM]


Re: ESP32 - Stepper - LIDAR - Platform by ZeroMax
[August 25, 2018, 06:48:32 PM]


NASA bot by ossipee
[August 05, 2018, 06:52:36 PM]


Updates 20180728 :- new Steppers - Perfboard Migration - wheel inserts by Gareth
[July 28, 2018, 09:57:11 AM]


Re: Android Adware by Pittmanz
[July 24, 2018, 12:40:23 AM]


Re: Greetings! by Pittmanz
[July 24, 2018, 12:39:20 AM]


Re: Sloooow progress on the I3 clone by KingBeetle
[July 16, 2018, 04:20:59 AM]