| ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
Module DocumentationDetect and decode patterns known as ArUco markers, which are small 2D barcodes often used in augmented reality and robotics. ArUco and AprilTag markers are small 2D barcodes. Each marker corresponds to a number, encoded into a small grid of black and white pixels. The marker decoding algorithm is capable of locating, decoding, and of estimating the pose (location and orientation in space) of any compatible markers in the camera's field of view. ArUco and AprilTag markers are very useful as tags for many robotics and augmented reality applications. For example, one may place an ArUco next to a robot's charging station, an elevator button, or an object that a robot should manipulate. The implementation of ArUco used by JeVois is the one of OpenCV-Contrib, documented here: https://docs.opencv.org/4.x/d5/dae/tutorial_aruco_detection.html ArUco and AprilTag markers can be created with several standard dictionaries. Different dictionaries give rise to different numbers of pixels in the markers, and to different numbers of possible symbols that can be created using the dictionary. The default dictionary used by JeVois is ArUco 4x4 with 50 symbols. Other dictionaries are also supported by setting the parameter Creating and printing markersWe have created the 50 markers available in the default ArUco dictionary (4x4_50) as PNG images that you can download and print, at http://jevois.org/data/ArUco.zip To make your own, for example, using another dictionary, see the documentation of the ArUco component of JeVoisBase. Some utilities are provided with the component. Serial MessagesThis module can send standardized serial messages as described in Standardized serial messages formatting. When One message is issued for every detected ArUco, on every video frame. 2D messages when
3D messages when
If you will use the quaternion data (Detail message style; see Standardized serial messages formatting), you should probably set the See Standardized serial messages formatting for more on standardized serial messages, and Helper functions to convert coordinates from camera resolution to standardized for more info on standardized coordinates. Things to try
Computing and showing 3D poseThe OpenCV ArUco module can also compute the 3D location and orientation of each marker in the world when When doing pose estimation, you should set the For more about camera calibration, see this tutorial and http://jevois.org/basedoc/ArUco_8H_source.html Tutorial and videoCheck out this tutorial on how to build a simple visually-guided toy robot car for under $100 with JeVois, which uses ArUco at its core. A demo video is here:
| ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
|