├── .gitignore
├── .travis.yml
├── README
├── ar_track_alvar.rosinstall
├── ar_track_alvar
├── CHANGELOG.rst
├── CMakeLists.txt
├── bundles
│ ├── table_8_9_10.xml
│ ├── tags8and9.xml
│ └── truthTableLeg.xml
├── cfg
│ └── Params.cfg
├── include
│ └── ar_track_alvar
│ │ ├── Alvar.h
│ │ ├── AlvarException.h
│ │ ├── Bitset.h
│ │ ├── Camera.h
│ │ ├── Capture.h
│ │ ├── CaptureDevice.h
│ │ ├── CaptureFactory.h
│ │ ├── CaptureFactory_private.h
│ │ ├── CapturePlugin.h
│ │ ├── ConnectedComponents.h
│ │ ├── Container3d.h
│ │ ├── CvTestbed.h
│ │ ├── DirectoryIterator.h
│ │ ├── DirectoryIterator_private.h
│ │ ├── Draw.h
│ │ ├── EC.h
│ │ ├── FernImageDetector.h
│ │ ├── FernPoseEstimator.h
│ │ ├── FileFormat.h
│ │ ├── FileFormatUtils.h
│ │ ├── Filter.h
│ │ ├── GlutViewer.h
│ │ ├── IntegralImage.h
│ │ ├── Kalman.h
│ │ ├── Line.h
│ │ ├── Lock.h
│ │ ├── Marker.h
│ │ ├── MarkerDetector.h
│ │ ├── MultiMarker.h
│ │ ├── MultiMarkerBundle.h
│ │ ├── MultiMarkerFiltered.h
│ │ ├── MultiMarkerInitializer.h
│ │ ├── Mutex.h
│ │ ├── Mutex_private.h
│ │ ├── Optimization.h
│ │ ├── Platform.h
│ │ ├── Plugin.h
│ │ ├── Plugin_private.h
│ │ ├── Pose.h
│ │ ├── Ransac.h
│ │ ├── Rotation.h
│ │ ├── SfM.h
│ │ ├── Shared.h
│ │ ├── Threads.h
│ │ ├── Threads_private.h
│ │ ├── Timer.h
│ │ ├── Timer_private.h
│ │ ├── Tracker.h
│ │ ├── TrackerFeatures.h
│ │ ├── TrackerOrientation.h
│ │ ├── TrackerPsa.h
│ │ ├── TrackerStat.h
│ │ ├── TrifocalTensor.h
│ │ ├── Uncopyable.h
│ │ ├── UnscentedKalman.h
│ │ ├── Util.h
│ │ └── filter
│ │ ├── kinect_filtering.h
│ │ └── medianFilter.h
├── launch
│ ├── pr2_bundle.launch
│ ├── pr2_bundle_no_kinect.launch
│ ├── pr2_indiv.launch
│ ├── pr2_indiv_no_kinect.launch
│ └── pr2_train.launch
├── markers
│ ├── Markers_0_to_8.png
│ ├── Markers_9_to_17.png
│ └── table_8_9_10.png
├── nodes
│ ├── FindMarkerBundles.cpp
│ ├── FindMarkerBundlesNoKinect.cpp
│ ├── IndividualMarkers.cpp
│ ├── IndividualMarkersNoKinect.cpp
│ └── TrainMarkerBundle.cpp
├── package.xml
├── src
│ ├── Alvar.cpp
│ ├── Alvar.h.cmake
│ ├── Bitset.cpp
│ ├── CMakeLists.txt
│ ├── Camera.cpp
│ ├── CaptureDevice.cpp
│ ├── CaptureFactory.cpp
│ ├── CaptureFactory_unix.cpp
│ ├── CaptureFactory_win.cpp
│ ├── ConnectedComponents.cpp
│ ├── CvTestbed.cpp
│ ├── DirectoryIterator.cpp
│ ├── DirectoryIterator_unix.cpp
│ ├── DirectoryIterator_win.cpp
│ ├── Draw.cpp
│ ├── EC.cpp
│ ├── FernImageDetector.cpp
│ ├── FernPoseEstimator.cpp
│ ├── FileFormatUtils.cpp
│ ├── Filter.cpp
│ ├── GlutViewer.cpp
│ ├── IntegralImage.cpp
│ ├── Kalman.cpp
│ ├── Line.cpp
│ ├── Marker.cpp
│ ├── MarkerDetector.cpp
│ ├── MultiMarker.cpp
│ ├── MultiMarkerBundle.cpp
│ ├── MultiMarkerFiltered.cpp
│ ├── MultiMarkerInitializer.cpp
│ ├── Mutex.cpp
│ ├── Mutex_unix.cpp
│ ├── Mutex_win.cpp
│ ├── Optimization.cpp
│ ├── Platform.cpp
│ ├── Plugin.cpp
│ ├── Plugin_unix.cpp
│ ├── Plugin_win.cpp
│ ├── Pose.cpp
│ ├── Ransac.cpp
│ ├── Rotation.cpp
│ ├── SampleCamCalib.cpp
│ ├── SampleCvTestbed.cpp
│ ├── SampleFilter.cpp
│ ├── SampleIntegralImage.cpp
│ ├── SampleLabeling.cpp
│ ├── SampleMarkerCreator.cpp
│ ├── SampleMarkerDetector.cpp
│ ├── SampleMarkerHide.cpp
│ ├── SampleMarkerlessCreator.cpp
│ ├── SampleMarkerlessDetector.cpp
│ ├── SampleMultiMarker.cpp
│ ├── SampleMultiMarkerBundle.cpp
│ ├── SampleOptimization.cpp
│ ├── SamplePointcloud.cpp
│ ├── SampleTrack.cpp
│ ├── SfM.cpp
│ ├── Threads.cpp
│ ├── Threads_unix.cpp
│ ├── Threads_win.cpp
│ ├── Timer.cpp
│ ├── Timer_unix.cpp
│ ├── Timer_win.cpp
│ ├── TrackerFeatures.cpp
│ ├── TrackerOrientation.cpp
│ ├── TrackerPsa.cpp
│ ├── TrackerStat.cpp
│ ├── TrifocalTensor.cpp
│ ├── UnscentedKalman.cpp
│ ├── Util.cpp
│ ├── kinect_filtering.cpp
│ ├── medianFilter.cpp
│ └── platform
│ │ ├── CMakeLists.txt
│ │ ├── capture_plugin_cmu
│ │ ├── CMakeLists.txt
│ │ ├── CapturePluginCmu.cpp
│ │ └── CapturePluginCmu.h
│ │ ├── capture_plugin_dscapture
│ │ ├── CMakeLists.txt
│ │ ├── CapturePluginDSCapture.cpp
│ │ └── CapturePluginDSCapture.h
│ │ ├── capture_plugin_file
│ │ ├── CMakeLists.txt
│ │ ├── CapturePluginFile.cpp
│ │ └── CapturePluginFile.h
│ │ ├── capture_plugin_highgui
│ │ ├── CMakeLists.txt
│ │ ├── CapturePluginHighgui.cpp
│ │ └── CapturePluginHighgui.h
│ │ └── capture_plugin_ptgrey
│ │ ├── CMakeLists.txt
│ │ ├── CapturePluginPtgrey.cpp
│ │ └── CapturePluginPtgrey.h
└── test
│ ├── marker_abstract.launch.xml
│ ├── marker_arg_config-basic.test
│ ├── marker_arg_config-full.test
│ ├── marker_param_config-basic.test
│ ├── marker_param_config-full.test
│ ├── points
│ ├── test_ar.py
│ ├── test_kinect_filtering.cpp
│ ├── test_markerdetect.launch.xml
│ └── test_points.cpp
└── ar_track_alvar_msgs
├── CHANGELOG.rst
├── CMakeLists.txt
├── README
├── msg
├── .gitignore
├── AlvarMarker.msg
└── AlvarMarkers.msg
└── package.xml
/.gitignore:
--------------------------------------------------------------------------------
1 | *.pyc
2 | *.o
3 | *.so
4 | *build
5 | *lib
6 | *msg_gen
7 | *srv_gen
8 | *bin
9 | *~
10 | src/ar_track_alvar
11 | *.user
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | sudo: required
2 | dist: trusty
3 | language: generic
4 |
5 | compiler:
6 | - gcc
7 |
8 | notifications:
9 | email:
10 | on_failure: always
11 | recipients:
12 | - 130s@2000.jukuin.keio.ac.jp
13 | env:
14 | global:
15 | - ROS_PARALLEL_JOBS=-j4
16 | matrix:
17 | - ROS_DISTRO="kinetic" ROS_REPOSITORY_PATH=http://packages.ros.org/ros/ubuntu USE_DEB=true NOT_TEST_INSTALL=true ABICHECK_URL='github:ros-perception/ar_track_alvar/#kinetic-devel'
18 | - ROS_DISTRO="kinetic" ROS_REPOSITORY_PATH=http://packages.ros.org/ros-shadow-fixed/ubuntu USE_DEB=true NOT_TEST_INSTALL=true VERBOSE_OUTPUT='true'
19 | - ROS_DISTRO="kinetic" PRERELEASE=true
20 | - ROS_DISTRO="lunar" ROS_REPOSITORY_PATH=http://packages.ros.org/ros/ubuntu USE_DEB=true NOT_TEST_INSTALL=true
21 | - ROS_DISTRO="lunar" ROS_REPOSITORY_PATH=http://packages.ros.org/ros-shadow-fixed/ubuntu USE_DEB=true NOT_TEST_INSTALL=true VERBOSE_OUTPUT='true'
22 | - ROS_DISTRO="lunar" PRERELEASE=true
23 | - ROS_DISTRO="melodic" ROS_REPOSITORY_PATH=http://packages.ros.org/ros/ubuntu USE_DEB=true NOT_TEST_INSTALL=true ABICHECK_URL='github:ros-perception/ar_track_alvar/#kinetic-devel'
24 | - ROS_DISTRO="melodic" ROS_REPOSITORY_PATH=http://packages.ros.org/ros-shadow-fixed/ubuntu USE_DEB=true NOT_TEST_INSTALL=true VERBOSE_OUTPUT='true'
25 | - ROS_DISTRO="melodic" PRERELEASE=true
26 | matrix:
27 | allow_failures:
28 | - env: ROS_DISTRO="kinetic" PRERELEASE=true
29 | - env: ROS_DISTRO="lunar" ROS_REPOSITORY_PATH=http://packages.ros.org/ros/ubuntu USE_DEB=true NOT_TEST_INSTALL=true
30 | - env: ROS_DISTRO="lunar" ROS_REPOSITORY_PATH=http://packages.ros.org/ros-shadow-fixed/ubuntu USE_DEB=true NOT_TEST_INSTALL=true VERBOSE_OUTPUT='true'
31 | - env: ROS_DISTRO="lunar" PRERELEASE=true
32 | - env: ROS_DISTRO="melodic" PRERELEASE=true
33 | install:
34 | - git clone https://github.com/ros-industrial/industrial_ci.git .ci_config
35 |
36 | script:
37 | - .ci_config/travis.sh
38 |
--------------------------------------------------------------------------------
/README:
--------------------------------------------------------------------------------
1 | See [ROS wiki](http://wiki.ros.org/ar_track_alvar) for the users document.
2 |
3 |
4 |
--------------------------------------------------------------------------------
/ar_track_alvar.rosinstall:
--------------------------------------------------------------------------------
1 | - git: {local-name: ar_track_alvar_metapkg, uri: 'https://github.com/sniekum/ar_track_alvar.git', version: indigo-devel}
2 |
3 |
--------------------------------------------------------------------------------
/ar_track_alvar/bundles/table_8_9_10.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/ar_track_alvar/bundles/tags8and9.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/ar_track_alvar/bundles/truthTableLeg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
--------------------------------------------------------------------------------
/ar_track_alvar/cfg/Params.cfg:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 |
3 | PACKAGE = "ar_track_alvar"
4 |
5 | from dynamic_reconfigure.parameter_generator_catkin import *
6 |
7 | gen = ParameterGenerator()
8 |
9 | gen.add("enabled", bool_t, 0, "Enable/disable tracking, unsubscribing from camera topic to stop openni processing", True)
10 | gen.add("max_frequency", double_t, 0, "Maximum processing rate; frames coming at a higher rate are discarded", 10.0, 1.0, 30.0)
11 | gen.add("marker_size", double_t, 0, "The width in centimeters of one side of the black square marker border", 10.0, 1.0, 100.0)
12 | gen.add("max_new_marker_error", double_t, 0, "A threshold determining when new markers can be detected under uncertainty", 0.08, 0.0, 2.0)
13 | gen.add("max_track_error", double_t, 0, "A threshold determining how much tracking error can be observed before an tag is considered to have disappeared", 0.2, 0.0, 4.0)
14 |
15 | # Second arg is node name it will run in (doc purposes only), third is generated filename prefix
16 | exit(gen.generate(PACKAGE, "ar_track_alvar_configure", "Params"))
17 |
--------------------------------------------------------------------------------
/ar_track_alvar/include/ar_track_alvar/AlvarException.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of ALVAR, A Library for Virtual and Augmented Reality.
3 | *
4 | * Copyright 2007-2012 VTT Technical Research Centre of Finland
5 | *
6 | * Contact: VTT Augmented Reality Team
7 | *
8 | *
9 | * ALVAR is free software; you can redistribute it and/or modify it under the
10 | * terms of the GNU Lesser General Public License as published by the Free
11 | * Software Foundation; either version 2.1 of the License, or (at your option)
12 | * any later version.
13 | *
14 | * This library is distributed in the hope that it will be useful, but WITHOUT
15 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
17 | * for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with ALVAR; if not, see
21 | * .
22 | */
23 |
24 | #ifndef ALVAR_EXCEPTION_H
25 | #define ALVAR_EXCEPTION_H
26 |
27 | /**
28 | * \file AlvarException.h
29 | *
30 | * \brief This file implements the ALVAR exception class.
31 | */
32 |
33 | #include
34 |
35 | namespace alvar {
36 |
37 | /**
38 | * \brief ALVAR exception class.
39 | */
40 | class AlvarException : public std::runtime_error
41 | {
42 | public:
43 | AlvarException(const char *s) : std::runtime_error(s) { }
44 | };
45 |
46 | }
47 |
48 | #endif
49 |
--------------------------------------------------------------------------------
/ar_track_alvar/include/ar_track_alvar/CaptureDevice.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of ALVAR, A Library for Virtual and Augmented Reality.
3 | *
4 | * Copyright 2007-2012 VTT Technical Research Centre of Finland
5 | *
6 | * Contact: VTT Augmented Reality Team
7 | *
8 | *
9 | * ALVAR is free software; you can redistribute it and/or modify it under the
10 | * terms of the GNU Lesser General Public License as published by the Free
11 | * Software Foundation; either version 2.1 of the License, or (at your option)
12 | * any later version.
13 | *
14 | * This library is distributed in the hope that it will be useful, but WITHOUT
15 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
17 | * for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with ALVAR; if not, see
21 | * .
22 | */
23 |
24 | #ifndef CAPTUREDEVICE_H
25 | #define CAPTUREDEVICE_H
26 |
27 | /**
28 | * \file CaptureDevice.h
29 | *
30 | * \brief This file implements a capture device to hold camera information.
31 | */
32 |
33 | #include "Alvar.h"
34 |
35 | #include
36 |
37 | namespace alvar {
38 |
39 | /**
40 | * \brief CaptureDevice holder for camera information.
41 | *
42 | * CaptureDevice contains the desired backend, the id and description of the camera.
43 | */
44 | class ALVAR_EXPORT CaptureDevice
45 | {
46 | public:
47 | /**
48 | * \brief Constructor.
49 | *
50 | * \param captureType The type of capture backend.
51 | * \param id The id of the camera.
52 | * \param description A human readable description of the camera.
53 | */
54 | CaptureDevice(const std::string captureType, const std::string id, const std::string description = "");
55 |
56 | /**
57 | * \brief Destructor.
58 | */
59 | ~CaptureDevice();
60 |
61 | /**
62 | * \brief The type of capture backend.
63 | */
64 | std::string captureType() const;
65 |
66 | /**
67 | * \brief The id of the camera.
68 | */
69 | std::string id() const;
70 |
71 | /**
72 | * \brief The description of the camera.
73 | */
74 | std::string description() const;
75 |
76 | /**
77 | * \brief A unique name consisting of the capture type and the id.
78 | */
79 | std::string uniqueName() const;
80 |
81 | private:
82 | std::string mCaptureType;
83 | std::string mId;
84 | std::string mDescription;
85 | };
86 |
87 | } // namespace alvar
88 |
89 | #endif
90 |
--------------------------------------------------------------------------------
/ar_track_alvar/include/ar_track_alvar/CaptureFactory_private.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of ALVAR, A Library for Virtual and Augmented Reality.
3 | *
4 | * Copyright 2007-2012 VTT Technical Research Centre of Finland
5 | *
6 | * Contact: VTT Augmented Reality Team
7 | *
8 | *
9 | * ALVAR is free software; you can redistribute it and/or modify it under the
10 | * terms of the GNU Lesser General Public License as published by the Free
11 | * Software Foundation; either version 2.1 of the License, or (at your option)
12 | * any later version.
13 | *
14 | * This library is distributed in the hope that it will be useful, but WITHOUT
15 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
17 | * for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with ALVAR; if not, see
21 | * .
22 | */
23 |
24 | #ifndef CAPTUREFACTORY_PRIVATE_H
25 | #define CAPTUREFACTORY_PRIVATE_H
26 |
27 | #include
28 | #include