Installing Carmen LCAD on Ubuntu 16.04 (Portuguese) - LCAD-UFES/carmen_lcad GitHub Wiki

Atualizar o apt:

sudo apt-get update

Instalar o git:

sudo apt-get install git

Baixar o Carmen e a MAE pelo git (faça o download enquanto segue os próximos passos):

git clone https://github.com/LCAD-UFES/carmen_lcad 
git clone https://github.com/LCAD-UFES/MAE.git

OBS: Se você pegar o Carmen do pendrive, faça “git pull” antes de iniciar as instalações.

Instalar as bibliotecas/pacotes abaixo:

sudo apt-get install swig \
libgtk2.0-dev \
qt-sdk \
libimlib2 libimlib2-dev \
imagemagick libmagick++-dev \
libwrap0 libwrap0-dev tcpd \
libncurses5 libncurses5-dev \
libgsl2 \
libdc1394-22 libdc1394-22-dev libdc1394-utils \
cmake cmake-gui cmake-qt-gui \
libgtkglext1 libgtkglext1-dev \
libgtkglextmm-x11-1.2-0v5 \
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 \
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 \
libgflags-dev \
libespeak-dev libfftw3-dev pkg-config \
libavcodec-dev libavformat-dev libswscale-dev libtbb2 libtbb-dev \
libjpeg-dev libpng-dev libpng++-dev libtiff-dev libjasper-dev \
libgstreamer-plugins-base1.0-dev gimp meld vim \
python-numpy python-dev python-pip python-wheel python3-numpy python3-dev \
python3-pip python3-wheel \
g++ mpi-default-dev openmpi-bin openmpi-common \
libqhull* libgtest-dev git-core \
libflann1.8 libboost1.58-all-dev libeigen3-dev \
libboost-all-dev libflann-dev libproj-dev libsuitesparse-dev libqt4-dev qt4-qmake \
make libtiff5-dev tcsh wget \
linux-headers-`uname -r` kmod libraw1394-11 libgtkmm-2.4-dev libglademm-2.4-dev \
libgtkglextmm-x11-1.2-dev libudev-dev libvtk5-dev qttools5-dev libasound2-dev \
mpg123 portaudio19-dev libjsoncpp-dev

Se o computador possui placa NVIDIA, siga os passos listados em github.com/LCAD-UFES/carmen_lcad/wiki/Installing-CUDA.

Para instalação do Eclipse, siga os passos listados em github.com/LCAD-UFES/carmen_lcad/wiki/Installing-Eclipse.

IMPORTANTE: A INSTALAÇÃO DOS PACOTES ABAIXO PODEM SEGUIR SEU CRITÉRIO DE ORGANIZAÇÃO DE DIRETÓRIOS NO SEU LINUX! POR EXEMPLO, O LOCAL MAIS COMUM É O /usr/local/ PARA PACOTES DE BIBLIOTECAS. JÁ PARA POROGRAMAS COMO O ECLIPSE O MAIS COMUM É o diretório /opt/ DE FORMA QUE ESSES PACOTES FICARÃO DISPONÍVEIS PARA TODOS OS USUÁRIOS DA MÁQUINA (PARA ACESSAR AS PASTAS DE INSTALAÇÃO, POIS QUANDO O PACOTE É INSTALADO A MAIORIA JÁ É INSTALADA PARA TODOS OS USÚARIOS)

SE VOCÊ PREFERIR UM OUTRO MODELO QUE SUGERIMOS É CRIAR UMA PASTA NA SUA HOME COM NOME packages_carmen PARA CENTRALIZAR E SEPARAR ESSES PACOTES.

ABAIXO DE CADA PASSO DE INSTALACAO HAVERA UMA BLOCO DE “Comandos acima em uma linha”. ESSA OPCAO JUNTA TODOS OS COMANDOS DO PASSO EM UMA UNICA LINHA DE CODIGO. SE VOCE AINDA NAO INSTALOU O CARMEN MAIS DE 5 VEZES, NAO USE ESSA OPCAO

ESSA INSTALAÇÃO SEGUIRÁ O MODELO DE INSTALAÇÃO no ~/packages_carmen LEMBRE-SE DE APAGAR AS PASTAS COMPACTADAS (tar.gz etc) APÓS TERMINAR AS INSTALAÇÕES

Instalar OpenCV 3.1:

cd ~/packages_carmen
wget https://github.com/opencv/opencv/archive/3.1.0.tar.gz -O opencv_3.1.0.tar.gz
tar -zxvf opencv_3.1.0.tar.gz
cd opencv-3.1.0/
mkdir build
cd build/
cmake -D BUILD_TIFF=ON -D WITH_CUDA=OFF -D ENABLE_AVX=OFF -D WITH_OPENGL=OFF -D WITH_OPENCL=OFF -D WITH_IPP=OFF -D  WITH_TBB=ON -D WITH_EIGEN=OFF -D WITH_V4L=OFF -D WITH_VTK=OFF -D BUILD_TESTS=OFF -D  BUILD_PERF_TESTS=OFF -D CMAKE_BUILD_TYPE=RELEASE ..
make -j8
sudo make install
cd ../..

Comandos acima em uma linha:

wget https://github.com/opencv/opencv/archive/3.1.0.tar.gz -O opencv_3.1.0.tar.gz && tar -zxvf opencv_3.1.0.tar.gz && tar -zxvf opencv_3.1.0.tar.gz && cd opencv-3.1.0/ &&  mkdir build && cd build/ && cmake -D BUILD_TIFF=ON -D WITH_CUDA=OFF -D ENABLE_AVX=OFF -D WITH_OPENGL=OFF -D WITH_OPENCL=OFF -D WITH_IPP=OFF -D  WITH_TBB=ON -D WITH_EIGEN=OFF -D WITH_V4L=OFF -D WITH_VTK=OFF -D BUILD_TESTS=OFF -D  BUILD_PERF_TESTS=OFF -D CMAKE_BUILD_TYPE=RELEASE .. && make -j8 && sudo make install

NA compilação pode aparecer o erro de “Hdf5 nÃo encontrado”, para resolver, edit o arquivo common.cmake (no diretório ../opencv/modules/python) e , (logo abaixo da linha set(PYTHON_SOURCE_DIR “${CMAKE_CURRENT_SOURCE_DIR}/../”), insira as seguintes linhas:

find_package(HDF5)
include_directories(${HDF5_INCLUDE_DIRS})
recrie a pasta build e compile novamente

Instalar bullet, FANN e Kvaser SDK

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 "https://www.kvaser.com/downloads-kvaser/?utm_source=software&utm_ean=7330130980754&utm_status=V5.22.392" -O linuxcan.tar.gz

NOTA: O PROCEDIMENTO ANTERIOR PARA BAIXAR A LINUXCAN.TAR.GZ ERA IR NO SITE “www.kvaser.com/downloads-kvaser/”, IR NA OPÇÃO “Kvaser LINUX Driver and SDK”, CLICAR EM “older versions”, E FINALMENTE EM V5.22.392. O DOWNLOAD USANDO WGET ESTÁ EM TESTE. POR FAVOR, REPORTE SE A INSTALAÇÃO DA LINUXCAN NÃO FUNCIONAR NA SUA MÁQUINA.

tar -xvf bullet-2.78-r2387.tgz
tar -xvf linuxcan.tar.gz
tar -xvf FANN-2.2.0-Source.tar.gz

Comandos acima em uma linha:

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 "https://www.kvaser.com/downloads-kvaser/?utm_source=software&utm_ean=7330130980754&utm_status=V5.22.392" -O linuxcan.tar.gz && tar -xvf bullet-2.78-r2387.tgz && tar -xvf linuxcan.tar.gz && tar -xvf FANN-2.2.0-Source.tar.gz

Continuando a instala’c~ao:

cd bullet-2.78
./configure
make
sudo make install

cd ../linuxcan
make
sudo make install 

cd ../FANN-2.2.0-Source 
mkdir build && cd build
cmake ..
make
sudo make install
cd ../..

Comandos acima em uma linha:

cd bullet-2.78 && ./configure && make && sudo make install && cd ../linuxcan && make && sudo make install && cd ../FANN-2.2.0-Source && mkdir build && cd build && cmake .. && make && sudo make install && cd ../..

Intalar a versao 2.11 do flycapture

git clone https://github.com/RhobanDeps/flycapture.git
cd flycapture
sudo sh install_flycapture.sh
cd ..

Comandos acima em uma linha:

git clone https://github.com/RhobanDeps/flycapture.git && cd flycapture && sudo sh install_flycapture.sh && cd ..

Depois de instalar as dependências adicionar a linha abaixo no arquivo /etc/modules (PRECISA?):

raw1394

Instalar PCL 1.8 (Demora bastante. USAR ‘-j’ PODE TRAVAR A MÁQUINA!)

**Dica: inicie a instalação a noite e vá dormir.

wget https://github.com/PointCloudLibrary/pcl/archive/pcl-1.8.0.tar.gz
tar -xf pcl-1.8.0.tar.gz
cd pcl-pcl-1.8.0
mkdir build && cd build
cmake ..
make
sudo make install
cd ../..

Comandos acima em uma linha:

wget https://github.com/PointCloudLibrary/pcl/archive/pcl-1.8.0.tar.gz && tar -xf pcl-1.8.0.tar.gz && cd pcl-pcl-1.8.0 && mkdir build && cd build && cmake .. && make && sudo make install && cd ../..

Instalar bibliotecas para usar KINECT

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
sudo make install
cd ..

wget https://github.com/OpenKinect/libfreenect/archive/v0.5.7.tar.gz
tar -xzvf v0.5.7.tar.gz
cd libfreenect-0.5.7
mkdir build && cd build
cmake ..
cp src/libfreenect.pc ../../
make
cp ../src/libfreenect.pc.in src/libfreenect.pc 
cp ../fakenect/fakenect.sh.in fakenect/fakenect.sh
sudo make install
sudo ldconfig /usr/local/lib64/
cd ../..

Comandos acima em uma linha:

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 && sudo make install && cd .. && wget https://github.com/OpenKinect/libfreenect/archive/v0.5.7.tar.gz && tar -xzvf v0.5.7.tar.gz && cd libfreenect-0.5.7 && mkdir build && cd build && cmake .. && cp src/libfreenect.pc ../../ &&  make && cp ../src/libfreenect.pc.in src/libfreenect.pc && cp ../fakenect/fakenect.sh.in fakenect/fakenect.sh && sudo make install && sudo ldconfig /usr/local/lib64/ && cd ../..

Para testar Execute:

freenect-glview

Instalar biblioteca G2O (LEIA ATENTAMENTE!):

Dica: Reinicie a máquina antes, é uma instalação demorada e com chances de travar a máquina.

Se estiver com o g2o antigo, remova-o do local onde foi baixado Ex:

/usr/local/g2o ou ~/packages_carmen/g2o

e as seguintes pastas se existirem:

/usr/local/include/g2o
/usr/local/lib/libg2o*
Você leu atentamente?!

Se houver alguma forma mais eficiente, por favor contribua! =D

Fica a seu critério usar o /usr/local ou o ~/packages_carmen para instalar essa lib, se usar o /usr/local todos os comandos tem que ser sudo.

MODELO DE INSTALAÇÃO PARA VERSÃO NOVA do g2o

Tenha certeza de ter lido atentamente o texto anterior até aqui!
cd ~/packages_carmen
git clone https://github.com/RainerKuemmerle/g2o.git
cd g2o
mkdir build && cd build
cmake ../ -DG2O_BUILD_EXAMPLES=OFF
make -j 8
sudo make install
cd ../..

Caso no futuro haja alguma problema de compatibilidade com essa LIB, um fork na ultima versão funcionando está no git do lcad (aqui)

Faça o link abaixo da boost

sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_thread.so /usr/lib/x86_64-linux-gnu/libboost_thread-mt.so

Instalar dlib:

cd ~/packages_carmen
git clone https://github.com/davisking/dlib.git
cd dlib/
git checkout v19.17
git pull origin v19.17
mkdir build && cd build
cmake ..
make -j 8
sudo make install
cd ../..

Comandos acima em uma linha:

cd ~/packages_carmen && git clone https://github.com/davisking/dlib.git && cd dlib/ && git checkout v19.17 &&  git pull origin v19.17 && mkdir build && cd build && cmake .. && make -j 8 && sudo make install && cd ../..

Instalar libwnn:

git clone http://github.com/filipemtz/libwnn
cd libwnn
mkdir build && cd build
cmake ..
make -j 8
sudo make install
cd ../..

Comandos acima em uma linha:

git clone http://github.com/filipemtz/libwnn && cd libwnn && mkdir build && cd build && cmake .. && make -j 8 && sudo make install && cd ../..

Observação: Caso o seguinte erro aconteça:

CMake Warning at /home/mscdo/opencv-3.1.0/cmake/OpenCVConfig.cmake:166 (message):
  Found OpenCV Windows Pack but it has no binaries compatible with your
  configuration.

  You should manually point CMake variable OpenCV_DIR to your build of OpenCV
  library.
Call Stack (most recent call first):
  example/mnist/CMakeLists.txt:2 (find_package)

CMake Error at example/mnist/CMakeLists.txt:2 (find_package):
  Found package configuration file:

    /home/mscdo/opencv-3.1.0/cmake/OpenCVConfig.cmake

  but it set OpenCV_FOUND to FALSE so package "OpenCV" is considered to be
  NOT FOUND.

Apague o conteúdo da pasta build para remover os arquivos de configuração, e refaça o comando cmake adicionando o caminho para a pasta build da OpenCV:

rm -rf libwnn/build/*
cd libwnn/build
cmake -D OpenCV_DIR=~/packages_carmen/opencv-3.1.0/build/ ..
make -j 8
sudo make install
cd ../..

Instalar GSL

wget ftp://ftp.gnu.org/gnu/gsl/gsl-2.4.tar.gz
tar -zxvf gsl-*.*.tar.gz
cd gsl-2.4
./configure 
make
sudo make install
cd ..

Comandos acima em uma linha:

wget ftp://ftp.gnu.org/gnu/gsl/gsl-2.4.tar.gz && tar -zxvf gsl-*.*.tar.gz && cd gsl-2.4 && ./configure && make && sudo make install && cd ..

Instalar IMLIB

Vá para a pasta carmen_lcad/ubuntu_packages e execute os comandos abaixo:

sudo dpkg -i imlib_1.9.15-20_amd64.deb 
sudo dpkg -i imlib-devel_1.9.15-20_amd64.deb

TO DO: Checar se os passos abaixo são mesmo necessários ((*(Vinicius esta testando)*)).

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

Instalar Porcupine -(pular)

Este passo esta desativado. O github do Porcupine foi atualizado e não consta mais o modo de instalação descrito

 cd packages_carmen
 git clone https://github.com/Picovoice/Porcupine.git
 cd Porcupine
 tools/optimizer/linux/x86_64/pv_porcupine_optimizer -r resources/ -p linux -o . -w "ok e ara"
 export SYSTEM=linux
 export MACHINE=x86_64
 cd demo/alsa
 g++ -O3 -o alsademo -I../../include -L../../lib/${SYSTEM}/$MACHINE -Wl,-rpath ../../lib/${SYSTEM}/$MACHINE main.cpp -lpv_porcupine -lasound
 cp ../../ok\ e\ ara_linux.ppn ../../resources/keyword_files/pineapple_linux.ppn
 ./alsademo

Voice Interface

  • Caso deseje utilizar a interface de voz, siga o link de instalação em:

github.com/LCAD-UFES/carmen_lcad/wiki/Installing-Voice-Interface

** Será necessário uma conta Google Cloud Console com a opção de crédito habilitada.

Preparação para instalação da MAE e do CARMEN

Edite o .bashrc (gedit ~/.bashrc) e coloque no final

#CARMEN
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export CARMEN_HOME=~/carmen_lcad
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/lib/x86_64-linux-gnu:/usr/lib/i386-linux-gnu/:/usr/lib/libkml:$CARMEN_HOME/lib
export PATH=$PATH:$CARMEN_HOME/bin

#OpenJaus
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CARMEN_HOME/sharedlib/OpenJAUS/libopenJaus/lib:$CARMEN_HOME/sharedlib/OpenJAUS/libjaus/lib:$CARMEN_HOME/sharedlib/OpenJAUS/ojTorc/lib:$CARMEN_HOME/sharedlib/OpenJAUS/ojIARASim/lib

#MAE
export MAEHOME=~/MAE
export PATH=$PATH:$MAEHOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MAEHOME/lib

#Darknet
export DARKNET_HOME=$CARMEN_HOME/sharedlib/darknet
export LD_LIBRARY_PATH=$DARKNET_HOME/lib:$LD_LIBRARY_PATH

#Darknet2
export DARKNET2_HOME=$CARMEN_HOME/sharedlib/darknet2
export LD_LIBRARY_PATH=$DARKNET2_HOME/lib:$LD_LIBRARY_PATH

#CUDA
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export CUDA_LIBS=/usr/local/cuda/lib64

#Voice Interface
export GOOGLE_APPLICATION_CREDENTIALS=~/credentials/voice_interface_credentials.json
export PYTHONPATH=$PYTHONPATH:$CARMEN_HOME/src/voice_interface
export SYSTEM=linux
export MACHINE=x86_64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CARMEN_HOME/packages_carmen/Porcupine/lib/linux/x86_64

#NOD_Tracker - sempre por ultimo
export PYTHONPATH=$CARMEN_HOME/src/neural_object_detector3/pedestrian_tracker:$PYTHONPATH

Atualize as variáveis de ambiente em todos os terminais executando o comando “bash”.

Se você usa Caffe, siga os passos de instalação listados em github.com/LCAD-UFES/carmen_lcad/wiki/Installing-Caffe.

Instalar a MAE

Tenha certeza que o bash foi atualizado de forma que as variáveis de ambiente sejam carregadas.

cd $MAEHOME
make

Verifique se a biblioteca da MAE libnet_conn.a foi gerado em MAEHOME/lib e se o compilador da MAE netcomp foi gerado em MAEHOME/bin.

Instalar o CARMEN

IMPORTANTE: (1) Se o seu computador não possui placa de vídeo NVIDIA, Editar o Makefile com ‘gedit ../src/Makefile &’ e comentar os pacotes ‘tracker’, ‘neural_object_detector’ e ‘traffic_light’.

cd $CARMEN_HOME/src
./configure --nojava  --nozlib --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
enter nessa linha -> Install path [/usr/local/]: 
Robot numbers [*]: 1,2

Para compilar, use o script make_all. Ele limpa os arquivos gerados no make anterior (make clean) e executa a instalação de todos os pacotes do Carmen. *Parabéns ao Rafael por ter escrito este script! =D* O script do Rafael tem duas etapas. Na primeira, ele pode mostrar alguns erros na tela, mas não tem problema. Na segunda etapa, é onde a compilação acontece de verdade. Nessa fase, o script deveria ir até o final sem erros. Quem quiser, pode usar o comando ‘make’ na pasta carmen_lcad/src (veja observações abaixo).

cd ..
cd bin
./make_all        (veja abaixo antes de prosseguir)

IMPORTANTE 1: Se der erro na compilação por falta da biblioteca lippicv (modulos Road_finding, moving_objets..) localize a biblioteca libippicv (find /usr/local/ -name “libippicv*” ) e coloque a pasta onde ela está localizada no path, ou simplesmente copie a mesma para a pasta usr/local/lib

IMPORTANTE 2: Em função da ordem de compilação do Carmen, podem aparecer erros do tipo “carmen/web_cam_interface.h: No such file or directory” durante a compilação de alguns módulos. Quando isso acontecer, entre na pasta do modulo (e.g., “web_cam”) que apresentou erro, compile o mesmo, e tente novamente. Isso pode acontecer com bibliotecas também durante a fase de linking. Nesse caso, o erro vai ser algo como “cannot find -llane_detector_interface”. A solução é a mesma do caso anterior, entre no diretório “lane_detector”, compile o módulo, e tente novamente.

IMPORTANTE 4: Se der o erro “bash: ./configure: Permissão negada”. Realize o comando chmod +x configure

Baixar mapas do carro atualizado (obs.:Ajude a manter esses links atualizados!)

map_ida_guarapari-20170403-3

map_voltadaufes-201903025-4

Descompacte para a pasta carmen_lcad/data

Para armazenar seu login e senha do git:

git config credential.helper store

Git will store your credentials in clear text in a local file (.git-credentials) under your project directory (see below for the “home” directory)

Teste a instalação

Para testar se a instalação foi bem sucedida, execute o Carmen seguindo os passos no vídeo First execution of Carmen software.

Somente para instalação na IARA

Caso a instalação do Carmen esteja sendo feita no computador da IARA, acesse Passos adicionais para instalação no computador da IARA.

⚠️ **GitHub.com Fallback** ⚠️