Full installation instructions
(→Sound) |
(→Raspicam) |
||
(3 intermediate revisions by one user not shown) | |||
Line 10: | Line 10: | ||
===Opencv 3.4=== | ===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 | 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. | + | 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 | Once fetched and available on the raspberry, then | ||
− | |||
Unpack and install: | Unpack and install: | ||
− | unzip raspicam-0.1. | + | unzip raspicam-0.1.9.zip |
− | cd raspicam-0.1. | + | 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 147: | Line 149: | ||
cd ~/Music | cd ~/Music | ||
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=== |
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]
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]
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"