User Tools

Site Tools


Writing /var/lib/dokuwiki/data/meta/teaching/sp-2158.meta failed
teaching:sp-2158

This is an old revision of the document!


SP2158 - Sistemas bioinspirados

Tarea 1: YARP/ROS

YARP

Instalación

Práctica general

  • Jugar un poco con yarp read y write.
    • crear dos puertos de salida y conectarlos a una entrada
    • Hacerlos persistentes

Sumador

  • Programe un módulo en python utilizando YARP que:
  1. Acepte un número de punto flotante por un puerto llamado “/sumador/in:1”
  2. Acepte un número de punto flotante por un puerto llamado “/sumador/in:2”
  3. Sume ambos números y envíe el resultado en el puerto de salida “/sumador/out”
  4. El programa debe correr en un ciclo infinito, siempre esperando por nuevos nuevos.
  • Ponga a prueba este programa utilizando yarp read y yarp write . (Hace screen shots de dichos resultados)
  • Modifique este módulo para que acepte los dos números de punto flotante utilizando un solo puerto de entrada “/sumador/in”
  • Construya un módulo que tome los datos de un eje de un joystick de un PS4 controller y los envíe por un puerto de yarp llamado “/ps3/out”
  • Use yarp-plotter para visualizarlo. (git clone https://gitlab.com/arcoslab/yarp-plotter). Para poder utilizar yarp-plotter necesita primero instalar avispy y arcospyu.
  sudo apt-get install python-numpy python-scipy python-opengl python-pygame python-matplotlib python-sip python-sip-dev python-qt4-dev python-qt4 python-gtk2 python-gtk2-dev python-vtk6 python-pyvtk python-gtkglext1 libeigen3-dev python-yaml python-setuptools python-future python-colorlog
 
  echo "install arcospyu"
  cd $HOME/local/src
  git clone https://gitlab.com/arcoslab/arcospyu.git
  cd arcospyu
  make xstow_install
 
  echo "install avispy"
  cd $HOME/local/src
  git clone https://gitlab.com/arcoslab/avispy.git
  cd avispy
  make xstow_install
  • Modifique el programa de control de motores open-coroco para que tome los datos del joystick y los convierta en comandos de control de velocidad para el motor.
  • Coloque el módulo sumador en medio de estos dos módulos y de esta manera agregue un valor constante a la velocidad cuando usted lo deseé.

ROS

Preliminar Orocos

  import numpy as np
  import iexample as ix
 
  handler = ix.InteractiveHandler()
  box = handler.create_object("box", scale=[0.1, 0.1, 0.1])
  arm = handler.create_chain(ix.default_conf["kuka"])
 
  handler.core()
 
  box.update_twist(np.array([0.0, 0.0, 0.0, 0.0, 0.0, 2.0]))

Tarea 2: Orocos-KDL

  • Instale el programa ipython
  • En una consola de linux corra el programa ipython
  • En la consola de ipython importe la biblioteca KDL:
import PyKDL as k
  • De ahora en adelante puede usar k para utilizar las facilidades incluidas en orocos-kdl para python
  • Realice las siguientes actividades:
  1. Cree dos vectores
  2. Súmelos
  3. Réstelos
  4. Cree un twist restando los dos vectores de arriba
  5. Cree una matriz de rotación identidad
  6. Cree una matriz de rotación de una rotación en X de 45
  7. Cree otra matriz de rotación de una rotación en Z de 45
  8. Componga esas dos rotaciones. Primero con respecto a marcos de referencia locales y nuevamente con respecto a marcos de referencia globales. Dibuje el resultado en ambos casos. (llamemos a estas dos rotaciones Rl, Rg
  9. Cree una matriz de rotación de una rotación en x de 45 y z de 45 utilizando RPY. Rrpy
  10. Utilice el método “GetRPY” sobre Rl y Rg, Cuál de las dos coincide con los valores de Rrpy?
  11. Invierta Rrpy y multiplique su resultado con Rrpy original. Comente el resultado.
  12. Cree un Frame (F1) (matrix homogenea) con una matrix de rotacion en X de 45 y un punto en 1 2 3.
  13. Cree un Frame (F2) (matrix homogenea) con una matrix de rotacion en Z de 45 y un punto en 1 2 3.
  14. Componga ambos en una dirección y luego en otra (F1*F2) y (F2*F1)
  15. Extraiga la rotación del resultado en ambos casos (GetRot). Cuál corresponde al caso de rotaciones con respecto a marcos de referencia locales?
  16. Utilizando el robot expresado por el profesor en clase y “Frames” calcule la orientación del Frame final de toda la cadena kinemática.
  17. Utilizando “Joint”, “segment” y “Chain” cree la cadena cinemática que el profesor puso en la pizarra.
  18. Realice el cálculo de kinemática directa en el caso de los ángulos 45, 45, 45 y 10, 20, 30. Mencione la posición del end effector en ambos casos.
  19. Construya un frame rotado en Z 10 grados y en la posición 40, 20, 0. Realice el cálculo de la kinemática inversa en este caso. Cuáles son los ángulos encontrados para cada articulación? (Extra)
teaching/sp-2158.1558623685.txt.gz · Last modified: 2022/09/20 00:08 (external edit)