Objetivo a trabajar: Confirmar funcionamiento del brazo robotico Panda.
Actividades realizadas:

Aun asi se logra iniciar el programa Rviz para visualizar el robot en tiempo real, donde se observa el siguiente resultado:

Por el momento se plantea la posible solución de desinstalar la versión que se tenga de la libreria Franka en la máquina e instalar otra.
Resultados obtenidos:
Objetivo a trabajar: Confirmar funcionamiento del brazo robotico Panda.
Actividades realizadas:

Lamentablemente este intento de solución no logro corregir el error que se presenta como se observa en la siguiente figura:


A pesar de instalar esta versión igualmente se obtuvó el mismo problema de compatibilidad con la libreria franka que se presentó en la sesión pasada. Por lo cual para la siguiente se va a optar por instalar una versión más antigua de este.
Resultados obtenidos:
Objetivo a trabajar: Confirmar funcionamiento del brazo robotico Panda.
Actividades realizadas:



sudo addgroup realtime
sudo usermod -a -G realtime $(whoami)
Ya con esto, y al utilizar el comando que activa cada uno de los joints, inicializamos correctamente el braoz robotico, donde el rviz que utilizamos para visualizarlo se presenta de la siguiente forma:

Resultados obtenidos:
Objetivo a trabajar: Confirmar funcionamiento de brazo robotico Panda.
Actividades realizadas:




Resultados obtenidos:
Objetivos a trabajar: Depuracion de simulador de brazo robótico.
Actividades realizadas:



Resultados obtenidos:
Objetivo a trabajar: Confirmar funcionamiento de brazo robotico Panda.
Actividades realizadas:

Se obtiene un error en el Vector Field del programa "ct_experience_asimilar", donde lamentablente en esta sesión no se logró obtener una solución a como resolverlo apropiadamente, por lo cual se propone investigar aún más en la siguiente sesión sobre este error.
Resultados obtenidos:
-Obtención de posible fallo que generé el movimiento erratico tanto para el simulador como para el robot real.
Objetivos a trabajar: Confirmar funcionamiento de brazo robotico Panda, depuracion de simulador de brazo robotico.
Actividades realizadas:






Resultados obtenidos:
Objetivos a trabajar: Confirmar funcionamiento de brazo robotico Panda
Actividades realizadas:

Como se puede observar se agrega a la transformada z del bloque 20cm por encima de este, donde al simularlo se tiene el siguiente resultado:

Se tiene que el nuevo comando fue implementado de forma exitosa en la simulación, al implementarlo en el robot real se produce el siguiente resultado:

Al implementar este comando se obtuvo como resultado que el problema por el cual en ocasiones el robot no lográ en ocasiones agarrar el bloque es por su posición, después de ciertas pruebas se tiene el siguiente diagrama por el cual dependiendo de la posición del "marker" del bloque este puede ser obtenido exitosamente por el bloque o no:

Si se tiene el "marker" del bloque dentro de la zona verde el robot muy posiblemente logre obtener el bloque, mientras tanto en la zona roja no, debido a que el robot tratara de rotar 270° para obtenerlo y este no tiene la suficiente velocidad para lograr este movimiento antes de realizar el siguiente comando.

Resultados obtenidos:
Objetivos a trabajar: Confirmar funcionamiento de brazo robotico Panda
Actividades realizadas:










Resultados obtenidos:
Objetivos a trabajar: Confirmar funcionamiento de brazo robotico panda.
Actividades realizadas:


La anterior simulación indica que al modificar esta coordenada, el brazo robotico rota en el eje Y en sentido horario, lo cual no es un resultado esperado. Por otra parte se opto por modificar la coordenada J en -1 como se puede observar en la siguiente figura:

Esta modificación genero la siguiente respuesta en la simulación:

Se obtuvó que al realizar esta modificación el brazo rota en el eje X, con sentido antihorario, esto deja entender que para rotar en el eje Z, se debe hacer por medio de modificar la coordenada I del cuaternion, para ello se realizó la respectiva simulación modificando el eje I como se muestra en la siguiente figura:

Al simular este comando se obtiene la siguiente respuesta:

Al realizar esta modificación se logró exitosamente rotar el bloque en el eje Z como se esperaba, aunque esto genera que al robot no le tiempo de rotar completamente los 180° que se desean, por eso se implemento un comando antes de este para asegurar la rotación deseada.

Ya con este comando se obtiene la rotación requerida en el brazo robotico.




Resultados obtenidos:
Objetivos a trabajar: Implementar en simulación el programa existente que calcula la disposición de los bloques Jenga para construir una estructura.
Actividades realizadas:


Resultados obtenidos:
Objetivos a trabajar: Implementar en simulación el programa existente que calcula la disposición de los bloques Jenga para construir una estructura.
Actividades realizadas:


Al intentar ejecutar estos programas para el caso del archivo "task_client"

Este es un resultado esperado ya que el programa esta esperando al servicio que debería entregar las coordenadas de los bloques.
Por otra parte al intentar ejecutar el programa "task_sender_service" se tiene el siguiente resultado:

Este resultado es fuera de lo comun ya que previamente se había agregado el ejecutable "jenga_house_builder" al archivo "setup.py" para que este fuera reconocido por los demás programas.
Resultados obtenidos:
-Se obtuvó una parcial instalación de los programas dan el funcionamiento para construir la estructura con bloques jenga.
-No se pudó encontrar que generá el error a la hora de ejecutar el programa "task_sender_service", esto se abordará en la proxima sesión con más detenimiento.
Objetivos a trabajar: Implementar en simulación el programa existente que calcula la disposición de los bloques Jenga para construir una estructura.
Actividades realizadas:
-Se descubrió que el error presentado en la sesión anterior de no encontrar los paquetes se puede resolver con el siguiente cambio que se presenta en la siguiente imagen

Donde se tiene el siguiente resultado:

Se lográ generar las posiciones de los bloques, pero no logra crear el archivo csv donde almaceran estos, como se puede apreciar en el error que se encuentra abajo de este para, intentar solucionar este problema se intentó agregar la carpeta donde se puede almacenar el archivo csv generado en el archivo setup.py el cual administra como el paquete es instalado en el espacio de trabajo:

Al realizar este cambio, se tiene el siguiente resultado:

Lamentablemente no se logró obtener un resultado positivo de este intento de solucionar el error para generar el csv con los comandos.
Resultados obtenidos:
-Se obtuvó una parcial instalación de los programas que dan el funcionamiento para construir la estructura con bloques jenga.
-Se logró obtener una ejecución parcial del ejecutable "task_sender_service", pero no se logró generar el csv debido a que este programa no encuentra el directorio destino para hacerlo, esto se abordará en la proxima sesión con más detenimiento.
Objetivos a trabajar: Implementar en simulación el programa existente que calcula la disposición de los bloques Jenga para construir una estructura.
Actividades realizadas:




Resultados obtenidos:
-Aun no se logró generar el csv debido a que este programa no encuentra el directorio destino para hacerlo, esto se abordará en la proxima sesión con más detenimiento.
Objetivos a trabajar: Implementar en simulación el programa existente que calcula la disposición de los bloques Jenga para construir una estructura.
Actividades realizadas:
-Se intento de nuevo el intento con el paquete de la sesión pasada en otra computadora, donde se observa de la siguiente forma:

El resultado obtenido fue el siguiente:

Como se puede apreciar se tiene una ejecución correcta del programa, ya que se generaron tanto el csv que contiene las posiciones para crear la estructura de jenga y los comandos a mandar al robot para realizarlos.
-Despues se intentó una comunicación entre este archivo y el "task_client", el cual se observa de la siguiente forma:

Como se puede apreciar se tiene una correcta comunicación entre el el servidor y cliente del nodo, ya que cuando el cliente le solicita al nodo el siguiente comando este lo envia.
Resultados obtenidos:
-Se obtuvó una correcta ejecución de "task_sender_service" utilizando los comandos de ros2, al igual que la creación correcta de los archivos csv que indican las posiciones de los bloques jenga para la construcción de la estructura al igual que los comandos que se enviarán al robot en un futuro.
Objetivos a trabajar: Implementar en simulación el programa existente que calcula la disposición de los bloques Jenga para construir una estructura.
Actividades realizadas:




Resultados obtenidos:
-Realización del servidor del nodo que permite la obtención del alto, largo y ancho de la esctructura de jenga por parte del usuario, para la siguiente sesión se realizará la escritura del cliente del nodo.
Objetivos a trabajar: Implementar en simulación el programa existente que calcula la disposición de los bloques Jenga para construir una estructura.
Actividades realizadas:




Resultados obtenidos:
-Realización del cliente del nodo que solicita altura, largo y ancho al usuario.
-Comprobación exitosa de comunicación entre el cliente y el servidor del nodo, para la proxima sesión se espera implementar completamente los datos obtenidos por este nodo al nodo task_sender_service.
Objetivos a trabajar: Implementar en simulación el programa existente que calcula la disposición de los bloques Jenga para construir una estructura.
Actividades realizadas:



Resultados obtenidos:
Objetivos a trabajar:Implementar en simulación el programa existente que calcula la disposición de los bloques Jenga para construir una estructura.
Actividades realizadas:
Para ello se escribió el siguiente código de prueba tanto para el servidor:

Como para el cliente:

Este el cliente le manda una solicitud al servidor de leer el csv que contiene todas las posiciones que el robot debe ejecutar para construir la estructura con bloques jenga, al leerlo lo convierte en la siguiente estructura: ("comando",(valores)), ya que esta es la estructura con la cual el simulador y el robot real leen los comandos.
Donde al compilar se obtuvó una lectura exitosa de los datos al igual que su conversión.

Resultados obtenidos:
Objetivos a trabajar:Implementar en simulación el programa existente que calcula la disposición de los bloques Jenga para construir una estructura.
Actividades realizadas:



Resultados obtenidos:
Objetivos a trabajar:Implementar en simulación el programa existente que calcula la disposición de los bloques Jenga para construir una estructura.
Actividades realizadas:

ros2 run rbc_house_builder task_sender_service
Este genera el csv con las instrucciones a enviar al robot
2. Ya una vez ejecutado ese comando se procede a hacer crtl+C y se escribe el siguiente comando:
ros2 run rbc_house_builder goals_service
Este activa el nodo de lectura csv.
3. Ejecutar los pasos para el simulador indicados en la página rbc_Asimilar
Al ejecutar los pasos anteriormente descritos se tiene que ya sea el programa para el robot real o el simulador debe indicar el siguiente aviso en la consola:

En caso de no aparecer el programa leerá los comandos que originalmente vienen en el, si esto sucede cerrar el programa que ejecuta los comandos y volverlo a iniciar, si es que se tiene el servidor del nodo csv activo.
Al ejecutarlo se observá que el simulador logra leer los nuevos comandos que son dados por el csv, como se puede apreciar en la siguiente imagen:

Objetivos a trabajar:Implementar en simulación el programa existente que calcula la disposición de los bloques Jenga para construir una estructura.
Actividades realizadas:




Resultados obtenidos:
Objetivos a trabajar:Implementar en simulación el programa existente que calcula la disposición de los bloques Jenga para construir una estructura.
Actividades realizadas:




Resultados obtenidos:
Objetivos a trabajar:Implementar en simulación el programa existente que calcula la disposición de los bloques Jenga para construir una estructura.
Actividades realizadas:


Resultados obtenidos:
Objetivos a trabajar: Implementar en el robot real el programa existente que calcula la disposición de los bloques Jenga para construir una estructura.
Actividades realizadas:
ros2 run rbc_house_builder task_sender_service
Este genera el csv con las instrucciones a enviar al robot
2. Ya una vez ejecutado ese comando se procede a hacer crtl+C y se escribe el siguiente comando:
ros2 run rbc_house_builder goals_service --ros-args -r __ns:=/asimilar
El anterior comando activa el servicio del nodo para leer el csv, la diferencia es que se le realizó un remaping para que en vez de estar en el namespace del simulador, ahora sea el del robot real.
3. Seguir los pasos indicados por la página rbc_Asimilar para el funcionamiento del robot real.
Al realizar esto se obtuvó que el robot real si ejecutaba los comandos del csv, pero no se tuvo en cuenta que a la hora de colocar el primer bloque y querer detectar el segundo el robot real en ocasiones detectaba el segundo, para ello se colocarón algunos offset a las posiciones finales de los bloques, para que la camara de este no los detectara, esto fue realizado de la siguiente forma:

Al realizar este offset se logró que el robot tuviera el suficiente espacio para construir lo que pudiera de la superficie.

Se obtuvó que el robot real si ejecuta los comandos que lee del csv y la imagen anterior representa como este coloca el primer bloque.
Objetivos a trabajar:Implementar en el robot real el programa existente que calcula la disposición de los bloques Jenga para construir una estructura.
Actividades realizadas:



Resultados obtenidos:
Objetivos a trabajar: Implementar en el robot real el programa existente que calcula la disposición de los bloques Jenga para construir una estructura.
Actividades realizadas:



Resultados obtenidos:
Objetivos a trabajar: Implementar en el robot real el programa existente que calcula la disposición de los bloques Jenga para construir una estructura.
Actividades realizadas:




Resultados obtenidos:
Objetivos a trabajar: Implementar en el robot real el programa existente que calcula la disposición de los bloques Jenga para construir una estructura.
Actividades realizadas:



Resultados obtenidos:
Objetivos a trabajar: Implementar en el robot real el programa existente que calcula la disposición de los bloques Jenga para construir una estructura.
Actividades realizadas:

Resultados obtenidos:
