We now offer AprilTag calibration targets on Dibond with an Anti-Reflective surface "flood white" print option for a true matte finish, making them more easily detected in your computer vision pipeline.
Are you looking to pre-calibrate your camera with a calibration target to be as accurate as possible? Our custom AprilTag targets are printed directly onto a rigid on premium 1/8 inch Dibond, making them the perfect calibration boards to calibrate cameras.
Direct to substrate printing at 1000 dpi with anti-reflective surface "flood white" authentic matte finish allows for easy detection in your computer vision pipeline because of its optical performance and physical robustness.
Dibond signage has forever been an industry standard for indoor and outdoor business signs. The material is water, weather, warp resistant and rust proof. It's ultra flat and rigid structure makes Dibond the perfect material for calibration targets.
AprilTags are usable in a wide variety of applications, for instance, camera calibration. Once organized in a uniform sequence, you can use AprilTag makers like other calibration patterns.
So, what are AprilTags? In what instances can you use AprilTags, and under what conditions?
What can affect the accuracy of your results? How do you solve these issues to ensure pinpoint outcomes?
This guide takes you through the AprilTag frequently asked questions to ease your future applications with these tags.
AprilTags refer to the visual fiducial system, usable in numerous applications like camera calibration, augmented reality, and robotics. Apriltags offer a method of 3D positioning and identification, even under reduced visibility.
These tags function like barcodes. They store little quantities of information (tag ID) while simultaneously facilitating straightforward and precise tag pose estimation in six dimensions (x, y, z, roll, pitch, yaw).
With the origin of the AprilTags project being the University of Michigan, you can learn a lot about this software from the dedicated research on the subject on their website. The team provides implementations in C and Java in reading AprilTags from your camera, and you can find more tag-reading implementations online.
Besides this software, an MIT (Massachusetts Institute of Technology) student developed a C++ implementation. Their website offers printable AprilTags encompassing multiple tag families, which you can access in PDF format.
Hydro and ROS Groovy lack inbuilt AprilTag identification software. However, it is possible to convert the MIT C++ implementation code into a functioning ROS package to produce AprilTags seen in your camera image as TensorFlow messages and transforms.
April Tags can achieve accuracy within four centimeters from the original pose if your camera lies within a two-meter radius from your tag. The distance of the robot from the tag affects the precision inversely.
There are various crucial aspects to consider before applying April Tags.
Using a very affordable camera, say costing under $20, can immensely affect accuracy. Your tag detections with such a unit are unlikely to provide reliable outcomes. Moving such a camera while detecting your Apriltags can further degrade the quality of your output.
With a more premium camera, the quality of your results is likely to be good. You can achieve pose estimation accuracy with proper tuning of parameters.
As your robot moves, especially during turning, pose estimation can veer off accurate results by even over 20 degrees. The range can also vary by up to 75 centimeters.
The best approach is halting immediately an April Tag gets detected. This way, the likelihood of achieving a more precise pose estimation is higher.
Typically, you can achieve pose accuracy up to about 2.4 meters. Beyond this level, the results tend to vary substantially. Consequently, a robot shouldn't localize unless within the 2.4-meter threshold range.
As seen, the inaccuracy of robots can result from several reasons. Another potential cause of localization inaccuracy is the failure to meet the set requirements for the given hardware you are using. An example would be using an unsuitable focal length.
For instance, if your Kinect sensor has a smaller focal length than the required value in your software, your outcome may vary. The robot assumes it is closer to your tag than true, resulting in an imprecise tag size approximation.
With the usage of ideal parameters, precision improves by a few centimeters within close range and increases immensely when the distance increases.
When using the April Tag node, an issue is your frame's dependency on the moving body's orientation. The body’s orientation can alter your frame and make it challenging to achieve a uniform coordinate system.
The April Tag transform is the source code, which though achieving frame consistency, can be quite noisy. A RANSAC filter can help you with this issue. Relying on the IMU (Inertial Measurement Unit) orientation rather than the April Tag orientation during transformation can help address the errors.
Besides AprilTags, you can also use AR-tag to localize or estimate poses, though these get primarily used in Augmented Reality. And while they may not be as good as Caltags, April Tags offer more precision than ARtags, especially when lighting conditions are below the required levels.
AprilTags support a wide variety of usages as visual markers in localization, object detection, and as a camera calibration target. Although similar to QR codes, AprilTags encode less information. You can, therefore, decode AprilTags faster, a vital feature in various fields like real-time robotics.
We shall use the readAprilTag function in this example to localize and detect AprilTags in calibration patterns. This function accommodates all standard tag families.
The example also performs end-to-end calibration using Computer Vision Toolbox™ functions. We replace the checkerboard pattern with an evenly-spaced AprilTags grid.
The benefits of using AprilTags as calibration patterns are:
You can also use the method below with other calibration patterns like a circle grid rather than the default checkerboard patterns.
Download and draw up your tag images. You can download pre-made tags for all supported families with a web browser from AprilRobotics.
You can use a helperGenerateAprilTagPattern function to generate calibration targets using your tag image for a particular placement of tags. You can obtain the pattern image in calibPattern, which you can then use to print your AprilTag pattern (from MATLAB). The example employs the tag36h11 family. These offer a worthwhile trade-off between false-positive detections and detection performance.
Applying the readAprilTag function to the above pattern produces detections in which the border positions of individual tags fall into the same group. You can use the helperAprilTagToCheckerLocations function to change the above arrangement into a column-major positioning like a checkerboard.
Image source (tag36h11 family): screenshot
You must print the formulated calibration pattern on a flat surface then use the camera you want to calibrate to take the pattern's images.
As you prepare your images for calibration, here are a few issues to keep in mind:
Use the helperDetectAprilTagCorners function to identify and localize your AprilTags from the captured pictures. Arrange the photos like a checkerboard pattern to 0ffer you the vital AprilTag points for the calibration process.
The generated AprilTag print appears in a manner like that of a checkerboard target. Therefore, you can determine the world coordinates for the coinciding image coordinates you got in imagePoints with the help of the generateCheckerboardPoints function.
The tag size replaces the size of the square, and you can obtain the board size from step two. Measure the size of your tag between your tag's exterior black edges.
Use the estimateCameraParameters function to approximate your camera's parameters. You can do this using the points that coincided between your photo and the world coordinate system.
Gauge how precise your extrinsic camera parameters ( those indicating the planes of your AprilTags in your captured photos) and the calibration are based on your findings.
Assess the positions of the detected picture points and your reprojected points gotten from the approximated camera parameters.
There are three main AprilTag supporting functions during the calibration process:
Although the message in the example above shows how to use AprilTag markers in camera calibration, it is not specifically tied to AprilTags. The same method is usable in several applications with other calibration patterns.
The estimateCameraParameters function vital in obtaining your camera parameters needs:
Provided you can achieve these two necessities; you can follow the above calibration workflow.
Dave was very helpful with making edits on the illustrator file and made helpful suggestions for what would be the best material for my project needs.
Great service and really really fast turnaround!