Writing /var/lib/dokuwiki/data/meta/teaching/sp-2158.meta failed
teaching:sp-2158
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| teaching:sp-2158 [2019/05/23 07:12] – agregar algo de orocos vis interactivo dgarcia | teaching:sp-2158 [2022/09/20 00:08] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 84: | Line 84: | ||
| </ | </ | ||
| + | |||
| + | |||
| + | ===== 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 (roll) de 45, y(pitch) 0, y z(yaw) de 45 utilizando RPY. Rrpy (de acuerdo a KDL, en el libro de siciliano es así: z(roll), y(pitch), x(yaw)) | ||
| + | - Utilice el método " | ||
| + | - 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 (GetRPY). Cuál corresponde al caso de rotaciones con respecto a marcos de referencia locales? | ||
| + | - Utilizando " | ||
| + | - Utilizando el robot expresado por el profesor en clase y " | ||
| + | - 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? | ||
| + | |||
| + | ===== Tarea 3: RT stm32 ===== | ||
| + | |||
| + | * Descargue el repositorio del proyecto open-coroco: | ||
| + | |||
| + | mkdir -p ~/ | ||
| + | cd ~/ | ||
| + | git clone git@git.arcoslab.org: | ||
| + | |||
| + | * Compílelo: | ||
| + | |||
| + | cd git-arcoslab/ | ||
| + | git checkout hardware-register | ||
| + | git submodule init | ||
| + | git submodule update | ||
| + | cd lib/ | ||
| + | make -j3 | ||
| + | cd ../ | ||
| + | make -j3 | ||
| + | |||
| + | * Compile el ejemplo de control para el motor Vextra: | ||
| + | |||
| + | cd ~/ | ||
| + | sed -i ' | ||
| + | cd ~/ | ||
| + | make | ||
| + | |||
| + | * Conecte el stm32f4discovery y cargue el programa al microcontrolador: | ||
| + | |||
| + | make flash | ||
| + | |||
| + | * Conecte el stm32f4discovery a la pcb de open-coroco, | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | * Corra el programa open-coroco-pc.py en la computadora: | ||
| + | |||
| + | cd ~/ | ||
| + | ./ | ||
| + | |||
| + | * Dicho programa debería cambiar la velocidad continuamente del motor y desplegar datos de los sensores de la tarjeta open-coroco. | ||
| + | |||
| + | * Cambien el programa open-coroco-pc.py para que el motor acelere hasta 400Hz (self.max_speed) a un paso de aceleración de 0.1 (self.speed_inc=0.1) y que se quede en esa velocidad de 400Hz de manera indefinida. | ||
| + | * El programa open-coroco-pc.py genera datos en un archivo llamado " | ||
| + | * Cambie el programa open-coroco-pc.py para que el motor se detenga (enviar 0 de velocidad) cuando la corriente principal (primera corriente) sean menor o igual a 1500. Observe el tiempo que le toma al motor detenerse desde que se detecta dicha condición (grafíquelo). | ||
| + | * Haga nuevamente el experimento pero ahora disminuya el tamaño del buffer del filtro de promedio de la corriente principal de 10 valores a 5 valores. Observe los resultados (grafíquelo). | ||
| + | * Haga nuevamente el experimento, | ||
| + | * Compare los tres experimentos y explique la razón de los diferentes resultados. | ||
| + | |||
| + | |||
teaching/sp-2158.1558595567.txt.gz · Last modified: 2022/09/20 00:08 (external edit)