制作apriltag

  • Post author:
  • Post category:其他



https://berndpfrommer.github.io/tagslam_web/making_tags/


https://github.com/berndpfrommer/tagslam_root


https://optitag.io/blogs/news/designing-your-perfect-apriltag

Designing the perfect Apriltag

TagSLAM root repository

Use this repository to get a complete ROS/catkin workspace with all dependencies for the

TagSLAM project

.

This repository relies heavily on

git submodules

.

Installation instructions

Since this is ROS package, you will need to

install ROS

. This repo has been tested on Ubuntu 16.04 (ROS Kinetic) and Ubuntu 18.04 (ROS Melodic). On top of it, install the catkin tools:

sudo apt install python-catkin-tools

TagSLAM’s backend is based on GTSAM, so you will need to add a PPA.

If you previously installed GTSAM, you need to first remove the older version:

sudo apt remove gtsam
sudo add-apt-repository --remove ppa:bernd-pfrommer/gtsam

Now add the official borglab ppa and install GTSAM:

sudo apt-add-repository ppa:borglab/gtsam-release-4.0
sudo apt update
sudo apt install libgtsam-dev libgtsam-unstable-dev

Clone the full repo including all submodules, into a a new catkin workspace (

tagslam_root

):

cd ~
git clone --recursive https://github.com/berndpfrommer/tagslam_root.git

For Ubuntu 18.04 and later:

Configure and compile:

cd ~/tagslam_root
catkin config -DCMAKE_BUILD_TYPE=Release
catkin build

For Ubuntu 16.04:

Ubuntu 16.04 lacks support for C++ standard 17, so you need to install a later version of cmake and g++-7 from PPA repositories:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-7 g++-7

Then

upgrade cmake

:

sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ xenial main'
sudp apt-get update
sudo apt-get install kitware-archive-keyring
sudo apt-key --keyring /etc/apt/trusted.gpg del C1F34CDD40CD72DA
sudo apt-get update
sudo apt-get install cmake

Direct cmake to use the g++-7 compiler:

cd ~/tagslam_root
catkin config -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=g++-7
catkin build

You will get tons of warning messages, but it should compile.

Quick test

Overlay the newly created workspace and run a quick test:

source ~/tagslam_root/devel/setup.bash
roslaunch tagslam tagslam.launch bag:=`rospack find tagslam`/example/example.bag

(the rosnode will not exit, so you have to Ctrl-C out of it)

License

This software and any future contributions to it are licensed under the

Apache License 2.0

.

How to print your own AprilTags

There is a handy little program in the TagSLAM repo (courtesy of the Kalibr folks) with which you can generate a pdf of an AprilTag:

sudo apt install python-pyx
rosrun tagslam make_tag.py --nx 1 --ny 1 --marginx 0.00 --marginy 0.00 --tsize 0.16 --tspace 0.0 --startid 4 --tfam t36h11 --borderbits 1 

参数含义:

parser = argparse.ArgumentParser(description=’Generate apriltag PDF.’, usage=usage)

outputOptions = parser.add_argument_group(‘Output options’)

outputOptions.add_argument(‘output’, nargs=”?”, default=”target”, help=’Output filename’)

genericOptions = parser.add_argument_group(‘Generic grid options’)

genericOptions.add_argument(‘–nx’, type=int, default=6, dest=’n_cols’, help=’The number of tags in x direction (default: %(default)s)\n’)

genericOptions.add_argument(‘–ny’, type=int, default=7, dest=’n_rows’, help=’The number of tags in y direction (default: %(default)s)’)

genericOptions.add_argument(‘–marginx’, type=float, default=0, dest=’marginx’, help=’Margin [m] in x direction (default: %(default)s)’)

genericOptions.add_argument(‘–marginy’, type=float, default=0, dest=’marginy’, help=’Margin [m] in y direction (default: %(default)s)’)

genericOptions.add_argument(‘–color’, default=”Black”, dest=’color’, help=’Color in cmyk space (default: %(default)s)’)    aprilOptions = parser.add_argument_group(‘Apriltag arguments’)

aprilOptions.add_argument(‘–tsize’, type=float, default=0.08, dest=’tsize’, help=’The size of one tag [m] (default: %(default)s)’)

aprilOptions.add_argument(‘–tspace’, type=float, default=0.3, dest=’tagspacing’, help=’The space between the tags in fraction of the edge size [0..1] (default: %(default)s)’)

aprilOptions.add_argument(‘–tfam’, default=’t36h11′, dest=’tagfamiliy’, help=’Familiy of April tags {0} (default: %(default)s)’.format(AprilTagCodes.TagFamilies.keys()))

aprilOptions.add_argument(‘–startid’, default=0, type=int, dest=’startid’, help=’Start number for apriltag (default: %(default)s)’)

aprilOptions.add_argument(‘–borderbits’, default=2, type=int, dest=’borderBits’, help=’number of bits used for black border (default: %(default)s)’)

aprilOptions.add_argument(‘–symm_corners’, default=False, dest=’symmCorners’, action=’store_true’, help=’add black corner squares (default: %(default)s)’)



版权声明:本文为wjydym原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。