Skip to content

Conversation

@osnr
Copy link
Collaborator

@osnr osnr commented Jan 28, 2026

Update libapriltag to https://github.com/AprilRobotics/apriltag/tree/c5a4fc1cc5c6edcb5929dfc3a79f167bf173f7a5 which has a way more memory-efficient error correction mechanism.

So we can crank up error correction in our tag detector from our previous 1 bit to 3 bits, with ~no memory overhead.

I can't tell a huge difference, but this might make it more robust to projector interference and motion blur? Let me know what you all think -- will merge in a couple days probably.

osnr and others added 7 commits January 28, 2026 14:56
c5a4fc1c Merge pull request #421 from sidd-27/opti-hashtable
a00f7c3e fix warnings
16bfd23c adds testing
310dfb35 adds null checks to calloc and malloc
7d18fc56 refactor: implement pigeonhole based lookup table
31b29af3 Merge pull request #417 from chibai/master
7dc83848 add test_tag_pose_estimation for both c and py
dc6316dc add python wrap for estimate_tag_pose
4cdd4fcb Merge pull request #416 from rzblue/image_u8_static
5108e616 make internal image_u8 functions static
d63f8170 Merge pull request #414 from sidd-27/bug-capacity
05a40ba9 corrects capacity calculations
22b44c13 Merge pull request #405 from jvanvugt/joris/lfps-avoid-memcpy
2d0466d5 Merge pull request #404 from jvanvugt/joris/path-halving-union-find
ad4a17fe Use local variables for accumulation
717dab55 Use path halving in unionfind to improve performance
b1381d33 Merge pull request #403 from jvanvugt/joris/use-stackbuffer-for-ptsort
f10450ed Avoid malloc overhead for small arrays in ptsort
3c97a99d Merge pull request #402 from VincentMarnier/master
24c8ecc0 chore: added comments to cross-compilation.yml
02e4db11 chore: added workflow to test cross compilation
6d36272e fix: windows crosscompilation
d7aa51cb Merge pull request #400 from reprojection-calibration/readme-fix
da104694 Remove local build hint
179b3ad9 Fix opencv readme section
94be7839 Merge pull request #399 from christian-rauch/rel_345
72accb4e release version 3.4.5
1e98edb6 Merge pull request #398 from christian-rauch/colcon_almalinux
f525885e manually include 'pythread.h' in case this is not included by 'Python.h'
c2397321 remove manual git installation
a2d53aaf update 'actions/checkout'
df24e0e2 add AlmaLinux to colcon CI
a53b368f Merge pull request #396 from MqCreaple/pull-request
546680b9 add multithreading convolution for image_u8
59a2cf1d improve performance of image_u8_convolve_2D
3950db97 Merge pull request #393 from christian-rauch/rel_344
f2dc412d release version 3.4.4
41b39efa Merge pull request #390 from traversaro/patch-1
95dd4a1a When using CMake >= 3.24 use CMAKE_COMPILE_WARNING_AS_ERROR variable instead of setting `-Werror` directly
c2d99936 Merge pull request #392 from christian-rauch/update_windows_runner
b4330979 remove the colcon job on Windows due to issues with the GitHub actions: - ros-tooling/setup-ros#839 - ros-tooling/action-ros-ci#1000
68e98e28 update 'actions/setup-python' action
441967e6 update 'ros-tooling/action-ros-ci' action
8fd2152d replace deprecated 'windows-2019' runner with 'windows-latest'
ce3ccd6b Merge pull request #386 from Jgunde/master
34b5b740 Lock before releasing GIL
f11c949c Merge pull request #384 from Jgunde/patch-1
697ff80f Release GIL during detection
36763892 Merge pull request #377 from clysto/master
018a94a9 set linker flags only for target apriltag
41811f5e fix #352
fb2a4096 Merge pull request #371 from christian-rauch/release_343
8d6a4bc4 release version 3.4.3
5dc0286b Merge pull request #372 from christian-rauch/win32_lean_and_mean
fff05796 compile with WIN32_LEAN_AND_MEAN on Windows
41f5bb0c Merge pull request #297 from mitjap/fix-lean-and-mean
f765119f Merge pull request #368 from KySmith1/readme-coordinate-system
7f9467b7 Add clarity to tag coordinate system reference frame
fc2a7b20 Merge pull request #364 from cottsay/cmake-config-dir
c0d9ef15 Install CMake config to architecture-specific location
724a7d81 Merge pull request #362 from zhaoxi-scut/matd_memory_fix
0106e3e0 Close the zero variadic macro warning for Clang
6d0f9e0f Modify the memory allocation method of matd_t
4dfd338d Merge pull request #360 from cottsay/cottsay/top-level-tests
aa503c59 Call enable_testing() in top-level project
1121feac Merge pull request #346 from NewThinker-Jeffrey/jeffrey/master
8bd4f76a Merge pull request #356 from Chris-F5/remove-crlf
e285f15e Merge pull request #358 from Chris-F5/fix-readme
2e3fa040 Fix README C example
f444e368 Replace non-ASCII characters
20a047ca Remove CRLF line ends
786ad11f Merge pull request #353 from christian-rauch/ci_test_python
5e69ee2f test importing the apriltag Python wrapper
cb522aec Fix the inconsistent image coordinate conventions.
4b980f1a Use bilinear interpolation in refine_edges()
620b8423 Merge pull request #348 from christian-rauch/fix_test
a626cced reference corner coordinates for detection without decimation
9671af8e fix the tag ID comparison and let it return the tag difference
3806edf3 Merge pull request #341 from s-trinh/add_missing_copyright_header
9dfec684 Add missing copyright header in tag36h10.c file
188c0e02 Merge pull request #339 from berteauxjb/fix/workerpool
c16bba61 workerpool: Properly wait for initialization of worker threads
aa5951aa workerpool: Add predicate to condition variable startcond
64654c00 Merge pull request #337 from s-trinh/fix_WIN32_macro
78111bb1 Use "_WIN32" macro everywhere for consistency.
6319d842 Merge pull request #336 from Suave101/patch-1
f053d25d Update README.md
c4449c7b Merge pull request #332 from peci1/patch-1
11f30d37 apriltag_quad_thresh: Prevent using decimate for scale smaller than 1
21be60d7 Merge pull request #331 from LosWheatleynDew/master
f00d0193 changed name apriltag_py_type.docstring
12cf56b9 Merge pull request #329 from christian-rauch/ci_bloom
5c14b199 increment patch version to 3.4.2
dc221322 initialise 'maxv'
8497f08c test blooming Debian packages
abf7d58c Merge pull request #324 from christian-rauch/jazzy
8421879e increment the patch version
cb822e0b add next ROS 2 release "jazzy" to CI
7dcb86de Merge pull request #327 from christian-rauch/ubuntu2404
ff5462e4 sort detections in test and compare coordinate double values within limits
97d85070 order reference detections and remove index
6f9531b8 test all Ubuntu LTS versions
a93d6fc0 address "‘last_quadrant’ may be used uninitialized" error
16df4204 fix calloc parameter order
aafb845c rename custom 'getline' to avoid symbol lookup conflicts
5476e5a9 remove examples gitignore
59cae917 Merge pull request #325 from christian-rauch/fix_homography_assert
3e866a43 fix compilation with WIN32_LEAN_AND_MEAN
c8291621 skip homography when no row for swapping is found
c687312e avoid division-by-zero and drawing line between identical coordinates
1110fd6e Merge pull request #323 from christian-rauch/reset_errno
17d1e865 reset errno at the beginning of Python function that check it in the end
77a769ac Merge pull request #316 from christian-rauch/rel_34
77928d8e bump minor version to prepare release
e6cd3c7a Merge pull request #319 from EwingKang/fix_cmake_as_submodule
64e90400 Improve CMakeLists config path by using CMAKE_CURRENT_BINARY_DIR
51466ec5 Merge pull request #317 from christian-rauch/fix_len0
3a0a155d check for negative index
359a9840 check for 0 length
aa9e66ce check determinant first
f8ce1851 Merge pull request #314 from christian-rauch/test
44ce5f9e set C standard
9144bee4 add DLL to test folder for Windows CI tests
14c3a99b add tests
d8dd3657 run tests from "test" directory
ad010377 add example images with reference detections
69c21f0a Merge pull request #315 from christian-rauch/lang_cxx_optional
ef12c1c9 remove the shared libs option from colcon CI and use the default
ff7ecb49 require C++ language support only for the optional OpenCV demo
786ee019 rename pthreads_cross to a C source file
6a7b315e Merge pull request #313 from christian-rauch/rm_makefile
91aa0d11 remove old UNIX-specific Makefile
7a47a11c Merge pull request #311 from christian-rauch/test_shared_off
68ab7e39 remove gcc from macOS builds
590e0250 fix compilation under macOS with "Clang" instead of "AppleClang"
caa865a3 set Python install directory via CMAKE_INSTALL_PREFIX
e4b263b7 add python3-dev as build dependency
936a696b initialise last_theta
1ff4c8c6 test installation via CMake
95ae43a1 add generated docstring headers as dependency
880d9c71 set POSITION_INDEPENDENT_CODE for apriltag library
12220b33 default initialise PyMethodDef
ff5710fd fill PyModuleDef
37b3dccd use Python3_add_library to define Python library with all required flags
1d7cb87d manipulate signal handling only on POSIX compatible systems
0fb0111a remove trailing whitespace
1c4f81d2 use vtk_encode_string to encode text as C array
3a8a3142 only generate header
4178ef0a vtkEncodeString.cmake
607299e8 use FindPython3 to find Python development files and NumPy
f0a23f6f install Python and NumPy
b77a5634 test building shared/static libraries on CI
5084e305 update checkout action
7960bf06 cleanup the CMake pipeline

git-subtree-dir: vendor/apriltag
git-subtree-split: c5a4fc1cc5c6edcb5929dfc3a79f167bf173f7a5
Merge squashed commit from https://github.com/AprilRobotics/apriltag
Upstream removed Makefile in favor of CMake-only builds.

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
AprilTag upstream removed the Makefile in favor of CMake-only builds.
Update the folk Makefile to use CMake to build apriltag.

Changes:
- Build apriltag using CMake in vendor/apriltag/build directory
- Update all .folk files to reference ./vendor/apriltag/build/libapriltag.so
- Create symlink libapriltag.so -> libapriltag.dylib on macOS for compatibility
- Update clean target to remove build directory

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
(much more reasonable to do this now that libapriltag is updated to
have no memory overhead for it)
@osnr osnr requested review from cwervo and ppkn January 28, 2026 20:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants