From 27a8486da759efbdb5ff356c23562cb16791c150 Mon Sep 17 00:00:00 2001 From: Christian Rauch Date: Tue, 17 May 2022 16:31:26 +0100 Subject: [PATCH] tag configuration with tags for jaffa and oats --- CMakeLists.txt | 3 +++ config/settings.yaml | 12 ++++++++++++ config/tags.yaml | 9 +++++++++ launch/apriltag.launch | 16 ++++++++++++++++ package.xml | 5 ++--- tags/tag36_11_00000.png | Bin 0 -> 113 bytes tags/tag36_11_00001.png | Bin 0 -> 116 bytes tags/tags.pdf | Bin 0 -> 10222 bytes tags/tags.tex | 24 ++++++++++++++++++++++++ 9 files changed, 66 insertions(+), 3 deletions(-) create mode 100644 config/settings.yaml create mode 100644 config/tags.yaml create mode 100644 launch/apriltag.launch create mode 100644 tags/tag36_11_00000.png create mode 100644 tags/tag36_11_00001.png create mode 100644 tags/tags.pdf create mode 100644 tags/tags.tex diff --git a/CMakeLists.txt b/CMakeLists.txt index 3a7e811..3fe5b4c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -190,6 +190,9 @@ include_directories( # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} # ) +install(DIRECTORY launch/ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch) +install(DIRECTORY config/ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/config) + ############# ## Testing ## ############# diff --git a/config/settings.yaml b/config/settings.yaml new file mode 100644 index 0000000..997bc8b --- /dev/null +++ b/config/settings.yaml @@ -0,0 +1,12 @@ +# AprilTag 3 code parameters +# Find descriptions in apriltag/include/apriltag.h:struct apriltag_detector +# apriltag/include/apriltag.h:struct apriltag_family +tag_family: 'tag36h11' # options: tagStandard52h13, tagStandard41h12, tag36h11, tag25h9, tag16h5, tagCustom48h12, tagCircle21h7, tagCircle49h12 +tag_threads: 4 # default: 2 +tag_decimate: 1.0 # default: 1.0 +tag_blur: 0.0 # default: 0.0 +tag_refine_edges: 1 # default: 1 +tag_debug: 0 # default: 0 +max_hamming_dist: 2 # default: 2 (Tunable parameter with 2 being a good choice - values >=3 consume large amounts of memory. Choose the largest value possible.) +# Other parameters +publish_tf: true # default: false \ No newline at end of file diff --git a/config/tags.yaml b/config/tags.yaml new file mode 100644 index 0000000..3d73d5b --- /dev/null +++ b/config/tags.yaml @@ -0,0 +1,9 @@ +# The tags (including the white border) are printed on a 10x10 grid, but the tag +# size is given by the size of the 8x8 grid without the white border. Hence, the +# values given here are 8/10 of the printed tag size. + +standalone_tags: + [ + {id: 0, size: 0.136, name: "jaffa"}, + {id: 1, size: 0.10, name: "oats"}, + ] diff --git a/launch/apriltag.launch b/launch/apriltag.launch new file mode 100644 index 0000000..a69c676 --- /dev/null +++ b/launch/apriltag.launch @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/package.xml b/package.xml index 3dcc06a..efb1c62 100644 --- a/package.xml +++ b/package.xml @@ -49,9 +49,8 @@ catkin - apriltag_ros - apriltag_ros - apriltag_ros + + apriltag_ros diff --git a/tags/tag36_11_00000.png b/tags/tag36_11_00000.png new file mode 100644 index 0000000000000000000000000000000000000000..be526dd7282c962d26747cd1fca50e2116a942ee GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4S$MiQhE&8Q|L|8yU=ZfvsW9wv z+Tk~Y#ftZ_g0@>=gTJEV>WP_ixGst&cPMi&$W~Y(AbVI;h?$|h|39PNhGVOMW-xfV L`njxgN@xNA&^I2X literal 0 HcmV?d00001 diff --git a/tags/tag36_11_00001.png b/tags/tag36_11_00001.png new file mode 100644 index 0000000000000000000000000000000000000000..43086c93685e4541efa0b94bd8e6801abf83ff90 GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4S$n!ThE&8Q|L|8yU=ZfvsW9wv z+Tmwn*5VUkmdU0bI?!{w};u%yrqpJZWYL&3;N3!HK!)=iLLV3_iVo299`=oHWx N22WQ%mvv4FO#oK8AWZ-O literal 0 HcmV?d00001 diff --git a/tags/tags.pdf b/tags/tags.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e1592238490e19084aad8974ca18b1b7b262a5a5 GIT binary patch literal 10222 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 literal 0 HcmV?d00001 diff --git a/tags/tags.tex b/tags/tags.tex new file mode 100644 index 0000000..1ea52f9 --- /dev/null +++ b/tags/tags.tex @@ -0,0 +1,24 @@ +\documentclass{article} +\usepackage{graphicx} +\usepackage[export]{adjustbox} + +\begin{document} + +% tag images +% https://github.com/AprilRobotics/apriltag-imgs + +\begin{figure} + \centering + \noindent\makebox[\textwidth]{% + \includegraphics[width=17cm,frame]{tag36_11_00000.png} + } +\end{figure} + +\begin{figure} + \centering + \noindent\makebox[\textwidth]{% + \includegraphics[width=12.5cm,frame]{tag36_11_00001.png} + } +\end{figure} + +\end{document}