You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+24-1Lines changed: 24 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -72,7 +72,8 @@ Some heuristics for when to choose other tag families:
72
72
1. If you need more tags, use tagStandard52h13
73
73
2. If you need to maximize the use of space on a small circular object, use tagCircle49h12 (or tagCircle21h7).
74
74
3. If you want to make a recursive tag use tagCustom48h12.
75
-
4. If you want compatibility with the ArUcO detector use tag36h11
75
+
4. If you need ArUco support, use the native ArUco families (e.g., `tagAruco4x4_50`, `tagAruco5x5_100`, `tagAruco6x6_250`, `tagAruco7x7_1000`, etc.). These are now fully integrated and optimized.
76
+
4. If you want compatibility with the legacy ArUco detector use tag36h11
76
77
77
78
If none of these fit your needs, generate your own custom tag family [here](https://github.com/AprilRobotics/apriltag-generation).
78
79
@@ -193,6 +194,28 @@ Note: The tag size should not be measured from the outside of the tag. The tag s
193
194
### Coordinate System
194
195
The coordinate system has the origin at the camera center. The z-axis points from the camera center out the camera lens. The x-axis is to the right in the image taken by the camera, and y is down. The tag's coordinate frame is centered at the center of the tag. From the viewer's perspective, the x-axis is to the right, y-axis down, and z-axis is into the tag.
195
196
197
+
### Handling Pose Ambiguity
198
+
Planar targets often result in two possible pose solutions with similar errors (the "ambiguity" problem). To retrieve the alternative solution, you can use:
199
+
200
+
```c
201
+
apriltag_pose_t pose1, pose2;
202
+
double err1 = estimate_tag_pose(&info, &pose1);
203
+
double err2;
204
+
205
+
// v and p are the object and image points used during the iteration
This is particularly useful when temporal filtering or additional constraints are used to disambiguate the tag's orientation.
210
+
211
+
Utility Functions
212
+
=================
213
+
AprilTag 3 now includes helper functions for deep-copying structures, which is essential for multi-threaded applications or when you need to store detections beyond the detector's lifecycle.
214
+
215
+
* `apriltag_detector_copy(td)`: Creates a clone of the detector configuration.
216
+
* `apriltag_detections_copy(detections)`: Returns a new `zarray_t` with deep copies of all `apriltag_detection_t` objects.
217
+
* `apriltag_detection_copy(src, dst)`: Performs a deep copy of a single detection into an existing structure.
0 commit comments