Detectando ArUco en ROS

usando el paquete de aruco-ros

Escrito por Davinson Castaño Cano el 24 de Marzo de 2021 · 3 mins de lectura

La detección de ArUco no puede permitir ubicar los robots en el mundo real. Para usar los ArUco en ROS, vamos a necesitar utilizar un paquete llamado aruco_ros.

Instalando el paquete

Para instalar el paquete en Ubuntu, abrimos un terminal y escribimos los siguiente:

sudo apt-get install ros-melodic-aruco-ros

Imágenes de la cámara

Para probar el detector de ArUco necesitaremos en ROS un tema que contenga las imágenes provenientes de la cámara, para tener estás imágenes podemos usar diferentes cámaras, como la del PC o la de un celular. En los enlaces anteriores pueden entender como lograrlo.

Creando un paquete para usar un Launch File

Para usar launch file en ROS necesitamos tenerlos dentro de la carpeta de un paquete. Crearemos el paquete demo dentro de la carpeta catkin_ws/src:

 cd ~/catkin_ws/src
 catkin_create_pkg demo

Dentro de la carpeta demo, crearemos el archivo aruco.launch:

<launch>
	<node pkg="video_stream_opencv" type="video_stream" name="camera">
		<param name="video_stream_provider" value="http://192.168.1.22:4747/video"/>
		<param name="fps" value="30.0" />
		<remap from="/image_raw" to="/camera_image" />
	</node>

	<node pkg="aruco_ros" type="single" name="aruco">
		<remap from="/camera_info" to="/camera_info" />
		<remap from="/image" to="/camera_image" />
		<param name="image_is_rectified" value="True"/>
		<param name="marker_size" value="1"/>
		<param name="marker_id" value="582"/>
		<param name="reference_frame" value=""/> <!-- frame in which the marker pose will be refered -->
		<param name="camera_frame" value="base_link"/>
		<param name="marker_frame" value="marker_frame" />
	</node>

	<node pkg="image_view" type="image_view" name="viewer">
		<remap from="/image" to="/aruco/result/" />
	</node>
</launch>

El archivo anterior usa la camara del celular.

Para correr el archivo vamos a usar los siguientes comandos en el terminal:

cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash
  • la primer linea sirve para ubicarnos en la carpeta adecuada.
  • la segunda linea permite compilar los archivos previamente creados.
  • la tercer linea permite listar el paquete y ser reconocido desde ROS.

Teniendo listo esto ejecutamos el comando:

 roslaunch demo aruco.launch

Quiero agradecer a Behnam Asadi y su video, que me ayudaron a entender el funcionamiento de los ArUco en ROS y aplicar dicho conocimiento.

Espero que haya sido de utilidad esta información, sumérgete en el mundo de la robótica y aprende un montón en el camino. Si logras usar ROS con éxito cuéntame por mis redes sociales que lo lograste… y si no tienes éxito por favor cuéntame que pasó para ayudarte a lograrlo, de antemano muchas gracias.