Readme alberto.txt
Para compilar, antes instale os prerrequisitos:
sudo apt-get update
- Install gazebo's dependencies
sudo apt-get install -y cmake debhelper libfreeimage-dev libprotoc-dev \ libprotobuf-dev protobuf-compiler freeglut3-dev \ libcurl4-openssl-dev libtinyxml-dev libtar-dev \ libtbb-dev libogre-dev libxml2-dev pkg-config \ libqt4-dev ros-fuerte-urdfdom ros-fuerte-console-bridge \ libltdl-dev libboost-thread-dev libboost-signals-dev \ libboost-system-dev libboost-filesystem-dev \ libboost-program-options-dev libboost-regex-dev \ libboost-iostreams-dev robot-player-dev libcegui-mk2-dev \ libavformat-dev libavcodec-dev libswscale-dev libbullet-dev
- Install osrf-common's dependencies
sudo apt-get install -y cmake debhelper ros-fuerte-ros ros-fuerte-ros-comm
- Install sandia-hand's dependencies
sudo apt-get install -y cmake debhelper ros-fuerte-xacro ros-fuerte-ros \ libboost-dev ros-fuerte-image-common \ ros-fuerte-ros-comm ros-fuerte-common-msgs \ avr-libc gcc-avr libqt4-dev
- Install drcsim's dependencies
sudo apt-get install -y cmake debhelper ros-fuerte-pr2-mechanism \ ros-fuerte-std-msgs ros-fuerte-common-msgs \ ros-fuerte-image-common ros-fuerte-geometry \ ros-fuerte-pr2-controllers ros-fuerte-geometry-experimental \ ros-fuerte-robot-model-visualization ros-fuerte-image-pipeline \ ros-fuerte-image-transport-plugins
Compile:
cd drcsim-2.6.2 mkdir debug cd debug . /opt/ros/fuerte/setup.sh . /usr/share/gazebo/setup.sh cd ~/ros/drcsim-2.6.2/plugins/AtlasSimInterface_1.1.0/lib64 ln -s libAtlasSimInterface.1.1.0 libAtlasSimInterface.so ln -s libAtlasSimInterface.1.1.0 libAtlasSimInterface.so.1.1 cd - cmake -DCMAKE_BUILD_TYPE=Debug .. make
Correntemente, estou trabalhando no actionlib_sever (drcsim-2.6.2/ros/atlas_msgs/actionlib_server.cpp). Este programa faz a interface entre o programa em python de controle do robo e o proprio robo. Ele recebe mensagens do programa em pyhton e manda as mensagens para o robo. Alem disso, ele recebe mensagens de feedback do robo e pode melhor ajustar os comandas para atender ao que o usuario demandou via python.
Para saber mais: http://gazebosim.org/wiki/DRC/UserGuide#Boston_Dynamics_Atlas_Simulation_Behavior_Library_.28AtlasSimInterface.29
Para alterar o codigo do actionlib_sever, apos executar os passos de compilacao (mencionados acima), edite os arquivos drcsim-2.6.2/ros/atlas_msgs/actionlib_server.cpp e drcsim-2.6.2/ros/atlas_msgs/actionlib_server.h. Para compilar o codigo alterado:
cd ros/atlas_msgs make
Para usar o actionlib_sever basta executar o binario drcsim-2.6.2/debug/ros/atlas_msgs/bin/actionlib_server. Alternativamente, voce pode fazer um link do binario drcsim-2.6.2/debug/ros/atlas_msgs/bin/actionlib_server para dentro do diretorio bin de um pkg ros:
roscd lcad_ufes_vrc_task1 make cd bin ln -s ../../drcsim-2.6.2/debug/ros/atlas_msgs/bin/actionlib_server .
E criar um arquivo launch que use este actionlib_sever. O launch lcad_ufes_vrc_qualify_task1-1.launch usa o actionlib_sever alterado. Para usa-lo, basta usar mecanismos usuais de launch:
roslaunch lcad_ufes_vrc_qualify_task1 lcad_ufes_vrc_qualify_task1-1.launch