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

sudo apt-get update
sudo apt-get install git
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.

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
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
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 ../..
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

**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 ../..
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

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)

sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_thread.so /usr/lib/x86_64-linux-gnu/libboost_thread-mt.so
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 ../..
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 ../..
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 ..

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

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
  • 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.

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”.

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.

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

map_ida_guarapari-20170403-3

map_voltadaufes-201903025-4

Descompacte para a pasta carmen_lcad/data

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)

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

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** ⚠️