@@ -4,8 +4,17 @@ This node provides a global localization based on landmarks. On the ADC competit
The following image is a skecth of the input and output of the node.
<imgsrc="doc/images/landmarks_slam_solver_sketch.png"alt="Image: General overview">
The following image is a basic representation of the slam problem.
<imgsrc="doc/images/slam_problem_sketch.png"alt="Image: Slam problem overview">
When searching for new landmarks, there is a landmarks time persistance filter that checks that a landmark is seen enought times on the same location before adding it as a mapped landmarks.
To match a detection with a landmark the [Mahalanobis distance](https://en.wikipedia.org/wiki/Mahalanobis_distance) is used.
On [parameters_adjust.md](./doc/parameters_adjust.md) there is an small explanation on how to adjust the node parameters.
# ROS Interface
### Topic publishers
...
...
@@ -21,10 +30,60 @@ The following image is a basic representation of the slam problem.
- ~**rear_features** (iri_adc_msgs/feature_array.msg): Incoming detections from the rear camera.
### Parameters
#####General
- ~**rate** (Double; default: 10.0; min: 0.1; max: 1000) The main node thread loop rate in Hz.
- ~**global_frame** (String; default: map) Global frame id.
- ~**landmarks_candidates_filter_en** (Boolean; default: False) Boolean to filter landmarks checking if it's a feature on the following scans before adding it as landmark.
- ~**landmarks_filter_orientation_en** (Boolean; default: False) Boolean to add orientation filter to landmarks time persistance filter.
[Download](http://ceres-solver.org/installation.html#getting-the-source-code) the latest stable Ceres release and install it following the [linux installation tutorial](http://ceres-solver.org/installation.html#linux).
Move to the active workspace:
```bash
roscd &&cd ../src
...
...
@@ -39,6 +98,7 @@ roscd
cd ..
rosdep install -i -r --from-paths src
```
Compile the workspace:
```
catkin_make
...
...
@@ -46,7 +106,28 @@ catkin_make
## How to use it
- Standalone test
This node provides a basic launch file named **node.launch** intended to be included on a general launch file with the following arguments:
On this document there are some guidelines to adjust some important parameters.
# Adjust landmarks matching
If you realize that some detections are close to a landmark but is not matched with the landmark, you can adjust the following parameters:
***sensor_sigma_th** and **sensor_sigma_r**: These parameters define the basic ellipse for matching purposes. Bigger values on these parameters make a bigger ellipse. **WARNING:** Modifiying these parameters also affects to the covariance calculation and optimization.
***landmark_mahalanobis_dist**: This parameters amplifies the ellipse.
# Adjust how much you trust on the camera information
You can modify the following parameters to adjust how much you trust on your ar detection information. **WARNING:** Modifiying these parameters also afects to the covariance calculation and optimization:
***sensor_sigma_th** and **sensor_sigma_r**: Bigger values on these parameters mean less trust on the laser information. **WARNING:** Modifiying these parameters also afects to the landmarks matching.
# Adjust how much you trust on the odometry information
You can modify the following parameters to adjust how much you trust on your odometry information. **WARNING:** Modifiying these parameters also afects to the covariance calculation and optimization:
***odom_fxy**, **odom_fth**, **odom_fxyth** and **odom_sigma_min**: Bigger values on these parameters mean less trust on the odometry information.
# Adjust how much you trust on the landmark localization
To modify the covariance calculation you can adjust the sensor sigma parameters and the odom noise parameters. Bigger values on these parameters mean less trust on the localization. **WARNING:** Modifying sensor sigmas also afects to the landmarks matching.
# Adjust how much you trust on the amcl localization
You can modify the following parameters to adjust how much you trust on your amcl localization. **WARNING:** Modifiying these parameters also afects to the covariance calculation and optimization:
***amcl_pose_estimated_sigma**: Bigger values on these parameters mean less trust on the amcl localization.