Al visualizar el valor de estas dos variables no entiendo bien la transformación.
get actual joint position nos envía x,y,z en que unidades ??? veo que no son metros, rx,ry,rz en radianes
get actual tcp pose nos envía la posición en función de coordenadas base x,y,z en metros y rx,ry,rz en que unidades ???
No comprendo la transformación, si por ejemplo -0.522 son 522 milímetros como obtiene -0.459 la función get actual joint position
Otra cosa en un script cuando realizo movej se dan los valores en radianes, pero si quiero que el centro de coordenadas de ese punto sea el de la herramienta en vez de la base o otro creado en el programa, como se lo digo?
get_actual_joint_positions() no te devuelve la posición en formato cartesiano, si no la posición de cada una de las articulaciones, que en los UR son siempre manipuladores de 6 gl, por eso tienes un vector de 6 elementos.
La transformación de una posición en get_actual_joint_positions() a get_actual_tcp_pose() es una transformación de espacio angular a espacio cartesiano, basado en la física de la cinemática directa (lo puedes buscar en Google, y hay vídeos que lo explican en detalle)
Para distinguirlos en el código, puedes ver que las posiciones anguales son variables tipo vector [], mientras que las posiciones cartesianas son variables tipo pose p[]
Creo que la función movej se puede usar con ambos formatos.
Lo que he hecho es no utilizar las lecturas angulares que nos da get actual joint positions, utilizo la posición tcp de la función get actual tcp pose, pero he descubierto que para que un movej entienda esa posición le tenemos que hacer un get inverse kin a la variable que almacena esa posición, esto funciona bien.