em construção (Ruben)
num terminal:
$ gksu nautilus
ir para
opt/morse/share/morse/data/actuators
abrir com o Blender.
kuka_lwr.blend
clicar com o botão direito do rato nas peças a mudar a cor, depois ir para a toolbar Material e mudar a cor.
salvar como dois ficheiros .blend para ter um clone do KUKA (alterando o nome do objeto dentro do Blender para o segundo ficheiro) um em cada ficheiro.
ir para
/opt/morse/lib/python3.2/site-packages/morse/actuators
criar um ficheiro de nome kuka_sonda.py igual ao kuka_lwr.py
ir para
/opt/morse/lib/python3.2/site-packages/morse/builder
abrir data.py e adicionar na zona do ROS “MORSE_MIDDLEWARE_DICT” o seguinte:
'kuka_sonda': [MORSE_MIDDLEWARE_MODULE['ros'], 'read_jointState', 'morse/middleware/ros/kuka_sonda'],
a seguir à parte análoga do kuka_lwr (se quisermos para sockets, yarp, etc é fazer a mesma coisa na parte respetiva)
ir para
/opt/morse/lib/python3.2/site-packages/morse/middleware/ros
criar o ficheiro kuka_sonda.py igual ao kuka_jointState.py
MORSE é um simulador robótico que se foca em simulações realísticas de pequenos e grandes ambientes interiores ou exteriores, podendo ter até cerca de uma dúzia de robôts em simultâneo.
Instalação do MORSE com suporte do ROS no Ubuntu 12.04:
1.) Primeiro deve ser instalado o ROS: Seguir os passos da instalação fornecida na secção do ROS
2.) Instalar livrarias necessárias para a build do Python:
$ sudo apt-get install libgdbm-dev libreadline-dev
3.) Instalação do Python: (desde 8/21/2012, deve ser usado o Python 3.2.2, devido a incompatibilidades com o Python 3.2.3)
$ mkdir ~/builds && cd ~/builds $ wget http://www.python.org/ftp/python/3.2.2/Python-3.2.2.tar.bz2 $ tar xvf Python-3.2.2.tar.bz2 $ cd Python-3.2.2
4.) Build do Python 3.2.2:
$ ./configure –with-wide-unicode –enable-shared $ make $ make test (verificar se todos os testes sao efetuados) $ sudo make install
5.) Instalar o Blender
$ cd ~/builds $ wget http://download.blender.org/release/Blender2.61/blender-2.61-linux-glibc27-i686.tar.bz2 $ tar xvf blender-2.61-linux-glibc27-i686.tar.bz2
6.) Instalar o MORSE
$ cd ~/builds $ git clone https://github.com/laas/morse.git $ cd morse $ git checkout -b 0.5_STABLE -t origin/0.5_STABLE $ mkdir build && cd build $ cmake -DBUILD_ROS_SUPPORT=ON -DCMAKE_BUILD_TYPE=Release -DPYMORSE_SUPPORT=ON -DCMAKE_INSTALL_PREFIX=/opt/morse .. $ sudo make install
7.) Adicionar variáveis no ficheiro .bashrc
$ echo 'export MORSE_ROOT=/opt/morse' >> ~/.bashrc $ echo 'export PATH=/opt/morse/bin:${PATH}' >>/.bashrc $ echo 'export MORSE_BLENDER=~/builds/blender-2.61-linux-glibc27-i686/blender' >>/.bashrc $ echo 'export PYTHONPATH=/opt/morse/lib/python3.2/site-packages:${PYTHONPATH}' >>/.bashrc
8.) Instalar o rospkg
$ cd ~/builds $ git clone git://github.com/ros/rospkg.git $ cd rospkg $ sudo python3.2 setup.py install
9.) Instalar o PyYaml
$ cd ~/builds $ wget http://pyyaml.org/download/pyyaml/PyYAML-3.10.tar.gz $ tar xvf PyYAML-3.10.tar.gz $ cd PyYAML-3.10 $ sudo python3.2 setup.py install
10.) Testar o MORSE Abrir um novo terminal e escrever:
$ morse check
Se a instalação tiver sido bem efectuada, deverá aparecer a seguinte informação: * Your environment is correctly setup to run MORSE.
11.) Testar MORSE com o ROS Em um novo terminal iniciar o roscore:
$ roscore
Em um novo terminal, ir a…
$ cd ~/builds/morse/examples/scenarii
Iniciar a simulação
$ morse run ros_example.py
MORSE/Blender deverá iniciar. Procurar por erros no terminal.
Em outro terminal, vamos monitorizar a informação do gyroscope associado ao robot ATRV
$ rostopic echo /ATRV/Gyroscope
Se acontecer algum erro do Python tal como “No module named <foo>” significa que o PYTHONPATH esta mal configurado, ou que não foi instalada alguma livraria necessária ao Python. Mesmo que a livraria tenha sido instalada, pode ter sido apenas instalada na localização do Python2 e não na localização do Python3. Isto pode ser testado abrindo um terminal:
$ python3.2 $ import rospkg $ import yaml
Não deve devolver nenhum erro.
corrigir erro interno em /home/labsi/builds/morse/src/morse/builder/data.py
na linha 73, substituir “joinstate” por “jointstate” (atenção que esta escrito duas vezes!!!)
Programação para kuka com ligação ao ROS. Chamar ao ficheiro ros_kuka.py
from morse.builder.morsebuilder import * # Append ATRV robot to the scene jido = Robot('jido') # Append an actuator motion = Actuator('v_omega') motion.translate(z=0.3) jido.append(motion) kuka_jointState = Actuator('kuka_lwr') kuka_jointState.translate(x=0.1850, y=0.2000, z=0.9070) kuka_jointState.rotate(x=0.0, y=1.4) jido.append(kuka_jointState) # Configuring the middlewares motion.configure_mw('ros') kuka_jointState.configure_mw('ros') env = Environment('indoors-1/indoor-1') env.aim_camera([1.0470, 0, 0.7854])
No terminal ir à directoria onde o ficheiro foi guardado e executar o comando:
morse exec ros_kuka.py