Instalação Carmen para Ubuntu 14.04

De LCAD
Revisão de 18h10min de 30 de novembro de 2017 por Vinicius Brito (discussão | contribs)
Ir para: navegação, pesquisa


Essa instalação é completa, mas é necessário testar todos os módulos.

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
  1. Compilar a MAE:
    1. Pré-requisito: as variáveis de ambiente MAEHOME e PATH devem estar ajustadas;
    2. Entrar no diretório da MAE: "cd $MAEHOME";
    3. Compilar a MAE: "make".
    4. Verificar se a biblioteca da MAE libnet_conn.a foi gerado em MAEHOME/lib;
    5. 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.