Closed carlibiri closed 4 years ago
Debemos pedirles la posibilidad de configurar codo arriba y codo abajo, y hombro derecho o izquierdo.
Hola Carlos:
He estado dándole vueltas y efectivamente los giros extraños aparecen cuando el brazo pasa por una singularidad. Es el típico problema de representación de la orientación, cuando un coseno pasa de ser 1 a -1 y al hacer la arcotangente se dispara el ángulo bruscamente. Entiendo que utilizando el jacobiano no deberían tener demasiadas complicaciones para solucionarlo.
Te dejo aqui algunas capturas de pantalla donde se ve el giro extraño y las coordenadas que le comando al simulador. Básicamente, es un movimiento lineal sencillo en la dirección del eje Y, de 0'4 a 0'6 m, con el efector final apuntando al suelo. Esto mismo ocurre en más situaciones, pero esta es la una de las más representativas para lo que nosotros necesitamos.
La situación inicial:
La intermedia, con el brazo girado:
La final, de nuevo con el brazo en una posición correcta pero con las articulaciones 4 y 6 en diferentes posiciones:
En cuanto a los otros giros extraños, ocurren con los cambios de codo, por lo que sería sencillo evitarlos con lo que hemos dicho esta mañana de poder configurar el codo nosotros. He estado investigando la API y la GUI y no he visto esa posibilidad en ningún lugar, así que sería genial si pudieran añadirlo.
Un saludo, Gonzalo
Dejo aquí el gif donde se ve mejor el movimiento:
Envío email y pongo en copia a @gonzalopd96
Vuelvo a recordar a Florian lo del modelo cinemático.
Hola Carlos:
He estado mirando el uso de quaternios en el Siciliano y estoy convencido de que solucionaría el problema con la singularidad. Necesitamos entonces el modelo cinemático inverso con quaternios (que ya intentamos implementar el año pasado):
Lo único malo de ese modelo es que es iterativo, con lo que los tiempos de computación no están acotados, incluso puede que nunca converja. Eso puede ser un problema si queremos utilizarlo para la planificación en línea, pero no si lo utilizamos para el movimiento de barrido, que va a ser preprogramado y además es en el que pueden aparecer las singularidades...
Lo vamos comentando.
Un saludo, Gonzalo
Quedamos en probarlo y ver si sería fácil de implementar.
En cualquier caso, te adelanto también que en el TFG de Juanma, usamos el Jacobiano realimentado con un controlador LQR, osea que nos vendría bien probarlo de cara a resolver este problema y de cara también a planificación cinemática.
El vie., 29 nov. 2019 a las 11:49, gonzalopd96 (notifications@github.com) escribió:
Hola Carlos:
He estado mirando el uso de quaternios en el Siciliano y estoy convencido de que solucionaría el problema con la singularidad. Necesitamos entonces el modelo cinemático inverso con quaternios (que ya intentamos implementar el año pasado):
Lo único malo de ese modelo es que es iterativo, con lo que los tiempos de computación no están acotados, incluso puede que nunca converja. Eso puede ser un problema si queremos utilizarlo para la planificación en línea, pero no si lo utilizamos para el movimiento de barrido, que va a ser preprogramado y además es en el que pueden aparecer las singularidades...
Lo vamos comentando.
Un saludo, Gonzalo
— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/spaceuma/ADE-Mobile_Manipulation/issues/20?email_source=notifications&email_token=ABYHWS7KTKF4O4Q6R73NM3LQWDXSBA5CNFSM4JP7JGB2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFOROYQ#issuecomment-559748962, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABYHWS6MQVWMC77D5INHKH3QWDXSBANCNFSM4JP7JGBQ .
--
Carlos J. Pérez del Pulgar Mancebo Departamento de Ingeniería de Sistemas y Automática UNIVERSIDAD DE MALAGA www.isa.uma.es/cperez
Hola Carlos:
He implementado el CLIK (closed loop inverse kinematics) en python y funciona de maravilla. He probado a comandarle al brazo la misma trayectoria que nos daba problemas anteriormente y ahora las variables articulares no tienen ningún cambio brusco, como se ve en la siguiente figura:
El tiempo de ejecución es además despreciable, de hecho solo necesita dos iteraciones para converger si la posición comandada está cercana a la anterior (que en nuestro caso debe ocurrir siempre).
Además, como lo he implementado en Python pasarlo a C++ va a ser muy sencillo (teniendo en cuenta que ya tengo los modelos directo e inverso en C++).
Un saludo
Estupendo!!
Me alegro mucho, me lo enseñas cuando nos veamos.
El lun., 2 dic. 2019 a las 20:06, gonzalopd96 (notifications@github.com) escribió:
Hola Carlos:
He implementado el CLIK (closed loop inverse kinematics) en python y funciona de maravilla. He probado a comandarle al brazo la misma trayectoria que nos daba problemas anteriormente y ahora las variables articulares no tienen ningún cambio brusco, como se ve en la siguiente figura:
[image: Screenshot from 2019-12-02 19-58-13] https://user-images.githubusercontent.com/37618448/69986974-c7a73080-153e-11ea-98b4-5aa77fa024aa.png
El tiempo de ejecución es además despreciable, de hecho solo necesita dos iteraciones para converger si la posición comandada está cercana a la anterior (que en nuestro caso debe ocurrir siempre).
Además, como lo he implementado en Python pasarlo a C++ va a ser muy sencillo (teniendo en cuenta que ya tengo los modelos directo e inverso en C++).
Un saludo
— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/spaceuma/ADE-Mobile_Manipulation/issues/20?email_source=notifications&email_token=ABYHWS55RPYNVVEZMFGH3GTQWVMCRA5CNFSM4JP7JGB2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFURRRY#issuecomment-560535751, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABYHWSY7JPQIGZWFYTBQCFLQWVMCRANCNFSM4JP7JGBQ .
--
Carlos J. Pérez del Pulgar Mancebo Departamento de Ingeniería de Sistemas y Automática UNIVERSIDAD DE MALAGA www.isa.uma.es/cperez
@gonzalopd96 me envía captura de pantalla de los problemas del modelo cinemático y lo reportamos a Raúl y Florian.