sábado, 7 de maio de 2011

Stage 3.2.2 no Ubuntu 11.04


É muito provável que você já tenha instalado o Player, já que esse é o primeiro passo antes de instalar o Stage. No Ubuntu 11.04, esse procedimento pode ser bastante simples já que podemos instalar o Player 3.0.2 através do apt. Entretanto se você precisar personalizar a instalação de alguma forma, poderá seguir os passos apresentados aqui.

Concluída essa primeira etapa, podemos passar a instalação do Stage propriamente dito.

Devemos começar instalando alguns pacotes que são necessários a compilação (dependências):
$ sudo apt-get install libfltk1.1-dev freeglut3-dev libglu1-mesa-dev libglut3-dev

Descompacte o pacote e mova-se para o diretório criado:
$ tar -xvf Stage-3.2.2-Source.tar.gz
$ cd Stage-3.2.2-Source


Crie um diretório para conter as informações da compilação e mova-se para ele:
$ mkdir build
$ cd build

Antes de compilar precisamos configurar os elementos do pacote, então digite:
$ cmake ..

Note que em meio as mensagens exibidas aparecerá:
-- checking for one of the modules 'websim'
  * WebSim not detected.

Don't worry. Esta mensagem não é considerada nem como de erro, nem de alerta (warning). Trata-se apenas de uma mensagem informativa. Na prática o FLTK faz todo o papel principal, tornando o WebSim coadjuvante.

Continuando, compile e instale o pacote:
$ make
$ sudo make install

Particularmente tenho o hábito de deixar os arquivos de modelo de mundo (diretório worlds) com a mesma estrutura de diretórios que a do apt, com uma pequena diferença, usar o o diretório /usr/local como base. Para isso, faça:
$ sudo cp -R ../worlds /usr/local/share/stage

Para que não seja necessário setar o valor da variável LD_LIBRARY_PATH todas as vezes que for utilizar o Stage, crie um arquivo de configuração:
$ sudo gedit /etc/ld.so.conf.d/stage.conf

... com o seguinte conteúdo:
# Stage default configuration
/usr/local/lib

Salve as alterações e recarregue o arquivo para que sejam incorporadas ao ldconfig:
$ sudo ldconfig

Pronto! Vamos testar para termos certeza de que está tudo correto:
$ stage /usr/local/share/stage/worlds/simple.world

Agora é só usar =)

Player 3.0.2 no Ubuntu 11.04


No Ubuntu 11.04 a versão do Player disponível no apt é exatamente a 3.0.2 (uhu!). Pode ser que você precise de algum driver ou recurso que não esteja disponível entre os elementos padrões da compilação (tal como, suporte a lasers Hokuyo, imu da XSens etc), então terá que compilar o pacote manualmente.

As ações e procedimentos que apresentamos a seguir tem exatamente esse objetivo. Mas antes de começar, estamos considerando que o FFmpeg, OpenCV 2.2 e o Gearbox 9.11 estão instalados e corretamente configurados.

Se você não tenha feito isto ainda, veja como pode fazê-lo aqui em um de nossos outros posts: FFmpeg + OpenCV e Gearbox

Antes de prosseguir tenha certeza de que algumas coisas estejam instaladas e tualizadas:
$ sudo apt-get update
$ sudo apt-get install build-essential cmake cmake-curses-gui

Descompacte o pacote:
$ tar -xvf player-3.0.2

Instale as dependências do Player:
$ sudo apt-get install autotools-dev freeglut3 libart-2.0-dev libtool liblodo3.0 libltdl-dev libzlcore-dev libgeos-dev libgeos-c1 swig libgnomecanvas2-dev libgtk2.0-dev libgtk2.0-cil-dev libboost-signals1.42.0 libboost-signals1.42-dev libboost-thread1.42.0 libboost-thread1.42-dev libboost1.42-dev libgsl0-dev libpqxx-dev libstatgrab-dev libstatgrab6

Crie um o diretório para versão final:
$ mkdir build
$ cd build/

Configure o pacote:
$ cmake -DLARGE_FILE_SUPPORT=ON -DBUILD_PYTHONCPP_BINDINGS=ON -DBUILD_DOCUMENTATION=ON -DENABLE_DRIVER_HOKUYO_AIST=ON -DENABLE_DRIVER_OCEANSERVER=OFF ..

Aqui as opções ON entre outras coisas são para que o Player suporte arquivos grandes, gere a documentação usando o Doxygen, além do suporte ao laser Hokuyo. Por fim, o driver OceanServer foi desabilidado pois apresenta problemas de compatibilidade de versão com o Gearbox 9.11 e não temos qualquer dispositivo que trabalhe com este tipo de servidor não tentei resolver o problema.

Agora compile e instale:
$ make
$ sudo make install

Para que não seja necessário setar o valor da variável LD_LIBRARY_PATH todas as vezes que for utilizar o Player, crie um arquivo de configuração:
$ sudo gedit /etc/ld.so.conf.d/player.conf

... com o seguinte conteúdo:
# player default configuration
/usr/local/lib

Salve as alterações e recarregue o arquivo para que sejam incorporadas ao ldconfig:
$ sudo ldconfig

Pronto! \o/

Agora vá para a pasta do usuário (ou uma outra qualquer) e faça um teste:
$ cd ~
$ player

That's all folks!

sexta-feira, 6 de maio de 2011

Gearbox

Primeiramente faça o download do fonte do pacote e descompacte:
$ wget http://sourceforge.net/projects/gearbox/files/gearbox/9.11/gearbox-9.11.tar.gz
$ tar -zxvf gearbox-9.11.tar.gz

Instale as dependências do Gearbox:
$ sudo apt-get install libboost-python-dev libzeroc-ice33-dev

Por causa de um problema com os nomes dos arquivos o cmake não irá localizar uma das libs que acabamos de instalar (libboost_python-mt-py27.so), então basta criar um link simbólico para resolver o problema:
$ sudo ln -s /usr/lib/libboost_python-mt-py27.so /usr/lib/libboost_python-mt.so

Mude para o diretório do Gearbox:
$ cd gearbox-9.11

Crie um diretório para a versão final do pacote e mude para ele:
$ mkdir build
$ cd build

Agora vamos configurar, compilar e instalar o pacote:
$ cmake ..
$ make
$ sudo make install

Devemos acrescentar o path das libs do Gearbox ao arquivo ld.so.conf para que seja possível a sua localização automática. Para isso acrescente o texto /usr/local/lib/gearbox em uma nova linha do arquivo.

$ sudo gedit /etc/ld.so.conf

Recarregue o arquivo para que as alterações sejam consideradas:
$ sudo ldconfig

Além disso é necessário corrigir alguns arquivos de configuração. A compilação não chega a criar todos os arquivos necessários e alguns apresentam um erro de sintaxe que compromete a resposta do comando pkg-config.

Acesse o diretório onde estão as informações para o pkg-config
$ cd /usr/local/lib/pkgconfig

Substitua o ponto-e-virgula por um espaço nas entradas “Requires” dos arquivos: GbxGarminAcfr.pc, GbxNovatelAcfr.pc, GbxSickAcfr.pc e GbxSmartBatteryAcfr.pc, separando as dependências que a lib em questão possui.
$ sudo gedit GbxGarminAcfr.pc GbxNovatelAcfr.pc GbxSickAcfr.pc GbxSmartBatteryAcfr.pc

Agora vamos criar os arquivos que estão faltando:
$  sudo gedit GbxIceUtilAcfr.pc GbxLockFileAcfr.pc GbxNovatelUtilAcfr.pc GbxSerialDeviceAcfr.pc GbxUtilAcfr.pc

Os conteúdos serão, respectivamente:
Name: GbxIceUtilAcfr
Description: Part of GearBox.
Version: 1.0.0
Requires:
Libs: -L/usr/local/lib/gearbox  -lGbxIceUtilAcfr 
Cflags: -I/usr/local/include/gearbox

Name: GbxLockFileAcfr
Description: Part of GearBox.
Version: 1.0.0
Requires:
Libs: -L/usr/local/lib/gearbox  -lGbxLockFileAcfr 
Cflags: -I/usr/local/include/gearbox

Name: GbxNovatelUtilAcfr
Description: Part of GearBox.
Version: 1.0.0
Requires:
Libs: -L/usr/local/lib/gearbox  -lGbxNovatelUtilAcfr 
Cflags: -I/usr/local/include/gearbox

Name: GbxSerialDeviceAcfr
Description: Part of GearBox.
Version: 1.0.0
Requires:
Libs: -L/usr/local/lib/gearbox  -lGbxSerialDeviceAcfr 
Cflags: -I/usr/local/include/gearbox

Name: GbxUtilAcfr
Description: Part of GearBox.
Version: 1.0.0
Requires:
Libs: -L/usr/local/lib/gearbox  -lGbxUtilAcfr 
Cflags: -I/usr/local/include/gearbox
Salve todos os arquivos e verifique se está tudo correto, digitando:
$ pkg-config --libs flexiport Gbx* hokuyo_aist

Espera-se que o resultado seja algo parecido com (mesmo que em ordem diferente):
-L/usr/local/lib/gearbox -lGbxGarminAcfr -lGbxNovatelAcfr -lGbxNovatelUtilAcfr -lGbxSickAcfr -lGbxIceUtilAcfr -lGbxSerialDeviceAcfr -lGbxSmartBatteryAcfr -lGbxSerialAcfr -lGbxLockFileAcfr -lGbxUtilAcfr -lhokuyo_aist -lflexiport

Para outras informações visite o site do projeto em http://gearbox.sourceforge.net/

That's it! =)

quinta-feira, 5 de maio de 2011

Instalando o OpenCV 2.2 no Ubuntu 11.04

Primeiramente é necessário instalar o FFmpeg

Se você não for realizar qualquer Instale o FFmpeg e suas dependências:
$ sudo apt-get install ffmpeg libavcodec52 libavdevice52 libavfilter1 libavformat52 libavutil50 libdc1394-22 libgsm1 libpostproc51 libschroedinger-1.0-0 libswscale0 libva1 libvpx0

Baixe o OpenCV 2.2 e descompacte o pacote:
$ wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.2/OpenCV-2.2.0.tar.bz2
$ tar -xvf OpenCV-2.2.0.tar.bz2

Mova-se para o diretório do OpenCV:
$ cd OpenCV-2.2.0

Instale todas as dependências
$ sudo apt-get install libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libdc1394-22-dev libraw1394-dev libv4l-dev libgtk2.0-dev libjpeg62-dev libjasper-dev libtiff4-dev libtiffxx0c2 python-numpy libssl-dev python2.7-dev libblas3gf libgfortran3 liblapack3gf libgstreamermm-0.10-dev libglibmm-2.4-dev libgstreamer-plugins-base0.10-dev libgstreamer0.10-dev libgstreamermm-0.10-2 libsigc++-2.0-dev libxml++2.6-2 libxml++2.6-dev libxml2-dev

Há um pequeno problema com relação ao include do Video For Linux (v4l) no arquivo cap_v4l.cpp. Aqui há duas opções:

(1) Editar o arquivo para acrescentar o caminho correto:

$ gedit modules/highgui/src/cap_v4l.cpp
Comente a instrução #include <linux/videodev.h> na linha 217 (aproximadamente), e
Acrescente #include <libv4l1-videodev.h>
Salve o arquivo
    (2) Criar um link simbólico redirecionando a procura pelo arquivo inexistente para o local correto:

    $ sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h

      Agora podemos compilar:
      $ mkdir release
      $ cd release
      $ cmake ..
      $ make
      $ sudo make install