This node provides a global localization based on landmarks. On the ADC competition, these landmarks are [ar_track_alvar](http://wiki.ros.org/ar_track_alvar) tags. This node takes the filtered ar tag detections of both cameras and optimizes a landmark based slam problem to get the robot position. A landmarks based slam problem is the problem of optimize a number of robot poses with a map of landmarks. It uses [Ceres Solver](http://ceres-solver.org/index.html) to make the optimization.
This node provides a global localization based on landmarks. On the ADC competition, these landmarks are [ar_track_alvar](http://wiki.ros.org/ar_track_alvar) tags from the traffic signs and from additional localization signs. This node takes the filtered ar tag detections of both cameras and optimizes a landmark based slam problem to get the robot position. A landmarks based slam problem is the problem of optimize a number of robot poses with a map of landmarks. It uses [Ceres Solver](http://ceres-solver.org/index.html) to make the optimization.
The following image is a skecth of the input and output of the node.
...
...
@@ -16,6 +16,17 @@ To match a detection with a landmark the [Mahalanobis distance](https://en.wikip
On [parameters_adjust.md](./doc/parameters_adjust.md) there is an small explanation on how to adjust the node parameters.
The landmarks information can be loaded in two ways:
1. From the xodr file: This is the opendrive file that describres the cirucit, including the localization signs. Landmarks on this file are on opendrive frame reference system.
2. From a txt files: This is a txt file with the landmarks information. The information on this file is on global frame reference system. Each line defines a landmark with the following fields space separated:
***id** (double): Unique identifier of each landmark.
***x** (double): Landmark X coordenate.
***y** (double): Landmark Y coordenate.
***yaw** (double): Landmark yaw.
***marker_id** (integer): The ar_track_alvar marker id.
If the lanmarks are loaded from the xodr file, *load_landmarks_from_xodr* parameter must be set to true.
# ROS Interface
### Topic publishers
- ~**frame_data** (visualization_msgs/MarkerArray.msg): Visualization of the current slam problem. Red arrows represent the robot pose. Blue lines represent the landmarks seen from each robot pose.