ArUco library is several times faster than Apriltags3, consumes less CPU resources and has comparable accuracy of marker position estimation (in the center of the image)
ArUco library files are downloaded and installed during docker image build
aruco_caller.cpp is used as "adaper" to the ArUco library and provides python bindings using Boost.Python
aruco_lib_adapter.py plays the same role as apriltags3.py: wraps calls to detection functions
Tests in aruco_lib_adapter.py are the same as in apriltags3.py and require import of apriltags3-py submodule for the image dataset
Since AprilTagExtended.msg has been removed from duckietown/dt-ros-commons images, it is stored separately in ros/src/duckietown_msgs/msg
ArUco library requires opencv-4.3.0
Some AprilTagExtended.msg fields are no longer supported: hamming, decision_margin, homography, center, pose_err
Building docker images on a computer or rasberry pi differs only in the tag of the base image (duckietown/dt-ros-commons): daffy-amd64 or daffy-arm32v7
ArUco library configuration is done by editing the yml file (default - lib/src/aruco/config.yml) and specifying the mode (DFC or STD)
If ACQ_TEST_STREAM is set to 0, the images will be decompressed on the c++ side, saving processing time
Notes
aruco_caller.cpp
is used as "adaper" to the ArUco library and provides python bindings using Boost.Pythonaruco_lib_adapter.py
plays the same role asapriltags3.py
: wraps calls to detection functionsaruco_lib_adapter.py
are the same as inapriltags3.py
and require import ofapriltags3-py
submodule for the image datasetAprilTagExtended.msg
has been removed fromduckietown/dt-ros-commons
images, it is stored separately inros/src/duckietown_msgs/msg
opencv-4.3.0
AprilTagExtended.msg
fields are no longer supported:hamming
,decision_margin
,homography
,center
,pose_err
duckietown/dt-ros-commons
):daffy-amd64
ordaffy-arm32v7
lib/src/aruco/config.yml
) and specifying the mode (DFC
orSTD
)ACQ_TEST_STREAM
is set to0
, the images will be decompressed on the c++ side, saving processing time