Installing MRL on a Raspberry Pi 3 for NOOB's

New Out Of Box (NOOB) is a term used for very new beginners.
We have all been there, and with the alittle help, we learn all the time.
 
This set of instruction is for the new user with very little or no experience with the Raspberry Pi.
Most seasoned experimenters/developers will find these instruction too simple and goes into detail they do not need.
 
You should be aware that MyRobotLab (MRL) is a very powerful base system for a robot, the Raspberry Pi 3 however is not very powerful.  With the Raspberry Pi 3 do not expect too much  from it, while it is a good, cheap, small computer, it does not come close to the power of your desktop computer.
 
If it's not that powerful, why use it?
Because it is cheap and small, and we can use multiple Raspberry Pi's to give us the overall power we need for a good sized robot.
The Raspberry Pi also has a number of General Purpose Input and output (GPIO) pins we can use in our robots.
 
This set of instructions is based around Raspbian Jessie Lite, Linux Release date:2017-07-05 Kernel version:4.9
 
You will need A Raspberry Pi 3
A microSD Card 8Gb or bigger (For this I used a 32Gb)
Raspberry Pi Camera
A HDMI Monitor
A wired Internet Connection with DHCP Server
USB Keyboard.
5V power supply with a Micro USB output, your android phone charger will work here.
Once we have the system installed, you may want a good terminal program, on Windows I suggest Putty.
 
The Lite version was chosen to reduce the number of programs we don't need being installed.
The Lite version is 1,685,186KB in size while the full Desktop version run to 4,552,231KB before we install MyRobotLab.
MyRobotLab requires Java Version 8 to run, the version that comes with the full desktop version is version 6.
We will be installing OpenCV in  order to use the camera, so we will need a Graphical User Interface (GUI) 
so we will install this as well.
 
To start go to https://www.raspberrypi.org/downloads/raspbian/ and download the RASPBIAN JESSIE LITE.
If you have never copied an image to an SD card follow the guide at 
https://www.raspberrypi.org/documentation/installation/installing-images/README.md
 
Once you have the image in the MicroSD Card you can insert it into your Raspberry Pi 3.
Connect the Network cable, HDMI Monitor, Raspberry Pi Camera and the  USB Keyboard. 
At this point you should be ready to power up.
 
At first start a heap of stuff will scroll up the screen while the operating system starts up and finishes with a prompt:
Login as:
 
At this point enter 
pi
it will then ask for the password, on  a brand new install this is 
raspberry
 
We are going to setup a number of hardware settings in the Raspberry Pi 3, to doo this we will run the command raspi-config, 
however some of what we want to change is pretty low level and considered dangerous, so we will need elevated access.
This can be done using the sudo command.
sudo stands for Super User Do and is safer than logging in as root, the most powerful user on the Raspberry Pi 3.
It is strongly recommended that you do not login as root as it is very easy to break your system with a poorly executed command.
 
Type in the following and press enter:
sudo raspi-config
 
This will start a text based menu system that lets you setup your Raspberry Pi 3.
 
+---------¦ Raspberry Pi Software Configuration Tool (raspi-config) +----------+
¦                                                                              ¦
¦    1 Change User Password           Change password for the default u        ¦
¦    2 Hostname                       Set the visible name for this Pi         ¦
¦    3 Boot Options                   Configure options for start-up           ¦
¦    4 Localisation Options           Set up language and regional sett        ¦
¦    5 Interfacing Options            Configure connections to peripher        ¦
¦    6 Overclock                      Configure overclocking for your P        ¦
¦    7 Advanced Options               Configure advanced settings              ¦
¦    8 Update                         Update this tool to the latest ve        ¦
¦    9 About raspi-config             Information about this configurat        ¦
¦                                                                              ¦
¦                                                                              ¦
¦                                                                              ¦
¦                     <Select>                     <Finish>                    ¦
¦                                                                              ¦
+------------------------------------------------------------------------------+
 
The first thing we will do is set a new password, since this will be high lighted in red, just press the enter key.
You will be asked for a new password, twice,  this is to prevent a typo from setting an unknown password.
 
Next we will want to set the Hostname. 
Use the down arrow to highlight this option and press enter.
Note  the instructions regarding the characters you may use in the network name.
This is the name you will see on the network for the raspberry Pi 3. 
In my case I used Fred01 The first of 3 planned Raspberry Pi 3's.
 
Next we will setup Localisation Options, so arrow down to there.
This is where we setup the type of keyboard we use, the language we speak and the time zone we are in.
Just a tip, the Raspberry Pi 3 does not have a real time clock built into it, 
instead it get the time from the internet when it starts up.
If you don't have an  internet connection for it, the clock on the Raspberry Pi 3 will be wrong.
Work your way through each of the options
Once done lets look into the more interesting  Interfacing Options.
 
+---------¦ Raspberry Pi Software Configuration Tool (raspi-config) +----------+
¦                                                                              ¦
¦    P1 Camera                        Enable/Disable connection to the         ¦
¦    P2 SSH                           Enable/Disable remote command lin        ¦
¦    P3 VNC                           Enable/Disable graphical remote a        ¦
¦    P4 SPI                           Enable/Disable automatic loading         ¦
¦    P5 I2C                           Enable/Disable automatic loading         ¦
¦    P6 Serial                        Enable/Disable shell and kernel m        ¦
¦    P7 1-Wire                        Enable/Disable one-wire interface        ¦
¦    P8 Remote GPIO                   Enable/Disable remote access to G        ¦
¦                                                                              ¦
¦                                                                              ¦
¦                                                                              ¦
¦                                                                              ¦
¦                     <Select>                     <Back>                      ¦
¦                                                                              ¦
+------------------------------------------------------------------------------+
 
Go into each of the options and turn on the following:
P1 Camera
P2 SSH
P3 VNC
P5 I2C
The other options are optional, but I will not be using them during my blogs on Fred's build.
 
Forget about the overclock, you can not overclock the Raspberry Pi 3, this feature was used on the Raspberry Pi 1 and 2.
 
In Advance Options:
+---------¦ Raspberry Pi Software Configuration Tool (raspi-config) +----------+
¦                                                                              ¦
¦    A1 Expand Filesystem             Ensures that all of the SD card s        ¦
¦    A2 Overscan                      You may need to configure oversca        ¦
¦    A3 Memory Split                  Change the amount of memory made         ¦
¦    A4 Audio                         Force audio out through HDMI or 3        ¦
¦    A5 Resolution                    Set a specific screen resolution         ¦
¦    A6 GL Driver                     Enable/Disable experimental deskt        ¦
¦                                                                              ¦
¦                                                                              ¦
¦                                                                              ¦
¦                                                                              ¦
¦                                                                              ¦
¦                                                                              ¦
¦                     <Select>                     <Back>                      ¦
¦                                                                              ¦
+------------------------------------------------------------------------------+
 
Start with the Expand Filesystem, we will need the room later.
Overscan is dependent on your monitor, I found I had to turn it on.
Memory Split is how much of the installed RAM (something you can't change) is used for the Graphical Processor Unit (GPU).
I set 64 as I plan to run headless, that is no monitor, but during the setup and when we use Remote Desktop we will need some RAM.
 
As I use an external amplifier connected to the 3.5mm headphone socket, I set the Audio to Force 3.5mm Jack
 
I left the Resolution at the Default 620x480
I also left the A6 GL Driver alone.
 
At this point select Finish by using the Tab key once and the righ arrow key then press enter.
Your Raspberry Pi 3 is going to want to reboot, so let it.
 
At this point you have two options, you can  continue with the Keyboard and monitor, 
or you can connect via SSH using a terminal client.
I use Putty, and as my laptop is in a different room to the Raspberry Pi 3 I will use Putty a good small terminal program.
If you are using Putty, you will first have to find it's Internet Protocol (IP) Address,  there are a number of ways to do this.
Look it up on the router, use a scanning program to find it or at the Raspberry Pi 3 login and type
ifconfig
This will show you the IP Address.
You may want to setup a DHCP reservation address for your Raspberry Pi 3 so it end up on the same address every time you reboot.
 
Once you are logged back in work your way though the following.
Any line starting with a # does not need to be typed in, 
I did it this way so I could copy the following into a file and run it on the aspberry Pi 3
# is used for comments while the #!/bin/bash is used to tel the system the following is a list of commands.
This will take some time, and if its your first time,  
I suggest you work though reading the comments to learn what each of the commands do
 
#!/bin/bash
# update package list and the Raspberry Pi before we do anything else
# apt-get is the Aptitude Packge Manager  and is used to install programs from the debian Linux repositories.
# the -y switch will stop it from asking are you sure, this will take space.
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y install rpi-update
sudo rpi-update
# at this point the OS want's a reboot, however, we will wait until the end
 
# install an X server, this is the Graphical User Interface (GUI).
sudo apt-get -y --no-install-recommends install xserver-xorg xserver-xorg-video-fbdev
sudo apt-get -y --no-install-recommends install xinit pciutils xinput xfonts-100dpi xfonts-75dpi xfonts-scalable
sudo apt-get -y install raspberrypi-ui-mods libunicap2
 
# This next bit adds a module into the list to be loaded at startup, A reboot is required for this to be affective.
sudo sh -c "echo ' bcm2835-v4l2' >> /etc/modules"
# Of course there is always a work around and the next line eliminates the need to reboot.
sudo modprobe bcm2835-v4l2
 
 
# install the Chromium web browser, required for webkit speech recognition
sudo apt-get -y install chromium-browser
 
# install tightvnc and Remote Desktop, this will be handy later on when running MRL.
sudo apt-get -y install tightvncserver
sudo apt-get -y install xrdp
 
# install Jave version 8 ready for MRL
sudo apt-get -y install oracle-java8-jdk
 
# install git, we may need it later particularly if you continue on with the I2S setup
sudo apt-get -y install git
 
# install samba, This is the Windows SMB file shareing system, and I plan to use the to keep all my Raspberry Pi's synhronised.
sudo apt-get -y install samba samba-common-bin hfsprogs
 
# create a backup version of the samba configuration file, cause sooner or later while learning you will break it.
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup
 
# restart samba server, this is the best part of linux, you don't have to reboot the whole system, just a bit.
sudo /etc/init.d/samba restart
 
# Time to setup the MyRobotLab
# First we need to create a directory for it to live in
mkdir mrl
 
# Set the permissions on the directory for execute (this will be required later)
# I found http://www.dummies.com/computers/raspberry-pi/working-with-file-permissions-on-your-raspberry-pi/
# is a good reference for leaning about chmod, well worth the read.
sudo chmod a+x mrl
 
# Then change into the directory
cd mrl
 
# Download the MyRobotLab software into the new directory
# wget downloads a file directly from the internet.
sudo wget http://34.201.4.170/deploy/develop/myrobotlab.jar
 
# Running the myrobotlab.jar file with the -intsall flag will 
# create all the other files we need for the install
java -jar ./myrobotlab.jar -install
 
# From  kwatters work around from the MyRobotLab forums for OpenCV on the Raspberry Pi 3
# for more information visit http://myrobotlab.org/content/raspberry-pi-opencv-latest
sudo wget http://search.maven.org/remotecontent?filepath=org/bytedeco/javacv/1.1/j... -O javacv-1.1-bin.zip
unzip javacv-1.1-bin.zip
sudo cp javacv-bin/*.jar libraries/jar
sudo wget https://github.com/MyRobotLab/repo/tree/develop/org.bytedeco.javacv/1.1/opencv-linux-arm.jar
 
 
sudo reboot
 
# Ok we are now done. We have MyRobotLab installed on a Raspberry Pi 3.
# Now it time to play with it.
# have a look at http://myrobotlab.org/tutorials.
# and don't be afraid to experiment, so far none of us have put teeth into our robot :-)
# the worst you can do is corrupt it, in that case just do a re-install, you can do it,
# we know cause you have got this far.
 
 
 
 
 
 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Humanoid's picture

See Adafruit too

The Adafruit website also has some really good turorials on pi installs on various OSs too if anyone needs more info. 

GroG's picture

Great Tutorial Ray ! Nice to

Great Tutorial Ray !

Nice to have all the apt-get installed organized and capable of quick copy paste.  Also want to say how much I appreciate your desire to learn, teach and general attitude. 

Greate Post ! - someday we'll have stuff indexed so we can ask mr.turing how to install on a raspi - and his brain will have this post ;)

moz4r's picture

Thank Ray for your work ! 

Thank Ray for your work ! 

Mats's picture

Don't be afraid to experiment, so far none of us have put teeth

Hmm....

Don't be afraid to experiment, so far none of us have put teeth into our robot :-)

http://inmoov.fr/members/thomas1/album/

InMoov with teeth

:)

 

Ray.Edgley's picture

I stand corrected.......

There is always someone who has to prove me wrong :-)

I guess I stand Corrected..... :-)

Humanoid's picture

Oh my God

Mein Gott. That's truly frightening.

All you have to do is make it nag a bit and you'll have a perfect wife for someone.