Writing /var/lib/dokuwiki/data/meta/teaching/sp-2158.meta failed
teaching:sp-2158
This is an old revision of the document!
Table of Contents
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:
- Acepte un número de punto flotante por un puerto llamado “/sumador/in:1”
- Acepte un número de punto flotante por un puerto llamado “/sumador/in:2”
- Sume ambos números y envíe el resultado en el puerto de salida “/sumador/out”
- 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
- Siga los tutoriales de ROS en el siguiente orden:
http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment
http://wiki.ros.org/ROS/Tutorials/NavigatingTheFilesystem
http://wiki.ros.org/ROS/Tutorials/UnderstandingNodes
http://wiki.ros.org/ROS/Tutorials/UnderstandingTopics
http://wiki.ros.org/ROS/Tutorials/CreatingPackage
http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28python%29
- Modifique el programa del PS4 controller y logre enviar datos mediante ROS para que la tortuga se mueva en el eje X con el joystick del controller.
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:
- Cree dos vectores
- Súmelos
- Réstelos
- Cree una matriz de rotación identidad
- Cree una matriz de rotación de una rotación en X de 45
- Cree otra matriz de rotación de una rotación en Z de 45
- 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
- Cree una matriz de rotación de una rotación en x de 45 y z de 45 utilizando RPY. Rrpy
- Utilice el método “GetRPY” sobre Rl y Rg, Cuál de las dos coincide con los valores de Rrpy?
- Invierta Rrpy y multiplique su resultado con Rrpy original. Comente el resultado.
- Cree un Frame (F1) (matrix homogenea) con una matrix de rotacion en X de 45 y un punto en 1 2 3.
- Cree un Frame (F2) (matrix homogenea) con una matrix de rotacion en Z de 45 y un punto en 1 2 3.
- Cree un twist restando los dos frames de arriba
- Componga ambos Frames en una dirección y luego en otra (F1*F2) y (F2*F1)
- Extraiga la rotación del resultado en ambos casos (GetRot). Cuál corresponde al caso de rotaciones con respecto a marcos de referencia locales?
- Utilizando el robot expresado por el profesor en clase y “Frames” calcule la orientación del Frame final de toda la cadena kinemática.
- Utilizando “Joint”, “segment” y “Chain” cree la cadena cinemática que el profesor puso en la pizarra.
- 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.
- 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.1558629320.txt.gz · Last modified: 2022/09/20 00:08 (external edit)