ROS on Raspberry PI...
 
Notifications
Clear all

ROS on Raspberry PI 3B+ progress report.

97 Posts
10 Users
4 Likes
46.4 K Views
(@twobits)
Member
Joined: 5 years ago
Posts: 113
Topic starter  

This rabbit hole is certainly deeper than I expected.

After digging deeper, I have given up on using Raspian as a base for the ROS on Raspberry PI 3B+. Raspian is built on Debian Buster which is not particularly well supported on ROS. It works, but it requires quite a bit of manual tweaking, which is not beginner-friendly.

Approach #2. Use an Ubuntu-based build and apply the necessary patches to make it run on a Raspberry-Pi. This approach is used by both https://ubiquityrobotics.com/ and http://www.robotis.us/ for their ROS on Raspberry Pi builds. I don't want to use either of those companies downloadable images as a base because they include several custom packages unique to their companies. As a result, they don't work quite the same way as you think they would based on general ROS documentation.  

The challenge with Ubuntu on Raspberry Pi 3B+ or older is that any recent (released in the last five years) Ubuntu desktop requires more than 1GB of memory to work very well. As a consequence, the broader Ubuntu community has not put much effort into getting Ubuntu to run well on a Raspberry Pi.

The one exception has been Linux Mate. Linux Mate uses a different GUI which runs reasonably well in 1GB. The Linux Mate community has put a fair bit of effort into getting it to run well on the Raspberry Pi 3B+.

This approach has 2 downsides:

1. It is much harder to do a tutorial on how to do a ROS on Raspberry Pi tutorial. The commands to modify the Ubuntu base to work 'well' on a Raspian are not beginner-friendly.

2. For space reasons, the Raspberry Pi will not have a GUI desktop, just a CLI. A desktop is not necessary on the onboard SBC. But, not having one is a turn off for new users.


   
Quote
Robo Pi
(@robo-pi)
Robotics Engineer
Joined: 5 years ago
Posts: 1669
 

The rabbit hole is deeper than twobits had expected
Raspbian won't cut it, and had to be rejected
And now the GUI's gone! It too has been ejected
So the newbies run and flee the scene
as was thoroughly expected.

DroneBot Workshop Robotics Engineer
James


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

That is a succinct way of putting it/


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

Another couple hours into the project, and it appears that we have come across an excellent example of what Open source does poorly.

There were several players involved:

1. Open Source Robotics Foundation (OSRF), the organization behind ROS, the popular Opensource Robot Operating System.

2. Raspberry Pi Foundation, the organization behind the Raspberry Pi.

3. Several vendors, trying to sell Robots based on Raspberry Pi and ROS.

4. Canonical, the organization behind Ubuntu, the widely used Linux distribution.

In 2016 and 2017, there were several exciting projects in this space. But, by 2018 they had all fizzled out.It appears that all of the players thought that the other parties should carry the cost of maintaining the operating system.

OSRF had pretty much stayed out of the Operating System layer. They operated on the premise that ROS should work on 'stock' Ubuntu. OSRF is in the interesting that the vast majority of their funding comes from large manufacturers who consider the Raspberry PI and nuisance and a toy.

The Raspberry Pi Foundation chose to put all of their efforts into Raspian, the Debian Based Operating system. The world was being flooded with SBCs trying to get a piece of the new market the Raspberry Pi opened up. In many cases, they just stuck Raspian on the board and tried to offload the OS maintenance burden to the Raspberry Pi Foundation. As a result, the Foundation became very focused on making the quality of 'their' software stand out from the crowd.

A quick look through Kickstarter will show hundreds of now dead robot projects based on ROS and Raspberry Pi. Many, if not all of them expected Canonical to carry the cost of supporting Ubuntu on their particular blend of hardware.

In 2015 and 2016, Ubuntu had many projects supporting the Raspberry Pi. They even had 'flavor of the month' contests encouraging community members would create unique Raspberry Pi variants. Canonical bet the farm on Ubuntu Core and Snaps for the Internet of Things devices. The Desktop and IoT markets are still money losers for Canonical who get most of their revenue from their server and cloud business.

The boom cycle went bust. What could have been a healthy ecosystem has turned into a mess of fragmentation. This fragmentation becomes an interesting dilemma for an open-source enthusiast and hobbyist. Is it possible to create and support a standard ROS on Raspberry Pi base? Is the project sustainable? Will the players come together to build a common base on which they can add value and generate revenue? Will they continue going their own way.


   
bharathraj reacted
ReplyQuote
Robo Pi
(@robo-pi)
Robotics Engineer
Joined: 5 years ago
Posts: 1669
 

So where does this leave the project?  Are we at "Abort Mission"?   Or just on hold awaiting a new launch date?

I could write a poem about either one, but I don't want to jump the gun. ? 

DroneBot Workshop Robotics Engineer
James


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

It comes down to what the Bill and the DronebotWorkshop members want to do. If there is interest, I  can carry on. All of the necessary pieces seem to be publically available. It is just a matter of someone putting them together and doing a best-effort job of providing technical support in the hopes that eventually others come along and help out.

The other option is to switch to something like a Jetson Nano. At $100 it is three times the price of an RPi3B+.  But it does have 4GB of memory, some attractive potential with the Cuda engine and last but not least a significant corporation behind it.


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

First, I solved the dual poem problem:

 

  switch (CODE_RED) 
  {
    case "Mission Abort":    
      Serial.print(
        "Open Source Robotics, has abandoned all their code
the haven't any backbone like a slimy nematode
Canonical has also gone, on a slightly different road
leaving twobits efforts, to be flushed down the commode"
        );
      break;
    case "New Launch Date":    
      Serial.print(
        "The Pi Foundation also, is becoming rather moot
and all the corporate vendors are just in it for the loot
but twobits' resolution is concrete and absolute 
no matter what the others do, twobits will reboot"
        );
      break;
  }

DroneBot Workshop Robotics Engineer
James


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

It comes down to what the Bill and the DronebotWorkshop members want to do

My personal thoughts on this is that, while I would like to learn what ROS is all about, I'm in no rush to learn it.   So it's certainly not something I'm pushing for.   I'd rather see videos by Bill just on the Raspberry Pi and Jetson Nano as SBC's in their own right.   I would like to see him teach us how to write code on those platforms before getting into introducing something like ROS.   So no rush from me.    I'm not even convinced that I'll be interested in using ROS.

Posted by: @twobits

The other option is to switch to something like a Jetson Nano. At $100 it is three times the price of an RPi3B+.  But it does have 4GB of memory, some attractive potential with the Cuda engine and last but not least a significant corporation behind it

I am planning on getting a Jetson Nano at some point.  But for me that may not be until next year unless Bill psyches me up to buy one in one of his video demonstrations.   But he would almost need to be writing code on the Nano to get me excited enough to buy one.  I'm not going to buy one just to run the Jetson Nano demos.

When I finally do get a Jetson Nano I might be interested in trying to run ROS on it.  But only if that can be done in a similar fashion as the Raspberry Pi.  In other words, if I can have an SD card just for ROS, while being able to remove that card and replace it with my original system card.  Then I would probably do it.  But I wouldn't want to put ROS on my Jetson Nano if it was going to be stuck on there with my normal OS.

In other words, I'm only interested in giving ROS a test drive and kicking the tires before I make any final decisions to fully incorporate it into my robotics systems.

DroneBot Workshop Robotics Engineer
James


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

After digging deeper, I have given up on using Raspian as a base for the ROS on Raspberry PI 3B+.

LOL !!!

You read my mind !

I was just about to announce that I had given up on Turtle due to it being raspbian (debian) based, and thus not being very friendly AT ALL to downloading or updating the ROS system itself due to the fact that most ROS was meant to be run on Ubuntu. Soooo...

I found this

I was looking around and found the 2.19.2019 version in my library, and wondered what it was, so I installed it, and it booted, so I ran apt-get update, and it collected some updates from ROS as well as ubuntu, so I downloaded the 6.2019 version (so I'd have the newest available), and it updated as well

A look around the file system showed me that ROS was indeed installed, and it looks like catkin is already set up (haven't tried it yet cuz I don't know enough about it)

ros

I suggest you take a look at this before we give up on the Pi cuz the Jetson might be too expensive for most people


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

That is one of the projects I am looking at to see if this is feasible. The build script for those images is at https://github.com/UbiquityRobotics/pi_image_build .

The script is GPL2.0 or later so we can remove the Ubiquity Robotics specific stuff and update it to melodic.

The Pi Foundation also has its build script on GitHub so we can see how they modified Debian to run on Raspberry Pi's.  There would be little to no reinventing the wheel.

The challenge would be managing expectations. We would have to limit our selves to a single version of ROS, a Single version of Ubuntu, and a single SBC such as the RPI3B+.

The Atomic Pi and all those other wonderful SBC would have to sit on the sidelines for a while.


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

@twobits

I downloaded one of their images, and there's a command listed to turn off their own specialty thingys

If you are not running on one of our robots run sudo systemctl disable magni-base to ensure that our startup scripts get disabled.

This way I didn't have to do an initial install, but, an install might be better, I have no idea what I'm doing here

I usually just throw a bunch of parts in a box, shake it up, and see what comes out, and right now, ROS looks like it's running (I think)

 


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

Throwing a bunch of parts in a box and shaking vigorously is one of my favorite development methodologies 🙂

Can you bring up 'roscore'? Can you connect to a network or does it try to act like an AP? hmm, I guess if 'apt' works you are successfully connected to something.


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

It DID try to act like an AP (initially), but it was friendly enough that I was able to turn that off and get it connected to my wifi pretty easily

So, how do I bring up roscore ?

Nevermind. I just typed in "roscore" (cuz, like I said, I have no idea what I'm doing) and this happened...

image

So, I guess, yes, I can bring up roscore


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

@twobits

I was just checking back in on this after a couple of weeks.  Sorry to hear that this project is proving to be so challenging.  We really appreciate your work on this however, and I hope that you're able to keep going.  The Ubuntu Mate install with ROS Kinetic is the only configuration that I've had success with.  After installing Ubuntu Mate I do a 

sudo apt-get install ros-kinetic-desktop-full

and continue on from there.  I have about 13 steps in my notes (after the Ubuntu Mate install) so I'm not sure if that's what you were looking for in terms of a simple install.  Also, I don't use the Pi for anything else other than ROS. 

I haven't done much beyond the basic ROS functionality, but it does run Rviz and Gazebo successfully so it's certainly adequate for learning ROS.


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

After reading thru the documentation, it seems I should have left the AP turned on as it helps in creating a link to your cell phone

No big deal, I still have to work out how to tell it about the hardware I have


   
ReplyQuote
Page 1 / 7