You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long. 2.0KB

Aruco detector

With this ROS2-Node can be determined the pose of different ArUco Markers. The goal of this project was to attach a marker on different robots, and get the absolute positions and orientations via a camera on the ceiling. However, this localization can also be applied to any other arbitary object. This project was created as an project thesis (MSY-Master).

Bild 1


  • Transforms3D

    For computing the pose the node requires this library. A detailed description can be found on:

    pip install transforms3d
  • usb_cam

    Usb_cam is a frequently used ros driver for V4L USB cameras. A detailed description can be found here:

    sudo apt get install ros-<ros2-distro>-usb-cam

    Important: It’s necessary to work with compressed images. Therefor you can use the image_transport library. A detailed description can be found here:

Running the code

For an easy start there is already created a launch file. All required parameters can be set and edited centrally here. The launch-file starts:

  • aruco_detector_node
  • usb_cam
  • rqt_image_view

    cd launch/
    ros2 launch

An overview about the running topics is illustrated in the next picture.

Bild 1


  • topic: /aruco/aruco_poses

    The aruco_detector_node publishes a custom ros2 message.

        int64[] marker_ids
        geometry_msgs/Pose[] poses

    The array marker_ids contains all detected ids of the ArUco Markers. The array poses contains all poses of the detected ArUco Markers. This message will be published to the topic .

  • topic: /aruco/aruco_output_images/compressed

    To this topic will be published the output images. In this images the detected ArCuo Marker is highlighted and the pose is drawn using a coordinate system.

    Bild 1