Full installation instructions: Difference between revisions

From Rsewiki
Line 15: Line 15:
or get the file from sourceforge with no GUI, with:
or get the file from sourceforge with no GUI, with:


  wget --no-check-certificate -O raspicam-0.1.6.zip https://downloads.sourceforge.net/project/raspicam/raspicam-0.1.6.zip?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fraspicam%2F%3Fsource%3Dtyp_redirect&ts=1486483484&use_mirror=netix
  wget --no-check-certificate -O raspicam-0.1.8.zip https://downloads.sourceforge.net/project/raspicam/raspicam-0.1.8.zip?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fraspicam%2F%3Fsource%3Dtyp_redirect&ts=1486483484&use_mirror=netix


or part of mission files on SVN (version 0.1.6)
or part of mission files on SVN (version 0.1.6)
Line 22: Line 22:


Unpack and install:
Unpack and install:
  unzip raspicam-0.1.6.zip
  unzip raspicam-0.1.8.zip
  cd raspicam-0.1.6
  cd raspicam-0.1.8
  mkdir build
  mkdir build
  cd build
  cd build

Revision as of 09:35, 26 January 2020

Back to Robobot


Installation instruction on the raspberry

Install raspberry pi version of Linux on a micro-SD, instructions can be found here:

Install on raspberry first section (prerequisites).

Raspicam

A rather short raspberry pi camera API is available from https://www.uco.es/investiga/grupos/ava/node/40. And can be downloaded from https://sourceforge.net/projects/raspicam/files/,

or get the file from sourceforge with no GUI, with:

wget --no-check-certificate -O raspicam-0.1.8.zip https://downloads.sourceforge.net/project/raspicam/raspicam-0.1.8.zip?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fraspicam%2F%3Fsource%3Dtyp_redirect&ts=1486483484&use_mirror=netix

or part of mission files on SVN (version 0.1.6)

Once fetched and available on the raspberry, then

Unpack and install:

unzip raspicam-0.1.8.zip
cd raspicam-0.1.8
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

The library is installed in /usr/local, and therefore to make cmake find it the path needs to be added to startup configuration, in file ~/.bashrc

nano ~/.bashrc
add at the end:
export CMAKE_PREFIX_PATH=/usr/local/lib

(needs a re-logon to be activated, or repeat on the command line)

Opencv 3.4

Install opencv version 3.4 (as of Jan 2020 it is version 3.4.9)

sudo apt purge wolfram-engine
sudo apt purge libreoffice*
sudo apt autoremove
cd
mkdir -p git
cd git
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
cd opencv
mkdir build
cd build
# create makefiles, also for all modules in the opencv_contrib (e.g. ArUco code detect)
cmake -D CMAKE_BUILD_TYPE=RELEASE -D OPENCV_EXTRA_MODULES_PATH=~/git/opencv_contrib/modules
# inspect printout to see if needed features are enabled
# use -j2 option not to overload or overheat the processor (j2 means use 2 cores only)
# this probably takes more than an hour.
# if the compilation crashes about halfway or so, it is probably due to lack of memory
#    then just start the compile again, and it is likely to continue (at least for a while)
make -j2
# install into /usr/local
sudo make install
# load environment settings
sudo ldconfig

Userland-master

-- not needed.

To be able to install mobotware (not used pt on ROBOBOT)

Follow the guide under REGBOT for userland-master install - Install on raspberry

DNSMASQ

To enable the ROBOBOT to be connected directly to a PC, then it is easier if the ROBOBOT provides an IP for the PC.

Install DNSMASQ

sudo apt install dnsmasq

allow dnsmasq to provide IP to pear-to-pear networks Edit the /etc/dnsmasq.conf (nano is a small text editor, fine for editing configuration files owned by Linux root)

sudo nano /etc/dnsmasq.conf
find and change/add the following line (a bit down, eg to serch use: ctrl-W dhcp-range)
dhcp-range=192.168.17.100,192.168.17.150,12h

To work, the eth0 must have an IP, if noone provides one, change /etc/dhcpcd.conf (dhcp client deamon) to have a default IP, if no DHCP server is available

Edit of /etc/dhcpcd.conf to have a fall back behaviour for eth0 and eth1.

sudo nano /etc/dhcpcd.conf
Add the following lines at the end (uncomment and modify):
# define static profile
profile static_eth0
static ip_address=192.168.17.1/24
# static routers=192.168.0.1
# static domain_name_servers=192.168.0.1

# fallback to static profile on eth0
interface eth0
fallback static_eth0 

This will also give a default IP for an eventual second network (usb-to-cable) if needed

Now, after a reboot, you should be able to connect a PC directly with at network cable to a PC, and the PC should get an IP from the raspberry, so now

ssh local@192.168.17.1

Sound

To use the sound system install

sudo apt install espeak
sudo apt-get install sox libsox-fmt-all

The first speaks english using a command like

espeak -s120 -ven+f3 -a30 "This robot speaks English with a female voice and amplitude 30, at speed 120."

Code for other languages can be found at http://espeak.sourceforge.net/languages.html

The second line allows to play sound files, like

play -v0.1 music.mp3

This line plays the a mp3 file with volume reduced by a factor 0.1. The at startup the blue button on the gamepad playes the file in /home/local/Music/music.mp3.
This is a symbolic link to some real music (Radetzky marsch in this case):

ls ~/Music
   radetzky-marsch_Schloss-Schoenbrunn-Konzerte_Wien_full-length.mp3
cd ~/Music
ln -s radetzky-marsch_Schloss-Schoenbrunn-Konzerte_Wien_full-length.mp3 music.mp3

Sound level

On a Raspberry pi version 3+ (not tested on other versions)

$ amixer
 Simple mixer control 'PCM',0
   Capabilities: pvolume pvolume-joined pswitch pswitch-joined
   Playback channels: Mono
   Limits: Playback -10239 - 400
   Mono: Playback 400 [100%] [4.00dB] [on]

An thus:
Setting the sound level can be done by:

amixer set PCM 0dB unmute

Setting to maximum (100%) is about the same as setting 4dB (may be too much for amplifier).

amixer set PCM 100% unmute

Regbot GUI

To run the regbot gui on the raspberry the following package is needed

sudo apt install python-pyqtgraph 

To start the GUI

cd ~/regbot/qtgui
python regbot.py

Connect to network localhost or kill the bridge and connect directly to "/dev/ttyACM0" (not com5 as is the default serial connection).

File sharing for development

Mirror the local disk on the Raspberry to a PC, make all file editing here, and then on a terminal connection to the robot to compile the software.

Share files from windows

On the windows computer install "winscp" and use it to copy files to and from the raspberry disk as needed.

There are other methods too.

Share files on Linux

On a Linux PC use sshfs for sharing. Make an empty directory for the mapped disk, and then mount

mkdir robobotdisk
sshfs local@192.168.0.2: robobotdisk

Unmount with

fusermount -u robobotdisk

Or use "sudo unmount robobotdisk"