Downloadable ROS Ba...
 
Notifications
Clear all

Downloadable ROS Base images?

39 Posts
9 Users
1 Likes
8,708 Views
(@twobits)
Member
Joined: 5 years ago
Posts: 113
Topic starter  

What resources to DroneBot Workshop builders have for deploying ROS on your robots? As I explore lowering the barrier for new users to learn ROS, an issue that keeps reoccurring is the initial install. It is not hard but it is error prone and can be tricky for new users to debug.

I have been thinking about creating some downloadable ISOs which DroneBot Workshop builders can use to get started exploring ROS.

It seems that for the best learning experience, one should have three components:

  1. A single-board computer running Linux located on the Robot.
  2. A desktop or laptop for using ROS visualization tools.
  3. A network to which both the SBC and Laptop are connected.

While ROS is very flexible, that flexibility can make it challenging to get a base system up and running. After a bit of experimentation, I would currently suggest starting with:

  1. ROS Kinetic on Raspian on a Raspberry Pi 3 b+ for the SBC.
  2. Dual booting ROS Kinetic on Ubuntu 16.04 on the desktop/laptop.
  3. A standard home network.

I have explored a couple of different SBCs. I keeping coming back to ROS Kinetic (released spring of 2016) on Raspian on a Pi 3b+. That combination seems to have the best community support.

My end goal is going to be running ROS2 Dashing (released spring of 2019) on L4T on a Jetson Nano. Based on the number of niggling issues I have had with that combination, it might be a better fit for DroneBot2.

On the desktop/laptop side of things, a bare metal install of Ubuntu 16.04 appears to be the most stable. Some people have had success running ROS inside a Virtual Machine. It can be tricky. The error messages are cryptic. It can be a bit challenging getting help because the ROS community blames the VM layer, and the VM community blames the ROS layer when things go wrong. Using a different flavor of Linux or even a different version of Ubuntu can cause challenges. 

If anyone is interested, I’ll put downloadable images on github for both the desktop and Raspberry Pi so everyone can have a similar base system for their experimentation.


   
Quote
(@starnovice)
Member
Joined: 5 years ago
Posts: 110
 

I have installed the UbiqityRobots.com version on a raspberry pi.  It installed very easily.  Unfortunately it is setup to be an access point on 10.40.0.1 which means I have to log off my home network and log into it to get network connection.  I'm sure it can be reconfigured just don't know how.

I have also tried ROS for Windows. It is very difficult to install and then because all of the windows script commands are so different then Linux, it is impossible to walk through the ROS tutorials.  I'l keep trying and maybe I can publish a translation tutorial.

Pat Wicker (Portland, OR, USA)


   
ReplyQuote
(@twobits)
Member
Joined: 5 years ago
Posts: 113
Topic starter  

Yes, this has been my experience as well. There are many images available for various SBC by various vendors. These images seem to work about 95% of the time. When they fail, it is hard to know what has gone wrong and how to fix it.

Yes, as much as I dislike windows, my first choice was ROS on windows because everyone has a windows machine everywhere. But, as you point out, everything is slightly different than the commonly available documentation. Plus, I don't have enough windows knowledge to debug issues with windows drivers.

That is why I am thinking of starting with the most stable and well-supported platforms I could find. As we build a knowledge base we can gradually move to later and greater versions of the software.


   
ReplyQuote
byron
(@byron)
No Title
Joined: 5 years ago
Posts: 1122
 

@twobits 

I will eventually be very  interested in downloadable images and I have the necessary hardware, though I will have to either dual boot one of my Linux machines or change over to Ubuntu.  However right now I have to put a hold on getting really stuck into to all this for 6 months or so as other non electronics/robots projects are getting underway.  The much diminished time I will have to play around with all this will mainly be spent on working through KiCad but I will be reading through all the write ups on ROS. (and watching DroneBots ?)  You are doing some very interesting work on elucidating ROS so even though I may not be actively doing much on this front for a while I do appreciate your efforts. 


   
ReplyQuote
Robo Pi
(@robo-pi)
Robotics Engineer
Joined: 5 years ago
Posts: 1669
 
Posted by: @twobits

If anyone is interested, I’ll put downloadable images on github for both the desktop and Raspberry Pi so everyone can have a similar base system for their experimentation.

That's a good idea.  Getting everyone on the same page to do some similar experiments would be quite helpful.  I have a Raspberry Pi that I could dedicate to learning ROS.   And as you (or someone) had suggested in another thread we only really need to make a system SD card with ROS to experiment with it.  No need to even dedicate an entire Raspberry Pi board.

I'd like to learn about ROS even though, from what I have learned already, I have serious doubts that I'll end up using it for my robot project.  Although that could definitely change in the future.  I really don't know enough about it yet to draw any final conclusions.

But if I can just dedicate an SD card for experimenting with it, that wouldn't be a major investment.

If we get enough people using the precise same ROS system doing the exact same experiments that could really be useful.   So having a centralized github page for the downloads would be nice.  

After you set that up  you should then start a thread on how to set up a Raspberry Pi with the ROS system from the github site and see how many members we can get onboard.

DroneBot Workshop Robotics Engineer
James


   
ReplyQuote
(@mjwhite)
Member
Joined: 5 years ago
Posts: 34
 

@twobits

Thanks for doing all of the legwork on this.  I spent weeks trying to get all of this to work and finally came to the same conclusion about using Kinetic.  I even tried doing an install on a Macbook which I guarantee you is a dead end at this point, so don't even try.  You're going to save a lot of people a lot of time!  Getting everyone on the same base install will help greatly with the exploration of ROS.   

Anyway, I got a decent setup going in the end using rosserial to communicate between the Pi and the onboard ESP, so I can keep the Pi on the desk and use it for multiple robot projects.


   
ReplyQuote
(@starnovice)
Member
Joined: 5 years ago
Posts: 110
 

I am interested in rosserial, it seemed like the easier way to go for dronebot.

Pat Wicker (Portland, OR, USA)


   
ReplyQuote
(@mjwhite)
Member
Joined: 5 years ago
Posts: 34
 

@starnovice

rosserial is part of the ROS install.  It doesn't make things any easier in terms of installing and configuring ROS.  In fact, it's yet another component that you have to learn.  It allows you to pass ROS messages over WiFi, and in that respect it means that your robot doesn't have to carry the ROS server around on its back.  That said, at some point I'm probably going to be putting the Pi on my robot for other reasons, but until then it's nice to have it on the desk and available for other robots to use.


   
ReplyQuote
(@riota)
Member
Joined: 5 years ago
Posts: 2

   
ReplyQuote
(@twobits)
Member
Joined: 5 years ago
Posts: 113
Topic starter  

@Riota thanks for the links.

Hmmm, I wonder which will happen this evening testing ROS on docker or mulching the flower beds. 🙂

If I had my choice, it would be ROS on docker. Since I would very much like to keep my happy home it will probably be mulching flowers.  Crossing my fingers for a surprise rainstorm!


   
ReplyQuote
(@riota)
Member
Joined: 5 years ago
Posts: 2
 

@twobits

Make hay (or rather, mulch) whilst the sun shines!


   
ReplyQuote
Spyder
(@spyder)
Member
Joined: 5 years ago
Posts: 846
 

Somebody mentioned the turtleros, so I downloaded that and imaged it onto one of my Pi's. It seems to be a lite version of Raspbian, which seems odd because it's only 2.1G, and I thought that ROS would be much bigger than that. Anyway, I booted it up, went thru the setup process, and the wifi didn't seem to be working no matter what I tried. I did see the wpa supplicant during boot, so I assumed it probably had something to do with that because, historically, the wpa supplicant has been an issue with Raspbian, but, I searched for that file and couldn't seem to find it

roswpa

Thinking that maybe the wifi has gone south on the Pi (which happened to me once before during some "experimenting") I loaded a regular version of Raspbian, and the wifi worked just fine. Then I saw this

Posted by: @starnovice

Unfortunately it is setup to be an access point on 10.40.0.1

Which lead me to think that the wifi actually is working, I just can't find it, so I looked and this install also has "hostapd" which I had never heard of. Google tells me it's "Host Access Point Deamon" which would make sense, if this were the master version, not the slave version of ROS (is that even a thing ? Master Slave ?) That would make sense as there's a publisher and a subscriber, which I would call master slave, although that's obviously not the correct nomenclature

Thing is, I looked at ifconfig, and it said that the wifi wasn't connected to anything, then I looked in my router, and it said that there was no turtle lurking about

There was a mate for this turtle which was an iso but it was built for x86(amd64), which, in my logic, would be the master unit, and the version I put on the Pi, which was ARM based would be the slave unit, which also didn't make sense, because logically, the master (which theoretically does all the thinking) should be bigger than the slave, but, the iso is only 1.4G, so that doesn't make any sense either

Answers on the web page for this version http://wiki.ros.org/turtlebot/Tutorials/indigo/Network%20Configuration

weren't very helpful, so I took the initiative, thinking that since it's only 2.1G, I had plenty of room to install PIXEL so I could get to a GUI so I could just go up to the top of the screen and turn on the dratted wifi

(My experience with ROS is limited to about a dozen installs on both the Pi and the Jetson Nano, wondering what to do next, then cursing a lot)

PIXEL got me the gui I wanted, along with the requisite wifi icon at the top, only to have it tell me "no wireless interfaces found". This was information that was helpful in absolutely no way that I could imagine cuz ifconfig is still telling me that there IS, in fact, a wireless module, just not named in such a way that the gui can understand it...

turtleifconfig

Now, this information was also odd because when I ran raspi-config, I told it to "use predictable network interface names" which, in theory, should have renamed my hardwire to "eth0", which it doesn't seem to have done, which leaves me back to guessing, which, unfortunately, leads me back to "hostapd" because what I would normally have done first is to edit the  

/lib/udev/rules.d/73-usb-net-by-mac.rules

but I was afraid that the raspi-config didn't work because turtle wanted to use the exact name that it had assigned and I should just leave it alone and go back to googling hostapd

So that's where I am at this point and I have 2 questions...

A) am I correct in assuming that the ARM version is for the "slave" (subscriber) ?

B) am I correct in assuming that the x86 (amd64) version is for the "master" (publisher) ?

3) any hints as to how I should make this thing talk to my wifi, or should I just continue googling hostapd?

D) should I try to burn this iso because it's probably part of a "set" ?

5) Or maybe I should start again, without the gui because I've probably ruined this install ?


   
ReplyQuote
(@twobits)
Member
Joined: 5 years ago
Posts: 113
Topic starter  

Could you send me a link to the turtleros image you are using? Which Raspberry Pi are you using? Sorry if that was already posted an I missed it 🙁

I'll take a look to see if I can figure out what is happening.


   
ReplyQuote
(@starnovice)
Member
Joined: 5 years ago
Posts: 110
 

@spyder

I went through exactly the same thing with my first raspberry-pi installation with Debian.  For me, after a couple of days of trying everything and lots of googling, I discovered that the raspi-config wasn't run at atart-up.  Once I figured out how to run it the nework setup was straight forward.  I chose not to use predictive naming because I didn't know what it was and it was unchecked by default.

As far as master-slave I believe that only depends on what role the device is playing not on the particular software.  The master, I think, has roscore running and the slave sends and receives the topics.

What I found, for myself, is that it is really easy to get frustrated with this and to over think it.  Good luck and remember it must work because there are a lot of people using it.

Pat Wicker (Portland, OR, USA)


   
ReplyQuote
Spyder
(@spyder)
Member
Joined: 5 years ago
Posts: 846
 

@twobits

I can't seem to find the original .img. It's called...

TurtleOS-1.2.1-20190212.img

And I know I got it from this page

http://wiki.ros.org/turtlebot/Tutorials/indigo/Turtlebot%20Installation

But I can't find the download link for the img, only the iso


   
ReplyQuote
Page 1 / 3