I'll try to work through this step by step :-)
use Ubuntu Xenial (16.04) for a Rasp Pi 3
Just to clarify, using "Ubuntu Mate Xenial"
I am not sure if it means faster as an OS or faster to download
This means "faster to install". I can't judge about the part of "faster as an OS", but definitely faster to just flash the image and install the rest via the package manager than to compile from source.
which OS is a better choice
Given that there is no Ubuntu Mate for the RPi 4 (for now), you'll probably have to use Raspian and the tutorial you link to by compiling from source.
Also, note that the RPi 4 is only officially supported starting from Ubuntu 19.10, i.e. installing Ubuntu 16.04 on the RPi 4 for the use with kinetic might be quite a challenge...
I have never used ROS before and am somewhat new to Linux as well.
Then I'd suggest to familiarize with those (first, Linux/Ubuntu, then ROS) on a system where this is supported without jumping through hoops. I.e. use a desktop or a laptop.
19.something, would the installation be the same except for a different image to flash on the SD
No, the steps would not be the same. Kinetic is not supported for Ubuntu 19.10, nor is any other ROS (ROS1 that is) distro that I'm aware of... (See REP3). You could try to install ROS melodic (the predecessor of kinetic) but there are no guarantees that this works as this is only officially supported for Ubuntu 17.10 and 18.04.
is ROS heavy on the processor if your just doing basic stuff
Please define "basic stuff" and it obviously depends on your way of setting everything up.. :-)
** Edit **
Would you advise trying to dual boot a laptop with Ubuntu 16.04 instead?
Yes, would definitely be better.
If I did use the RPi with Raspbian, would I need to compile everything from source?
Most probably yes, though you could also look around for some of the already provided images containing raspbian and ROS, like this one (just an example). However, I have no idea if this works on an RPi4...
Would I need to deviate from the standard install instructions on Gazebo
For Gazebo, I'll quote the Gazebo system requirements:
Gazebo is currently best used on Ubuntu, a flavor of Linux. You will need a computer that has:
- A dedicated GPU, Nvidia cards tend to work well in Ubuntu
- A CPU that is at least an Intel I5, or equivalent,
- At least 500MB of free disk space,
- Ubuntu Trusty or later installed.
So for
would Gazebo (version 7 I think) run well on a Pi.
I'd say: No :-)
Does that use case sound plausible on an RPi 4, or am I gonna need something more powerful for the processing alone?
As your use case involves a simulation engine, you need something more powerful, ideally with a proper GPU...
Originally posted by mgruhler with karma: 12390 on 2020-01-14
This answer was ACCEPTED on the original site
Post score: 1
Original comments
Comment by tannerlegvold on 2020-01-15:
Thanks for all your help! I think now I see what the problem is: the versions really aren't working in my favor, the only version of Ubuntu currently supported for a Rasp Pi 4 is 19.10, but ROS Kinetic is only supported on 16.04... so ROS on Ubuntu on Rasp Pi 4 isn't going to work out.
Just to give background, this is for a class I'm taking. We need Kinetic specifically because there are some pre-built robots that we need to be compatible with. I thought it would be cleanest to put ROS on a dedicated machine (even if just an RPi) but I now see it may not be the best choice. Would you advise trying to dual boot a laptop with Ubuntu 16.04 instead?
A few other questions: If I did use the RPi with Raspbian, would I need to compile everything from source? For example, we need to use Gazebo. Would I need to deviate from the standard install instructions on Gazebo, or, is it just the stuff listed in the install instructions for ROS Kinetic that would be different.
Comment by tannerlegvold on 2020-01-15:
Also, would Gazebo (version 7 I think) run well on a Pi. You asked what I meant by "basic stuff", I'll just say that what the class looks like is basic turtle bot programming and simulating in Gazebo (which is what I was thinking of when I said "basic stuff"). Does that use case sound plausible on an RPi 4, or am I gonna need something more powerful for the processing alone?
Sorry this is so long, but thanks for all the help you've already given!!
Comment by mgruhler on 2020-01-15:
@tannerlegvold I've updated my answer.
Please edit your question the next time you add additional information. Makes it easier for other users to grasp the full intent behind a question without having to read through all comments.
If this answer is satisfactory, please don't forget to mark it as resolved by clicking the tick-mark next to the answer.