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 1473 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: 447
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: 24
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: 24
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

Web TIme API - by Gareth
[December 07, 2018, 04:34:37 PM]


API Directory by Gareth
[December 06, 2018, 03:34:16 PM]


The Original Prusa I3 Mk3 by tinhead
[November 30, 2018, 02:49:52 PM]


Email notifications by CraigCox
[November 28, 2018, 10:26:06 PM]


And another one. by CraigCox
[November 28, 2018, 10:17:54 PM]


MKS Gen L 1.0 by jinx
[November 28, 2018, 02:23:50 AM]


This kids a freaking genius by ossipee
[November 21, 2018, 04:55:40 PM]


Time of Flight >>> Rounded Corners !!! by Gareth
[November 15, 2018, 03:21:51 PM]


Double_ing up the "Time of Flight" sensors by Gareth
[November 13, 2018, 04:05:02 AM]


Point cloud anyone !!! maybe 3D scanner by maelh
[November 11, 2018, 05:38:33 AM]


removable magnetic print surface by Gareth
[November 09, 2018, 10:53:45 AM]


Robot Cop by Valeriex
[November 07, 2018, 05:48:20 AM]


it's lukeyes by Valeriex
[November 07, 2018, 05:47:16 AM]


TOF gets a local DEBUG screen by Gareth
[November 07, 2018, 03:47:29 AM]


BlueTooth elves choose "BlueTeeth" by Gareth
[November 07, 2018, 03:40:19 AM]

* Recent Posts

Web TIme API - by Gareth
[December 07, 2018, 04:34:37 PM]


API Directory by Gareth
[December 06, 2018, 03:34:16 PM]


Re: The Original Prusa I3 Mk3 by tinhead
[November 30, 2018, 02:49:52 PM]


Re: The Original Prusa I3 Mk3 by Bajdi
[November 30, 2018, 02:26:48 PM]


Re: The Original Prusa I3 Mk3 by tinhead
[November 30, 2018, 04:38:53 AM]


Re: Email notifications by CraigCox
[November 28, 2018, 10:26:06 PM]


Re: And another one. by CraigCox
[November 28, 2018, 10:17:54 PM]


Re: MKS Gen L 1.0 by jinx
[November 28, 2018, 02:23:50 AM]


Re: MKS Gen L 1.0 by Prokktor
[November 27, 2018, 08:35:38 AM]


Re: The Original Prusa I3 Mk3 by tinhead
[November 26, 2018, 02:42:26 PM]


Re: The Original Prusa I3 Mk3 by jinx
[November 26, 2018, 02:24:05 PM]


Re: The Original Prusa I3 Mk3 by Bajdi
[November 25, 2018, 07:54:21 AM]


Re: The Original Prusa I3 Mk3 by tinhead
[November 25, 2018, 06:11:22 AM]


Re: The Original Prusa I3 Mk3 by Bajdi
[November 25, 2018, 04:40:31 AM]


The Original Prusa I3 Mk3 by tinhead
[November 24, 2018, 12:02:51 PM]