Control del EV3 via Bluetooth

Para el control del LEGO EV3 a traves de Bluetooth usando el firmware de base del LEGO, vamos a seguir los pasos presentados en la página de A. Brown y Geekdroppings

codigo EV3

Hacer clic derecho en la imagen y "Abrir en una nueva pestaño" para verla con más detalle.

Instalar los archivos en el LEGO

Para descargar el código hacer clic aquí (EV3-bluetooth.ev3).

Para poder subir el código al LEGO debemos instalar el siguiente software español e ingles, otras versiones pueden encontrarse en robotix.

Dentro del código deben cambiar el nombre del dispositivo al cual el LEGO se piensa conectar. En mi caso mi computador se presenta como "BURBUJA0". Cambiando este parámetro podemos pasar a conectar el computador con el LEGO.

Armando el robot

Para armar la plataforma movil, usaremos las instrucciones oficiales de LEGO para la "drivin-base".

driving base

Conexión bluetooth

Para una conexión exitosa usaremos los siguientes comandos en el terminal:

sudo apt-get upgrade
sudo apt-get update
sudo apt-get install bluetooth bluez blueman

Con esto intalaremos una interfaz que nos permite gestionar la conexión bluetooth serial con el LEGO.

Luego de esto seguiremos las instrucciones de A. Brown para la conexión.

Si el programa de bluetooth no detecta dispositivos, debemos instalar los drivers siguiendo las recomendaciones de este foro.

Uso del LEGO con ROS

Para usar el lego con ROS, debemos bajarnos el paquete, descomprimirlo y ubicarlo en una carpeta llamada ws/src.

Para correr el programa desde el terminal deberemos escribir los siguientes comandos.

  • Para darle permisos a todos los usuarios de conectarse a puerto serial creado por el vinculo bluetooth.
sudo chmod 777 /dev/rfcomm0
  • Mientras estamos en la carpeta ws, usaremos el siguiente comando para construir el paquete ev3 y usarlo con ROS2.
colcon build

pueden ocurrir que genere advertencias para eliminarlas debemos actualizar setuptools a la version 58.2.0 usando el siguiente comando: pip3 install setuptools==58.2.0

  • Para decirle a ROS2 donde esta el paquete ev3 (estando en la carpeta ws).
source install/setup.bash
  • Para correr el nodo de comunicación con LEGO
ros2 run ev3 diferential
  • En otro terminal podemos correr el nodo de teleoperación.
ros2 run teleop_twist_keyboard teleop_twist_keyboard