A set of tools for tracking artags in ros.
See notebooks for tutorials.
rosrun ar_tracking_tools findMarkerBundlesNoKinect 5.0 0.2 0.2 /image/topic /info/topic /camera/frame /path/to/bundle.xml
roslaunch ar_tracking_tools bundle_tracking.launch pointcloud_topic:=/pointcloud/topic info_topic:=/info/topic use_depth:=True bundle_filenames:="/path/to/bundle1.xml, /path/to/bundle2.xml"
roslaunch ar_tracking_tools bundle_tracking.launch image_topic:=/image/topic info_topic:=/info/topic bundle_filenames:="/path/to/bundle1.xml, /path/to/bundle2.xml"
image_topic: Camera image topic pointcloud_topic: Point cloud topic info_topic: Camera info topic
bundle_filenames: A comma delimited list of xml configuration files. Each bundle will have its own frame, named by the file name and its markers will be displayed in a unique color.
use_depth: Flag to use depth data in addition to image data for tag tracking. Will produce more stable tag localization
publish_marker_tf: Flag to publish a tf for each marker. Is set to true when using depth.
max_new_marker_error: A threshold determining when new markers can be detected under uncertainty
max_track_error: A threshold determining how much tracking error can be observed before a tag is considered to have disappeared
median_filter_size: Median filter window size. If set to 0, then no median filtering is done. http://docs.pointclouds.org/1.7.1/classpcl_1_1_median_filter.html
use_ransac: Flag if RANSAC is used for bundle pose estimation
ransac_use_corners: Flag if corners are used in RANSAC pose estimation. If false, only centers of tags are used, which can be more stable but requires more tags to be detected.
ransac_dense_spacing: Distance between points generated on tag. This will weight larger tags more. Only corners and centers will be used if 0.
ransac_inlier_threshold: Distance(m) threshold for posints to be considered inliers in RANSAC step
ransac_max_iterations: Number of iterations done by RANSAC
ransac_refine: Flag if refinement should be run after RANSAC
<node name="bundle_tracker" pkg="ar_tracking_tools" type="alvarBundleTracker" respawn="false" output="screen" >
<param name="bundle_filenames" type="string" value="$(arg bundle_filenames)" />
<param name="publish_marker_tf" type="bool" value="$(arg publish_marker_tf)" />
<param name="max_new_marker_error" type="double" value="$(arg max_new_marker_error)" />
<param name="max_track_error" type="double" value="$(arg max_track_error)" />
<param name="use_depth" type="bool" value="$(arg use_depth)" />
<param name="use_ransac" type="bool" value="$(arg use_ransac)" />
<param name="ransac_use_corners" type="bool" value="$(arg ransac_use_corners)" />
<param name="ransac_inlier_threshold" type="double" value="$(arg ransac_inlier_threshold)" />
<param name="ransac_max_iterations" type="int" value="$(arg ransac_max_iterations)" />
<param name="ransac_refine" type="bool" value="$(arg ransac_refine)" />
<param name="ransac_dense_spacing" type="double" value="$(arg ransac_dense_spacing)" />
<remap from="in_image" to="$(arg image_topic)" />
<remap from="in_cloud" to="$(arg pointcloud_topic)" />
<remap from="in_camera_info" to="$(arg info_topic)" />
</node>