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.
Para instalar el paquete en Ubuntu, abrimos un terminal y escribimos los siguiente:
sudo apt-get install ros-melodic-aruco-ros
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.
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
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.