Hoy nos pusimos a instalar Player & Stage en máquinas con Ubuntu 11.10, los paquetes requeridos para instalar y compilar tanto el Player como el Stage son:
#Antes de bajar los paquetes es recomendable actualizar los páquetes ya instalados:
sudo apt-get update sudo apt-get upgrade
#Básicos
sudo apt-get install autotools-dev build-essential cmake cpp libboost-signals1.42.0 libboost-signals1.42-dev libboost-thread1.42.0 libboost-thread1.42-dev libcv2.1 libcv-dev libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-dev libgnomecanvas2-0 libgnomecanvas2-dev libgsl0-dev libgtk2.0-dev libjpeg62-dev libtool libxmu-dev swig python-dev libhighgui-dev libcvaux-dev
# Para Stage
sudo apt-get install freeglut3 freeglut3-dev libfltk1.1 libfltk1.1-dev libltdl7 libltdl7-dev libpng12-0-dev libpng12-0
# Fuentes de player y stage usados: player-3.0.2.tar.gz Stage-3.2.2-Source.tar.gz
Observaciónes:
Si al compilar Stage aparece el siguiente error y similares:
main.cc:(.text.startup+0x34b): undefined reference to `Fl::run()' libstage.so.3.2.2: undefined reference to `Fl_File_Chooser::value(int)' libstage.so.3.2.2: undefined reference to `fl_alert(char const*, ...)' libstage.so.3.2.2: undefined reference to `Fl_Shared_Image::get(char const*, int, int)' ...
Para corregir este error es necesario agregar la opción -Wl,–no-as-needed a las opciones del compilador. Esto se hace en el archivo CMakeLists.txt
donde las líneas
SET (CMAKE_CXX_FLAGS_RELEASE " -O3 -DNDEBUG ${WALL} " CACHE INTERNAL "C Flags for release" FORCE) SET (CMAKE_CXX_FLAGS_DEBUG " -ggdb ${WALL} " CACHE INTERNAL "C Flags for debug" FORCE) SET (CMAKE_CXX_FLAGS_PROFILE " -O3 -ggdb -pg ${WALL} " CACHE INTERNAL "C Flags for profile" FORCE)
Las cambié por:
SET (CMAKE_CXX_FLAGS_RELEASE " -O3 -DNDEBUG -Wl,--no-as-needed" CACHE INTERNAL "C Flags for release" FORCE) SET (CMAKE_CXX_FLAGS_DEBUG " -ggdb -Wl,--no-as-needed " CACHE INTERNAL "C Flags for debug" FORCE) SET (CMAKE_CXX_FLAGS_PROFILE " -O3 -ggdb -pg -Wl,--no-as-needed " CACHE INTERNAL "C Flags for profile" FORCE)
Traza de comandos usados
Una vez detectado los paquetes correctos, hice una instalación en limpio en la máquina de mi casa. La instalación se hizo en unos 20 minutos con un enlace ADSL de 1 MB/seg. Una vez obtenidos los paquetes y creado el directorio donde se compilara la biblioteca, usé los siguientes comandos (lista obtenida con el comando history):
#Compilación de Player
cd playerStage_fuentes/ ls tar -xzvf player-3.0.2.tar.gz cd player-3.0.2/ ls mkdir build cd build ls cmake ../ make sudo make install
#Compilación del Stage
560 cd ../.. ls tar -xzvf Stage-3.2.2-Source.tar.gz cd Stage-3.2.2-Source/ ls mkdir build gvim CMakeLists.txt cd build/ ls cmake ../ make sudo make install
Listo !!!!
Variables a definir en el ~/.bashrc
STAGE_INSTALL_DIR=/usr/local/ export LD_LIBRARY_PATH=$STAGE_INSTALL_DIR/lib export STAGEPATH=$STAGE_INSTALL_DIR/lib export PLAYERPATH=$STAGE_INSTALL_DIR/lib
Ejemplo de Makefile
CC= g++ OPC= `pkg-config --cflags playerc++` INC= LIB= `pkg-config --libs playerc++` default: robotBasico.exe robotBasico.exe: robotBasico.o $(CC) -o $@ $^ $(LIB) robotBasico.o: robotBasico.cpp $(CC) -c $< $(OPC) $(INC) clean: rm -f *.o *.exe
Para Ubuntu 12.04 LTS
La versión 12.04 LTS debería tener soporte hasta el año 2017, pienso que es una de las mejores y estables hasta hoy (Sep 2013). La instalación que usé fue Mixta, el Player lo descargo ya compilado y el Stage lo bajo y compilo como se explicó anteriormente. Para instalar el Player ya compilado usé:
sudo apt-get install robot-player robot-player-dev robot-player-doc
luego se compila el Stage, se instala y listo.
Entrada recuperada gracias a Pablohn