Commit 7baba43a authored by Alejandro Lopez Gestoso's avatar Alejandro Lopez Gestoso
Browse files

Updated documentation

parent 6e13c636
## Description
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.
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](https://gitlab.iri.upc.edu/mobile_robotics/adc/adc_2021/iri_adc_tag_localization_filter) (features) 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.
......@@ -10,7 +10,7 @@ The following image is a basic representation of the slam problem. Is a sequence
<img src="doc/images/slam_problem_sketch.png" alt="Image: Slam problem overview">
When searching for new landmarks, there is a landmark time persistance filter that checks that a landmark is seen enough times on the same location before adding it as a mapped landmarks. An orientation filter can be enabled to check that it has a similar orientation on each detection.
When searching for new landmarks, there is a time persistance filter that checks that a feature is seen enough times on the same location before adding it as a mapped landmarks. An orientation filter can be enabled to check that it has a similar orientation on each detection.
To match a detection with a landmark the [Mahalanobis distance](https://en.wikipedia.org/wiki/Mahalanobis_distance) is used. Basically, a match between a detection and a landmark is done when the detection is inside an ellipse centered on the landmark. The ellipse is defined by the sensor noise and the mahalanobis distance parameter.
......@@ -25,7 +25,9 @@ The landmarks information can be loaded in two ways:
* **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.
The landmarks txt file can be generated loading the landmarks from the xodr file and setting the parameter *write_output_files* on a *Dynamic Reconfigure* window.
If the landmarks are loaded from the xodr file, *load_landmarks_from_xodr* parameter must be set to true.
# ROS Interface
### Topic publishers
......@@ -45,7 +47,7 @@ If the lanmarks are loaded from the xodr file, *load_landmarks_from_xodr* parame
- ~**global_frame** (String; default: map) Global frame id.
- ~**odom_frame** (String; default: odom) Odometry frame id.
- ~**base_link_frame** (String; default: base_link) Robot's base link frame id.
- ~**opendriveframe** (String; default: opendrive) Opendrive frame id.
- ~**opendrive_frame** (String; default: opendrive) Opendrive frame id.
- ~**tf_timeout** (Double; default: 0.2; min: 0.1; max: 2.0) Timeout to find a transform.
- ~**old_feature_timeout** (Double; default: 0.5; min: 0.1; max: 2.0) Timeout to set a features source as old.
- ~**amcl_pose_estimated_sigma** (Double; default: 1.0; min: 0.1; max: 10.0) AMCL pose sigma when using AMCL localization.
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment