Instalação Carmen para Ubuntu 14.04
Essa instalação é completa, mas é necessário testar todos os módulos.
Índice
Preparação para a instalação do Carmen
Atualizar o apt:
sudo apt-get update
Instalar o git, gimp, meld e vim:
sudo apt-get install gimp meld vim git
Baixar o Carmen pelo git (faça o download enquanto segue os próximos passos):
git clone https://github.com/LCAD-UFES/carmen_lcad.git
Baixe a MAE via git:
git clone https://github.com/LCAD-UFES/MAE.git
Instalar os pacotes para o carmem no 14.04
sudo apt-get install swig \ libgtk2.0-dev \ qt-sdk \ libimlib2 libimlib2-dev \ imagemagick libmagick++-dev \ libwrap0 libwrap0-dev tcpd \ libncurses5 libncurses5-dev \ libgsl0-dev libgsl0ldbl \ libdc1394-22 libdc1394-22-dev libdc1394-utils \ cmake \ libgtkglext1 libgtkglext1-dev \ libgtkglextmm-x11-1.2-0 libgtkglextmm-x11-1.2-dev \ libglade2-0 libglade2-dev \ freeglut3 freeglut3-dev \ libcurl3 libcurl3-nss libcurl4-nss-dev \ libglew1.5 libglew1.5-dev libglewmx1.5 libglewmx1.5-dev libglew-dev \ libkml0 libkml-dev \ liburiparser1 liburiparser-dev \ libusb-1.0-0 libusb-1.0-0-dev libusb-dev \ libxi-dev libxi6 \ libxmu-dev libxmu6 \ build-essential libforms-dev \ byacc \ flex \ doxygen \ libespeak-dev libfftw3-dev
caso de erro em libcheese-gtk23 instale os pacotes abaixo antes dos anteriores (Solucão nao confirmada):
sudo apt-get install libglew-dev libcheese7 libcheese-gtk23 libclutter-gst-2.0-0 libcogl15 libclutter-gtk-1.0-0 libclutter-1.0-0
Instalar o Java:
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-jdk8-installer update-alternatives --display java
Edite o arquivo /etc/environment:
sudo gedit /etc/environment
Adicione no final do arquivo:
JAVA_HOME=/usr/lib/jvm/java-8-oracle
Instalar o eclipse:
Baixe o eclipse de:
https://www.eclipse.org/downloads/eclipse-packages/
Descompacte o ecplise
cd Downloads/ sudo mv eclipse-...tar.gz /opt cd /opt/ sudo tar -xvf eclipse-...tar.gz
Crie um arquivo desktop e edite ele em /usr/share/applications:
sudo gedit /usr/share/applications/eclipse.desktop
Coloque o seguinte conteudo:
[Desktop Entry] Name=Eclipse Type=Application Exec=/opt/eclipse/eclipse Terminal=false Icon=/opt/eclipse/icon.xpm Comment=Integrated Development Environment NoDisplay=false Categories=Development;IDE Name[en]=Eclipse
Instale as deps da PCL:
sudo apt-get install libeigen3-dev libboost-all-dev libflann-dev libvtk5-dev cmake-gui
Install OpenCV 3.1:
Start installing the dependencies:
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev \ python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
Download and select the correct version:
sudo mkdir /opt/opencv3.1.0/ cd /opt/opencv3.1.0/ sudo git clone https://github.com/Itseez/opencv.git sudo git clone https://github.com/Itseez/opencv_contrib.git cd opencv sudo git checkout 3.1.0 cd /opt/opencv3.1.0/opencv_contrib sudo git checkout 3.1.0 cd /opt/opencv3.1.0/opencv
Build it:
sudo mkdir build cd build sudo cmake -D -DWITH_IPP=ON -D WITH_CUDA=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_MODULES_PATH=/opt/opencv3.1.0/opencv_contrib/modules /opt/opencv3.1.0/opencv/ .. sudo make -j8 sudo make install
It is common to have problems with -lippicv using this version of OpenCV. To fix it:
Edit `/usr/local/lib/pkgconfig/opencv.pc` Add `libdir3rd=${exec_prefix}/share/OpenCV/3rdparty/lib` after libdir Add `-L${libdir3rd}` at Libs
Baixar os arquivos:
sudo su cd /usr/local/ wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/bullet/bullet-2.78-r2387.tgz wget http://downloads.sourceforge.net/project/fann/fann/2.2.0/FANN-2.2.0-Source.tar.gz wget http://www.kvaser.com/software/7330130980754/V5_3_0/linuxcan.tar.gz tar -xvf bullet-2.78-r2387.tgz tar -xvf linuxcan.tar.gz tar -xvf FANN-2.2.0-Source.tar.gz mv bullet-2.78 bullet cd bullet ./configure make make install cd .. cd linuxcan make make install cd .. cd FANN-2.2.0-Source mkdir build cd build cmake .. make make install
Edite o arquivo /etc/ld.so.conf.d/opencv.conf
gedit /etc/ld.so.conf.d/opencv.conf
Adicione ao final dele:
/usr/local/lib
Execute:
ldconfig
Edite o arquivo /etc/bash.bashrc:
gedit /etc/bash.bashrc
Adicione no final do arquivo:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH
sair do rooot
exit
Coloque no .bashrc:
#CARMEN export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/lib/x86_64-linux-gnu:/usr/lib/i386-linux-gnu/:/usr/lib/libkml export CARMEN_HOME=~/carmen_lcad #OpenJaus export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/carmen_lcad/sharedlib/OpenJAUS/libopenJaus/lib:~/carmen_lcad/sharedlib/OpenJAUS/libjaus/lib:~/carmen_lcad/sharedlib/OpenJAUS/ojTorc/lib:~/carmen_lcad/sharedlib/OpenJAUS/ojIARASim/lib #MAE export MAEHOME=~/MAE export PATH=$PATH:$MAEHOME/bin
Instale os pacotes imlib e flycapture:
cd $CARMEN_HOME/ubuntu_packages/ sudo dpkg -i imlib_1.9.15-20_amd64.deb sudo dpkg -i imlib-devel_1.9.15-20_amd64.deb tar -xvf flycapture2-2.5.3.4-amd64-pkg.tgz cd flycapture2-2.5.3.4-amd64/ sudo apt-get install libglademm-2.4-1c2a sudo apt-get install libglademm-2.4-dev sudo apt-get install libgtkmm-2.4-dev sudo sh install_flycapture.sh
Faça os links:
sudo ln -s /usr/lib64/libgdk_imlib.so.1.9.15 /usr/lib64/libgdk_imlib.a sudo ln -s /usr/src/linux-headers-3.8.0-30/ /usr/src/linux
Instale a PCL:
sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl sudo apt-get update sudo apt-get install libpcl-all
Instale a câmera Kinect:
sudo su cd /usr/local wget http://sourceforge.net/projects/libusb/files/libusb-1.0/libusb-1.0.19/libusb-1.0.19.tar.bz2 tar xvf libusb-1.0.19.tar.bz2 cd libusb-1.0.19 ./configure make make install
se der erro na instalacao acima tente instalar a udev-dev antes:
sudo apt-get install libudev-dev
mkdir /usr/local/tplib cd /usr/local/tplib git clone git://github.com/OpenKinect/libfreenect.git cd libfreenect mkdir build cd build cmake .. cp src/libfreenect.pc /usr/local/tplib/ make cp ../src/libfreenect.pc.in src/libfreenect.pc cp ../fakenect/fakenect.sh.in fakenect/fakenect.sh make install ldconfig /usr/local/lib64/ exit
Execute:
glview
Caso dê erro, tente:
freenect-glview
Se der erro execute:
sudo ldconfig /usr/local/lib64/
Instalação da biblioteca G2O 14.04:
sudo apt-get install cmake libsuitesparse-dev libqt4-dev qt4-qmake cd /usr/local/ sudo svn co https://svn.openslam.org/data/svn/g2o cd /usr/local/g2o/trunk/build/ sudo cmake ../ -DBUILD_CSPARSE=ON -DG2O_BUILD_DEPRECATED_TYPES=ON -DG2O_BUILD_LINKED_APPS=ON sudo make sudo make install
ATENCAO: Caso esteja usando o UBUNTU 14.04.3 é necessario instalar a zlib:
Para verificar sua versão, veja no campo Description, na saída do comando abaixo: lsb_release -a Caso seja o 14.04.3 faca: cd $CARMEN_HOME/ubuntu_packages sudo dpkg -i zlib1g_1.2.3.4.dfsg-3ubuntu4_amd64.deb sudo dpkg -i zlib1g-dev_1.2.3.4.dfsg-3ubuntu4_amd64.deb
Faça o link da boost:
sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_thread.so /usr/lib/x86_64-linux-gnu/libboost_thread-mt.so
Instale as bibliotecas da MAE:
sudo apt-get install make g++ freeglut3-dev byacc libforms-dev libtiff4-dev libXi-dev libXmu-dev doxygen tcsh flex libdc1394-22-dev
- Compilar a MAE:
- Pré-requisito: as variáveis de ambiente MAEHOME e PATH devem estar ajustadas;
- Entrar no diretório da MAE: "cd $MAEHOME";
- Compilar a MAE: "make".
- Verificar se a biblioteca da MAE libnet_conn.a foi gerado em MAEHOME/lib;
- Verificar se o compilador da MAE netcomp foi gerado em MAEHOME/bin.
Mais informações sobre a MAE: http://www.lcad.inf.ufes.br/wiki/index.php/M%C3%A1quina_Associadora_de_Eventos_-_MAE#Compilando_a_MAE
Instalação da dlib:
cd /usr/local sudo su git clone https://github.com/davisking/dlib.git cd dlib/ mkdir build cd build/ cmake .. {Vai reclamar de coisas CUDA. Mas pode compilar sem suporte a CUDA} make make install
Instalação da libwnn:
cd /usr/local git clone http://github.com/filipemtz/libwnn cd libwnn mkdir build cd build cmake .. make -j 4 sudo make install Atenção: em caso de problema com o opencv, faça: cd build rm -rf * cmake -DOpenCV_DIR=/usr/local/opencv-2.4.9/build/ .. make -j 4 sudo make install
Feche todos os terminais e faça:
cd $CARMEN_HOME/src ./configure --nojava --nocuda --nozlib Should the C++ tools be installed for CARMEN: [Y/n] Y Should Python Bindings be installed: [y/N] N Searching for Python2.4... Should the old laser server be used instead of the new one: [y/N] N Install path [/usr/local/]: Robot numbers [*]: 1,2
Antes de compilar o CARMEN, precisamos que o módulo tracker seja compilado separadamente para que o navigator_spline funcione:
cd $CARMEN_HOME/src/tracker make
Vai dar um erro de compilação, mas está tudo ok.
Para compilar o carmen rode:
cd $CARMEN_HOME/src make
Caso dê erro por causa da libusb.h vá no arquivo:
sudo vim /usr/local/include/libfreenect.hpp
E altere #include <libusb.h> para
#include <libusb-1.0/libusb.h>
Caso dê erro na compilacão no global por causa do z_stream tente
cd $CARMEN_HOME/src make clean ./configure --nojava --nocuda Should the C++ tools be installed for CARMEN: [Y/n] Y Should Python Bindings be installed: [y/N] N Searching for Python2.4... Should the old laser server be used instead of the new one: [y/N] N Install path [/usr/local/]: Robot numbers [*]: 1,2 make
Ajustes para a IARA
(seções abaixo apenas para serem feitas na IARA)
Para configurar o OpenJAUS siga o tutorial em :
$CARMEN_HOME/sharedlib/OpenJAUS/README_ALBERTO.txt
Para que o GPS e o XSENS sejam configurados automaticamente ao serem conectados às portas USB, copie o seguinte arquivo do diretório data do Carmen para sua máquina:
cd $CARMEN_HOME/data sudo cp 99-usb-serial.rules /etc/udev/rules.d/
Ajustes na rede para o GPS Trimble
Para conectar o novo GPS Trimble é necessário uma conexão com a Internet dentro da IARA. Optamos por usar um iPhone com conexão 3G.
Para o iPhone funcionar no Ubuntu 12.04 é necessário um tanto de coisas... Perdemos o histórico mas dá para achar na Internet (Google iPhone 4S ubuntu 12.04 mount). Precisa instalar uns pacotes (apt-get install ...). Se você tiver sucesso, vai ser possível usar o iPhone como Personal Hotspot, ou seja, usar a Internet de dentro da IARA.
Feito isso, é necessário criar um Gateway da máquina que tem acesso a Internet (car01) para uma subrede da IARA (192.168.0.0 - a subrede de Carro Network). Para isso (ver página de referência em https://help.ubuntu.com/community/Internet/ConnectionSharing (Gateway set up)), considerando o iPhone em eth2 e a subrede da IARA em eth1:
sudo iptables -A FORWARD -o eth2 -i eth1 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT sudo iptables -t nat -F POSTROUTING sudo iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE sudo iptables-save | sudo tee /etc/iptables.sav
Os comandos acima criam um NAT do iPhone para a subrede da IARA. Em seguida, é necessário editar o /etc/rc.local e adicionar a linha abaixo antes de "exit 0":
iptables-restore < /etc/iptables.sav
É necessário ainda:
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
Para tornar isso permanente, inclua as linhas abaixo em /etc/sysctl.conf:
net.ipv4.ip_forward=1 net.ipv4.conf.default.forwarding=1 net.ipv4.conf.all.forwarding=1
No Network Manager, tem que setar "Use this connection only for resources on its network" (Network Manager->IPv4 Settings->Routes) em todas as redes cabeadas exceto a do iPhone.
Pronto!
Ajustes para o Raspberry do volante
Prevenir que entre em modo de espera, proteção de tela ou desabilite o monitor
Fonte: https://raspberrypi.stackexchange.com/questions/752/how-do-i-prevent-the-screen-from-going-blank
Testado no Raspbian jessey
Only if the files don't exist install (It was not necessary):
apt-get install x11-xserver-utils
Edit the files:
/etc/xdg/lxsession/LXDE/autostart /etc/xdg/lxsession/LXDE-pi/autostart ~/.config/lxprofile/LXDE-pi/autostart
Append these lines:
@xset s noblank @xset s off @xset -dpms
Possibly also comment out the line that says @xscreensaver -no-splash, so the complete file should look something like this:
@lxpanel --profile LXDE @pcmanfm --desktop --profile LXDE # @xscreensaver -no-splash
@xset s noblank @xset s off @xset -dpms
Maybe also exist the line @point-rpi, DONT DELETE and DONT ADD in the others files!
Also edit /etc/kbd/config and make sure these values are set as follows (however I believe this is only for when the lightweight desktop (LXDE) is not running (i.e. the pi is still in text / terminal mode):
BLANK_TIME=0 BLANK_DPMS=off POWERDOWN_TIME=0
I believe that the /etc/xdg/lxsession/LXDE/autostart may be the sort of system-wide version of ~/.xinitrc but someone else probably knows the nuances better.