Conoce a nuestro equipo en San Diego, Estados Unidos, desde el martes 23 hasta el jueves 25 de abril en XPONENTIAL, stand 4700

Actualización (30 / 04 / 2024): Disponemos de amplio stock de todos nuestros productos, encuéntranos también en y    Comprar ahora

Conoce a nuestro equipo en San Diego, Estados Unidos, desde el martes 23 hasta el jueves 25 de abril en XPONENTIAL, stand 4700

¿Cómo Usar? ArduSimple RTK receptores y obtener datos GPS en ROS

En este tutorial explicamos cómo utilizar ArduSimple RTK receptores para obtener datos de posicionamiento precisos en ROS. Le guiaremos a través de los pasos para integrarse. ArduSimple RTK receptor en su proyecto ROS, lo que le permite aprovechar el poder de los datos GPS precisos.

Si usted es un entusiasta de la robótica, investigador o desarrollador, este tutorial le proporcionará los pasos para acceder a los datos de posicionamiento en sus aplicaciones ROS.

Si eres nuevo en ROS, hemos preparado un breve tutorial para ayudar a empezar con ROS para obtener más información sobre los términos clave de ROS, qué plataforma y entorno de desarrollo es mejor elegir, etc.

Hardware requerido:

Software requerido

  • Ubuntu 18 o 20 (en este tutorial usamos Ubuntu 20) instalado de forma nativa en una PC 
  • ROS (usamos ROS Noetic).

¿Cómo Usar? ArduSimple RTK receptores y obtener datos GPS en ROS?

En primer lugar, conecte y configure RTK Receptor en Ubuntu.

  1. Enchufar el RTK antena para usted receptor. Lugar la antena en un lugar con buena vista del cielo, o cerca de una ventana para probar la funcionalidad.
  2. conectar su receptor al PC a través del puerto USB etiquetado con “POWER+GPS."
  3. Su receptor debe configurarse automáticamente. Para verificar esto, abra terminal y escriba el comando:
				
					ls /dev/tty*
				
			
  • Usted verá el “/dev/ttyACM0” se ha creado automáticamente.
  1. Para verificar la transmisión desde su RTK receptor, use el comando:
				
					sudo cat /dev/ttyACM0
				
			
  • El flujo de entrada de GPS se muestra similar al siguiente:
  • Prensa Ctrl + C para cancelar la visualización de la transmisión.
  1. Para prevenir el RTK receptor de empezar en un diferente “ttyACM*” cada vez que se encienda, cree una regla udev (un enlace dinámico) que cree una entrada con un nombre específico agregando el siguiente archivo antes de conectar el RTK receptor.
				
					sudo nano /etc/udev/rules.d/50-ardusimple.rules
				
			
  1. Ingrese el siguiente texto a la regla:
				
					KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a9", SYMLINK="tty_Ardusimple", GROUP="dialout", MODE="0666"
				
			
  1. Prensa Ctrl + X para salir del archivo y presione Y para guardar el búfer modificado.
  2. Ahora cada vez que un RTK receptor está conectado, será accesible desde el “/dev/tty_Ardusimple" enlace. Para verificar esto, desconecte RTK receptor (apagar y volver a encender) e ingrese los comandos:
				
					sudo service udev reload
sudo service udev restart
sudo udevadm trigger
ls /dev/
				
			
  1. Ahora puedes ver eso “tty_ArduSimple" se ha creado.
  1. Para usar el U-center programa en Ubuntu, instale Wine. Es una colección de bibliotecas de Linux que permiten que muchas aplicaciones de Windows se ejecuten en distribuciones de Linux (en Ubuntu, entre otras).
    No hace el U-center software totalmente compatible, pero se puede utilizar en caso de que desee comprobar el estado o la configuración de su RTK receptor.
    Para instalar Wine (la instalación puede durar de 2 a 3 minutos), use el comando:
				
					sudo apt install wine64  //if Ubuntu is installed natively
sudo apt install wine32  //if you run Ubuntu on a virtual machine

				
			
  1. Una vez instalado Wine, es posible instalar U-Center en Ubuntu, como si fuera Windows. Abra el navegador web Firefox y descargue el U-Center programa del sitio web oficial: https://www.u-blox.com/en/product/u-center.
  1. En el momento que todos los DARWINs coticen incluyendo los deslizamientos u-center se descarga, vaya a la carpeta Descargar y extraiga el u-center en el escritorio.
  1. Para iniciar la instalación de u-center software, escriba el comando:
				
					cd ~/Desktop/
wine ./u-center_v22.07.exe

				
			
  1. Instalar u-center como si estuvieras en Windows siguiendo los pasos de instalación.
  2.  Para crear un COM1 puerto, abierto terminal e ingrese el siguiente comando para hacer un enlace a RTK receptor en la carpeta “~/.vino/dosdispositivo”.
				
					ln -sf /dev/tty_Ardusimple ~/.wine/dosdevices/com1
				
			
  1. Cerrar u-center si lo tienes abierto. Abierto u-center.
  2. Conéctate a tu RTK receptor in u-center presionando Ctrl + 1 .
  1. Verás luz verde en la esquina izquierda y los datos de tu RTK Receptor similar al siguiente.

En segundo lugar, corre RTK Receptor en ROS.

  1. Haz una carpeta con los espacios de trabajo. Si no tienes uno, puedes hacerlo con los comandos:
				
					mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash
				
			
  1. Descargue e instale paquetes ROS dentro de src. En este tutorial vamos a descargar los paquetes de https://github.com/KumarRobotics/ublox que publicará la información de ROS. Esto funciona con esta versión 1.1.4. Puede usar las versiones más recientes, pero es posible que deba modificar algunos pasos. Introducir comandos:
				
					cd ~/catkin_ws/src
git clone https://github.com/KumarRobotics/ublox
cd ~/catkin_ws
rosdep install --from-paths src --ignore-src -r -y
				
			
  • Verás en la Terminal:
    #Todos los rosdeps requeridos se instalaron con éxito
  1. Compilar el programa para poder ejecutarlo.  
				
					catkin_make
source ~/catkin_ws/devel/setup.bash
				
			
  • Cuando se ejecuta el setup.bash, estamos seleccionando el espacio de trabajo y actualizando los programas disponibles en ROS.
  1. Para tener control de los mensajes a publicar en ArduSimple puede modificar el yaml (archivo de configuración) que usará el nodo para ejecutar la comunicación con ros.
    Este nodo tiene varios archivos de configuración de prueba, puede modificar los valores de este modificando los archivos ubicados en el siguiente directorio:
				
					cd ~/catkin_ws/src/ublox/ublox_gps/config
				
			
  1. Desde el interior del modelo u-blox Ardusimple es el zed_f9p, modificamos el archivo con el mismo nombre. Para abrir el editor, podemos usar el siguiente comando:
				
					nano zed_f9p.yaml
				
			
  1. Cambiar la dirección del dispositivo a “/dev/tty_Ardusimple" para asegurarse de que siempre va a la RTK Receptor:

				
					device: /dev/tty_Ardusimple
frame_id: gps
uart1:
  baudrate: 9600  //Change the baudrate value to the value set in U-Center.
config_on_startup: false

				
			
  1. Cerrar u-center porque ROS y u-center no corran juntos.

  1. Para ejecutar el Nodo ROS, use el lanzador ubicado en la siguiente carpeta:
				
					cd ~/catkin_ws/src/ublox/ublox_gps/launch
				
			
  • Para comprobar que está en la lista, escriba el comando:
				
					ls
				
			
  1. Archivos de lanzamiento de ROS simplificar el proceso de iniciar múltiples nodos y configurar sus parámetros. Un archivo de lanzamiento es un archivo XML que describe los nodos a ejecutar, sus parámetros y las conexiones entre ellos. Mediante el uso de archivos de inicio, puede iniciar varios nodos con un solo comando, lo que facilita la gestión de sistemas robóticos complejos. Estos archivos tienen la extensión “.launch”, hay otros archivos que son archivos de configuración que tienen la extensión “.yaml”.
    Para iniciar el archivo:
				
					roslaunch <name_of_package> <launch_file>
				
			
  • El archivo que lanzará nuestro programa se llama “dispositivo_ublox.lanzamiento”.
    Este archivo se puede cambiar según sea necesario.
    Para iniciar el programa, utilice el siguiente comando:
				
					roslaunch ublox_gps ublox_device.launch param_file_name:=zed_f9p
				
			
  1. Abra una nueva Terminal e ingrese el comando:
				
					source ~/catkin_ws/devel/setup.bash
				
			
  1. Nodos ROS cuando se ejecutan tienen nombres únicos. Para ver la lista de nombres de nodos ROS, use el comando en la Terminal:
				
					rosnode list
				
			
  1. Para obtener información sobre los nodos ROS, como a qué temas están suscritos o publicando, puede usar el siguiente comando:
				
					rosnode info <name_of_node>
				
			
  • Por ejemplo, para obtener información sobre “información /ublox”, use el comando:

				
					rosnode info /ublox
				
			
  1. Para mostrar una lista de activos Temas de ROS que están actualmente disponibles y están siendo publicados o suscritos a su sistema ROS, use el comando.
				
					rostopic list
				
			
  • La salida de la lista de temas de ROS normalmente mostrará los nombres de los temas junto con sus tipos de mensajes. Este comando es útil para verificar los temas disponibles y verificar si los temas deseados se están publicando o suscribiendo en su entorno ROS.

  1. Para ver información sobre quién está publicando y suscrito a este mensaje, escriba el mensaje, use el comando en el formato:
				
					rostopic info <name_of_topic>
				
			
  • Por ejemplo, para recibir información sobre Tipo de Mensaje, Publicadores y Suscriptores del tema “/rosout”, ejecute el comando:
				
					rostopic info /rosout
				
			
  1. Para recibir información sobre Tipo de Mensaje, Publicadores y Suscriptores del tema /ublox/arreglar, eejecuta el comando:
				
					rostopic info /ublox/fix
				
			
  1. Para ver la información que se está publicando, utilice el comando en el formato:
				
					rostopic echo <name_of_topic>
				
			
  • Para probar que funciona podemos suscribirnos a los diferentes temas que crea el nodo.

    Los más importantes son “/gps/arreglar” (son los datos en WGS64) y “/diagnóstico” (nos da información del estado del GPS). Se pueden publicar otros datos según la configuración que se haya establecido desde RTK receptor.

    Por ejemplo, para observar y controlar los datos fijos de GPS que se publican en “/ublox/arreglar” Tema (son los datos en WGS64), como latitud, longitud, altitud y otra información relevante, use el siguiente comando para ver los datos:

				
					rostopic echo /ublox/fix
				
			
  • Para dejar de ver el tema, presione Ctrl + C.

  1. Para ver los datos que se publican en “/diagnóstico” que da la información del estado del GPS como la precisión entre otros, use el comando:
				
					rostopic echo /diagnostics
				
			
  • Para dejar de ver los datos, presione Ctrl + C.

  1. Si desea registrar la información publicada sobre el Tema en el archivo, use el comando:
  • para registrar los datos fijos de GPS que se publican en “/ublox/arreglar” Tema, como latitud, longitud, altitud entre otros:
				
					rostopic echo /ublox/fix > gps_fix_data.txt
				
			
  • para registrar datos sobre el estado del GPS “/diagnóstico”:
				
					rostopic echo /diagnostics > gps_diagnostics.txt
				
			
  • Estos comandos crean archivos gps_fix_data.txt y gps_diagnostics.txt, donde se guardará el tema. Para detener la grabación, presione Ctrl + C.

  1. Para ver la información registrada en los archivos, ejecute:
				
					nano gps_fix_data.txt
				
			
				
					nano gps_diagnostics.txt
				
			
  1. Mensajes ROS son las estructuras de datos utilizadas para la comunicación entre los nodos ROS. Definen la información intercambiada sobre un tema. Los mensajes se definen utilizando el formato de archivo .msg.
    Para ver la lista de los tipos de Mensajes ROS, use el comando:
				
					rosmsg list
				
			
  1. Para ver la estructura del mensaje, use el comando en el formato:

				
					rosmsg show <name_of_message>
				
			
  • Por ejemplo, la directriz “sensor_msgs/NavSatFix” es un tipo de mensaje en ROS que se utiliza para representar datos fijos del GPS (Sistema de posicionamiento global) como la latitud, la longitud, la altitud y otros parámetros relacionados con la posición del GPS.
    Para ver la estructura de “sensor_msgs/NavSatFix” mensaje, use el comando:
				
					rosmsg show sensor_msgs/NavSatFix
				
			
  1. Para ver la lista de activos Servicios ROS que proporcionan una forma para que los nodos envíen solicitudes y reciban respuestas, use el comando:
				
					rosservice list
				
			
  1. Para llamar al servicio, use el comando en el formato:
				
					rosservice call <name_of_service> <type_srv> <request>
				
			
  • Este servicio responderá con el resultado.

    Por ejemplo, para obtener la configuración actual del registrador del nodo u-blox, que puede ser útil para fines de depuración y monitoreo, use el comando:

				
					rosservice info /ublox/get_loggers
				
			

Si quieres hacer este tutorial, tenemos todos los productos en stock y listos para ser enviados:

Si te ha gustado este contenido, puedes seguirnos en Twitter, YouTube, Facebook or Etiqueta LinkedIn para mantenerse actualizado de contenido como este.

¿Tienes alguna pregunta o solicitud?
¡Contáctenos! ¡Responderemos <24 horas!

Ícono
Contacto ArduSimple
Cerrar

¿Quieres aprender más sobre GPS/RTK?

1. Nuestro equipo de ingeniería se pondrá en contacto contigo para resolver cualquier duda
2. Lo mantendremos informado sobre promociones y lanzamientos de nuevos productos.
3. Solo sabrá de nosotros cuando tengamos noticias importantes, no enviaremos spam a su correo electrónico.