Mudanças entre as edições de "Doppia"

De LCAD
Ir para: navegação, pesquisa
(Criou página com 'category:Carmen Essa instalação é completa, mais é necessário testar todos os módulos. Testado na versão 12.04 LTS. A mesma para a DRC. '''<span style="color:red...')
 
 
(40 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
[[category:Carmen]]
+
[[category:Doppia]]
Essa instalação é completa, mais é necessário testar todos os módulos.
+
== Manual de instalação do projeto Doppia ==
  
Testado na versão 12.04 LTS. A mesma para a DRC.
+
=== Baixando o projeto Doppia ===
 +
<div style='text-align: justify'>
 +
Para baixar o Doppia, basta acessar o link do projeto https://bitbucket.org/rodrigob/doppia e navegar até a sessão "Downloads" ou clicar diretamente [https://bitbucket.org/rodrigob/doppia/get/6a510bea9c97.zip neste link]
 +
</div>
  
'''<span style="color:red;">Caso você tenha o Ubuntu 12.04.3 LTS utilize o tutorial [http://www.lcad.inf.ufes.br/wiki/index.php/Instala%C3%A7%C3%A3o_Carmen_para_Ubuntu_12.04.3 aqui]</span>'''
+
;Pré-requisitos:
 +
<ul>
 +
<li>Sistema operacional Linux (testado com sucesso na distribuição Ubuntu (versões 12.04.x e 14.04);</li>
 +
<li>Compilador GCC versão 4.5 ou superior;</li>
 +
<li>Unidade de processamento gráfico (GPU) com suporte a plataforma CUDA (versão 2.0 ou superior);</li>
 +
<li>Coleção de bibliotecas boost (no Ubuntu: sudo apt-get install libboost-all-dev e em seguida sudo ldconfig para definir os paths das bibliotecas recentemente instaladas);</li>
 +
<li>Biblioteca SDL - Simple DirectMedia Layer (no Ubuntu: sudo apt-get install libsdl1.2-dev);
 +
<li>Biblioteca Google Protocol Buffers (acesse http://code.google.com/p/protobuf/downloads/list para baixar e instalar);</li>
 +
<li>Biblioteca OpenCV preferencialmente na versão 2.4 ou superior (para instalar, acesse http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html#linux-installation).
 +
<br/>
 +
PS: Use CUDA enable caso possua GPU com suporte a CUDA;</li>
 +
<li>Bibliotecas libjpeg e libpng (no Ubuntu: sudo apt-get install libjpeg-dev libpng12-dev);</li>
 +
<li>CMake (no Ubuntu: sudo apt-get install cmake);</li>
 +
</ul>
 +
<br/>
  
= Preparação para a instalação do Carmen =  
+
=== Instalando o projeto Doppia ===
 
+
<div style='text-align: justify'>
Instale o SVN:
+
<ul>
 
+
<li>Ao descompactar o projeto, no diretório raíz, existe um script chamado generate_protocol_buffer_files.sh que corrige possíveis erros de diferentes versões do Google Protocol Buffers. Execute-o: source generate_protocol_buffer_files.sh;</li>
sudo apt-get install subversion
+
<li>Regenerar todos os arquivos .proto do projeto Doppia para a versão do Google Protocol Buffers instalada, através do comando: protoc --cpp_out=. <nome_do_arquivo>.proto.
 
+
<br/>
Crie o diretório roboticaprobabilistica/code/ em sua home:
+
Note que stixels.proto utiliza plane3d.proto. Para solucionar o problema copie os arquivos ../ground_plane/plane3d.p* para o diretório ../src/stereo_matching/stixels/;</li>
$ mkdir ~/roboticaprobabilistica/
+
<li>Adicione a linha de código #include <google/protobuf/io/coded_stream.h> no cabeçalho do arquivo ~/src/helpers/data/DataSequence.hpp</li>
$ mkdir ~/roboticaprobabilistica/code/
+
<li>Módulo ground_estimation: incluir os links opencv_core opencv_imgproc opencv_calib3d no arquivo CMakeList.txt (linha 129) na tag ${opencv_LIBRARIES} opencv_legacy;</li>
 
+
<li>Módulo object_detection: incluir o seguinte trecho de código no cabeçalho do arquivo ~/src/objects_detection/SoftCascadeOverIntegralChannelsFastStage.hpp:
Execute um checkout de http://www.lcad.inf.ufes.br/svn/roboticaprobabilistica/code/carmen na pasta ~/roboticaprobabilistica/code/
+
<br/>
 
+
  #if defined(__CUDACC__) // NVCC
$ cd ~/roboticaprobabilistica/code/
+
<br/>
$ svn co http://www.lcad.inf.ufes.br/svn/roboticaprobabilistica/code/carmen
+
  #define NEW_ALIGN(n) __align__(n)
 
+
<br/>
Colocar no arquivo .bashrc do usuario:
+
  #elif defined(__GNUC__) // GCC
#CARMEN
+
<br/>
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-amd64
+
    #define NEW_ALIGN(n) __attribute__((aligned(n)))
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
+
<br/>
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/lib/x86_64-linux-gnu:/usr/lib/i386-linux-gnu/:/usr/lib/libkml
+
  #else
export CARMEN_HOME=~/roboticaprobabilistica/code/carmen
+
<br/>
 
+
    #error "Define NEW_ALIGN macro for your compiler!"
 
+
<br/>
Instale as bibliotecas abaixo, com os seguintes comandos:
+
  #endif
 
+
<br/>
sudo apt-get install swig \
+
e substitua __align__(N) por NEW_ALIGN(N);
libgtk2.0-dev \
+
</li>
qt-sdk \
+
<li>Módulo object_detection: incluir o link opencv_gpu na tag ${opencv_LIBRARIES} (linha 250) do arquivo CMakeList.txt em ~/src/applications/object_detection;</li>
libqt3-mt libqt3-mt-dev qt3-dev-tools \
+
<li>Módulo object_detection: adicionar a tag ${CUDA_LIBRARIES} -L/usr/local/cuda-XX/lib (para sistemas 64 bits, use o path -L/usr/local/cuda-XX/lib64) -lcudart no arquivo CMakeList.txt (adicionar abaixo da linha 250) em ~/src/applications/object_detection;</li>
libimlib2 libimlib2-dev \
+
</ul>
imagemagick libmagick++-dev \
+
</div>
libwrap0 libwrap0-dev tcpd \
 
openjdk-6-jdk \
 
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 glew-utils1.5 \
 
libkml0 libkml-dev \
 
liburiparser1 liburiparser-dev \
 
git \
 
libusb-1.0-0 libusb-1.0-0-dev libusb-dev \
 
libxi-dev libxi6 \
 
libxmu-dev libxmu6 \
 
build-essential libforms-dev \
 
byacc \
 
flex \
 
doxygen \
 
libboost-dev libboost-thread-dev libboost-signals-dev \
 
libespeak-dev libfann-dev
 
 
 
Instale os pacotes da imlib herdados do Fedora, esses pacotes não existem nos repositórios do Ubuntu!! (eles se encontram em carmen/ubuntu_packages):
 
 
 
dpkg -i imlib_1.9.15-20_amd64.deb
 
dpkg -i imlib-devel_1.9.15-20_amd64.deb
 
 
 
Instale a biblioteca flycapture da PtGrey com os seguintes comandos:
 
cd $CARMEN_HOME/ubuntu_packages/
 
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 seguintes links:
 
 
 
ln -s /usr/lib64/libgdk_imlib.so.1.9.15 /usr/lib64/libgdk_imlib.a
 
ln -s /usr/src/linux-headers-3.2.0-29/ /usr/src/linux
 
 
 
Confira se o link funcionou:
 
ls /usr/lib64/libgdk_imlib.a
 
 
 
Instale o driver kvaser (Baixe-o [http://www.kvaser.com/en/developer/canlib.html aqui])
 
mkdir /usr/local/Kvaser
 
mv linuxcan.tar.gz /usr/local/Kvaser/
 
cd /usr/local/Kvaser/
 
tar xvzf linuxcan.tar.gz
 
cd linuxcan/
 
make
 
make install
 
 
 
Instale o OpenCV na versão 2.2 (Baixe-o [http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.2/ aqui])
 
(obs: ubuntu 12.04 instale o 2.4 com esse tutorial http://www.samontab.com/web/2012/06/installing-opencv-2-4-1-ubuntu-12-04-lts/)
 
 
 
Copie-o e descompacte-o para uma pasta, (OPENCV_HOME de preferência). Para instalar execute os seguintes comandos de dentro da pasta descompactada que você baixou:
 
 
  mkdir build
 
cd build
 
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON -D BUILD_EXAMPLES=ON ..
 
make
 
  make install (como root)
 
 
 
Instale a Bullet Phisycs na Versão 2.78 (http://code.google.com/p/bullet/downloads/detail?name=bullet-2.78-r2387.tgz&can=2&q=)
 
mkdir /usr/local/bullet
 
  mv bullet-2.78-r2387.tgz  /usr/local/bullet/
 
cd /usr/local/bullet/
 
tar xzvf bullet-2.78-r2387.tgz
 
$ ./configure
 
$ make
 
# make install (como root)
 
 
 
Instale a PCL (Point Cloud Library):
 
Instale os seguintes pacotes:
 
$ sudo apt-get install libeigen3-dev libboost-all-dev libflann-dev libvtk5-dev cmake-gui
 
 
 
Instale os pacotes:
 
$ sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
 
  $ sudo apt-get update
 
$ sudo apt-get install libpcl-all
 
 
 
 
 
Instalação da biblioteca G2O:
 
sudo apt-get install cmake libsuitesparse-dev libqt4-dev qt4-qmake libqglviewer-qt4-dev
 
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
 
 
 
= Instalação do carmen =
 
 
 
<b>Instale e configure a câmera Kinect no linux. Siga as instruções em [[ Configurando o Pioneer 3DX no CARMEN]]</b>
 
 
 
 
 
Depois dos passos acima, no diretorio src de carmen:
 
 
./configure --nocuda --nojava
 
    Should the C++ tools be installed for CARMEN: [Y/n] Y
 
    Should Python Bindings be installed: [y/N] y
 
    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
 
 
 
Caso você queira usar versões mais novas do IPC do que as que acompanham o Carmen, baixe de:
 
http://www.cs.cmu.edu/afs/cs/project/TCA/www/ipc/index.html
 
 
 
Para instalar uma nova versão do IPC, logue como root e copie o .tar.gz para /usr/local e instale:
 
cd /usr/local
 
tar xzvf ipc-3.9.0.tar.gz
 
cd ipc-3.9.0
 
make install /* este comando pode gerar mas ainda assim estar tudo OK, ver abaixo (gmake não funciona no ubuntu use make)*/
 
ln -s ipc-3.9.0 ipc
 
 
 
Para saber se está tudo OK, verifique se a instalação produziu o central e libipc.a:
 
ls /usr/local/ipc/bin/Linux-2.6/
 
ls /usr/local/ipc/lib/Linux-2.6/
 
 
 
Finalmente, para configurar Carmen com um IPC novo, use o comando configure:
 
./configure --nocuda --nojava --ipc=/usr/local/ipc
 
 
 
Para compilar o carmen rode:
 
make
 

Edição atual tal como às 08h36min de 20 de maio de 2014

Manual de instalação do projeto Doppia

Baixando o projeto Doppia

Para baixar o Doppia, basta acessar o link do projeto https://bitbucket.org/rodrigob/doppia e navegar até a sessão "Downloads" ou clicar diretamente neste link

Pré-requisitos
  • Sistema operacional Linux (testado com sucesso na distribuição Ubuntu (versões 12.04.x e 14.04);
  • Compilador GCC versão 4.5 ou superior;
  • Unidade de processamento gráfico (GPU) com suporte a plataforma CUDA (versão 2.0 ou superior);
  • Coleção de bibliotecas boost (no Ubuntu: sudo apt-get install libboost-all-dev e em seguida sudo ldconfig para definir os paths das bibliotecas recentemente instaladas);
  • Biblioteca SDL - Simple DirectMedia Layer (no Ubuntu: sudo apt-get install libsdl1.2-dev);
  • Biblioteca Google Protocol Buffers (acesse http://code.google.com/p/protobuf/downloads/list para baixar e instalar);
  • Biblioteca OpenCV preferencialmente na versão 2.4 ou superior (para instalar, acesse http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html#linux-installation).
    PS: Use CUDA enable caso possua GPU com suporte a CUDA;
  • Bibliotecas libjpeg e libpng (no Ubuntu: sudo apt-get install libjpeg-dev libpng12-dev);
  • CMake (no Ubuntu: sudo apt-get install cmake);


Instalando o projeto Doppia

  • Ao descompactar o projeto, no diretório raíz, existe um script chamado generate_protocol_buffer_files.sh que corrige possíveis erros de diferentes versões do Google Protocol Buffers. Execute-o: source generate_protocol_buffer_files.sh;
  • Regenerar todos os arquivos .proto do projeto Doppia para a versão do Google Protocol Buffers instalada, através do comando: protoc --cpp_out=. <nome_do_arquivo>.proto.
    Note que stixels.proto utiliza plane3d.proto. Para solucionar o problema copie os arquivos ../ground_plane/plane3d.p* para o diretório ../src/stereo_matching/stixels/;
  • Adicione a linha de código #include <google/protobuf/io/coded_stream.h> no cabeçalho do arquivo ~/src/helpers/data/DataSequence.hpp
  • Módulo ground_estimation: incluir os links opencv_core opencv_imgproc opencv_calib3d no arquivo CMakeList.txt (linha 129) na tag ${opencv_LIBRARIES} opencv_legacy;
  • Módulo object_detection: incluir o seguinte trecho de código no cabeçalho do arquivo ~/src/objects_detection/SoftCascadeOverIntegralChannelsFastStage.hpp:
    #if defined(__CUDACC__) // NVCC
    #define NEW_ALIGN(n) __align__(n)
    #elif defined(__GNUC__) // GCC
    #define NEW_ALIGN(n) __attribute__((aligned(n)))
    #else
    #error "Define NEW_ALIGN macro for your compiler!"
    #endif
    e substitua __align__(N) por NEW_ALIGN(N);
  • Módulo object_detection: incluir o link opencv_gpu na tag ${opencv_LIBRARIES} (linha 250) do arquivo CMakeList.txt em ~/src/applications/object_detection;
  • Módulo object_detection: adicionar a tag ${CUDA_LIBRARIES} -L/usr/local/cuda-XX/lib (para sistemas 64 bits, use o path -L/usr/local/cuda-XX/lib64) -lcudart no arquivo CMakeList.txt (adicionar abaixo da linha 250) em ~/src/applications/object_detection;