Full installation instructions

From Rsewiki
(Difference between revisions)
Jump to: navigation, search
(Userland-master)
(Raspicam)
 
(13 intermediate revisions by one user not shown)
Line 10: Line 10:
 
===Opencv 3.4===
 
===Opencv 3.4===
  
To find installed version of opencv try
+
It should be OK just to install libopencv-dev - in December 2020 this installs version 3.2.0
  
  pkg-config --modversion opencv
+
  sudo apt install libopencv-dev
  
 +
To find the installed version of OpenCV try
 +
 +
pkg-config --modversion opencv
  
Install opencv version 3.4  (as of Jan 2020 it is version 3.4.9)
+
To install newer OpenCV version 3.4  (as of Jan 2020 it is version 3.4.9)
  
 
  cd
 
  cd
Line 48: Line 51:
  
 
===Raspicam===
 
===Raspicam===
 +
 +
NB! this should not be needed
  
 
A rather short raspberry pi camera API is available from https://www.uco.es/investiga/grupos/ava/node/40.
 
A rather short raspberry pi camera API is available from https://www.uco.es/investiga/grupos/ava/node/40.
Line 54: Line 59:
 
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.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
+
cd ~/Downloads
 
+
  wget --no-check-certificate -O raspicam-0.1.9.zip https://downloads.sourceforge.net/project/raspicam/raspicam-0.1.9.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
 
Once fetched and available on the raspberry, then
 
 
Unpack and install:
 
Unpack and install:
  unzip raspicam-0.1.8.zip
+
  unzip raspicam-0.1.9.zip
  cd raspicam-0.1.8
+
  cd raspicam-0.1.9
 
  mkdir build
 
  mkdir build
 
  cd build
 
  cd build
Line 77: Line 80:
  
 
(needs a re-logon to be activated, or repeat on the command line)
 
(needs a re-logon to be activated, or repeat on the command line)
 
  
 
===DNSMASQ===
 
===DNSMASQ===
Line 120: Line 122:
 
===Sound===
 
===Sound===
  
To use the sound system install
+
====festival====
  
sudo apt install espeak
+
Easy understandable voice, but takes time to generate
sudo apt-get install sox libsox-fmt-all
+
and require two intermediate files
  
The first speaks english using a command like
+
sudo apt install festival
 +
echo "The brown fox jumps over lazy dog" > aaa.txt
 +
text2wave aaa.txt -o aaa.wav
 +
aplay aaa.wav
  
espeak -s120 -ven+f3 -a30 "This robot speaks English with a female voice and amplitude 30, at speed 120."
+
====Music files====
  
Code for other languages can be found at http://espeak.sourceforge.net/languages.html
+
This part works
  
The second line allows to play sound files, like
+
Play sound files, like
  
 +
sudo apt-get install sox libsox-fmt-all
 
  play -v0.1 music.mp3
 
  play -v0.1 music.mp3
  
This line plays the a mp3 file with volume reduced by a factor 0.1.
+
This line plays an 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.<br>
+
The at startup the blue button on the gamepad plays the file in /home/local/Music/music.mp3.<br>
This is a symbolic link to some real music (Radetzky marsch in this case):
+
This is a symbolic link to some real music (Radetzky Marsch in this case):
  
 
  ls ~/Music
 
  ls ~/Music
Line 144: Line 150:
 
  ln -s radetzky-marsch_Schloss-Schoenbrunn-Konzerte_Wien_full-length.mp3 music.mp3
 
  ln -s radetzky-marsch_Schloss-Schoenbrunn-Konzerte_Wien_full-length.mp3 music.mp3
  
====Sound level====
+
===Sound level===
  
 
On a Raspberry pi version 3+ (not tested on other versions)
 
On a Raspberry pi version 3+ (not tested on other versions)
Line 164: Line 170:
 
  amixer set PCM 100% unmute
 
  amixer set PCM 100% unmute
  
====Regbot GUI====
+
===Regbot GUI===
  
 
To run the regbot gui on the raspberry the following package is needed
 
To run the regbot gui on the raspberry the following package is needed

Latest revision as of 13:55, 24 December 2020

Back to Robobot


Contents

[edit] 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).

[edit] Opencv 3.4

It should be OK just to install libopencv-dev - in December 2020 this installs version 3.2.0

sudo apt install libopencv-dev

To find the installed version of OpenCV try

pkg-config --modversion opencv

To install newer OpenCV version 3.4 (as of Jan 2020 it is version 3.4.9)

cd
mkdir -p git
cd git
# this method will install version 4.2 - that is not fully compatible (jan 2020)
# git clone https://github.com/opencv/opencv.git
# git clone https://github.com/opencv/opencv_contrib.git
# use this to get a version compatible with opencv 3.4
# get source (jan 2020)
wget -O opencv-3.4.zip https://github.com/Itseez/opencv/archive/3.4.zip
unzip opencv-3.4.zip
wget -O opencv_contrib-3.4.zip https://github.com/Itseez/opencv_contrib/archive/3.4.zip
unzip opencv_contrib-3.4.zip
# compile the lot, but ommit python3 support, as the compile will fail (as of jan 2020)
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 BUILD_opencv_python3=OFF -D OPENCV_EXTRA_MODULES_PATH=~/git/opencv_contrib/modules ..
cmake -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_opencv_python3=OFF -D OPENCV_EXTRA_MODULES_PATH=~/git/opencv_contrib-3.4/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

[edit] Raspicam

NB! this should not be needed

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:

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

Once fetched and available on the raspberry, then Unpack and install:

unzip raspicam-0.1.9.zip
cd raspicam-0.1.9
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)

[edit] 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

[edit] Sound

[edit] festival

Easy understandable voice, but takes time to generate and require two intermediate files

sudo apt install festival
echo "The brown fox jumps over lazy dog" > aaa.txt
text2wave aaa.txt -o aaa.wav
aplay aaa.wav

[edit] Music files

This part works

Play sound files, like

sudo apt-get install sox libsox-fmt-all
play -v0.1 music.mp3

This line plays an mp3 file with volume reduced by a factor 0.1. The at startup the blue button on the gamepad plays 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

[edit] 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

[edit] Regbot GUI

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

Additional python packages used

  • python-pyqtgraph
  • python-qt4-gl
  • python-serial
  • python-scipy
sudo apt install python-pyqtgraph python-qt4-gl python-serial python-scipy


[edit] * no python-pyqtgraph

On my 14.04 32 bit ubuntu the python-pyqtgraph package was not found using apt-get, so I

downloaded from http://www.pyqtgraph.org/ the debian package python-pyqtgraph_0.9.10-1_all.deb and installed using:

sudo dpkg -i python-pyqtgraph_0.9.10-1_all.deb
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).

[edit] 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.

[edit] 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.

[edit] 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"

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox