Radar SLAM
Landmark management for radar SLAM
The aim of this project is to investigate the use of rotating synthetic aperture radar (RoSAR) in simultaneous localization and mapping (SLAM).
The first stage of this project has focused on developing a landmark management scheme [1] taking account of the following:
Measurements which are not selected are used to determine if there are any new landmarks.
To determine whether an existing landmark should be deleted or an unconfirmed landmark should be confirmed we use M/N logic - if a landmark has been observed M times in the last N timesteps it is confirmed/deleted.
The first stage of this project has focused on developing a landmark management scheme [1] taking account of the following:
- Landmarks contain multiple scattering/reflecting points
- The angle between the landmark and the platform the sensor is mounted on, changes with the movement of the platform, resulting in varying numbers of radar detections over time
- Clutter in the scene may result in false detections
Measurements which are not selected are used to determine if there are any new landmarks.
To determine whether an existing landmark should be deleted or an unconfirmed landmark should be confirmed we use M/N logic - if a landmark has been observed M times in the last N timesteps it is confirmed/deleted.
graph TD A(k = 1) --> B(EKF Prediction) B --> C(Get radar measurements Zk) C --> S1(Calculate distances
landmarks to measurements) S1 --> S2{Distances
< threshold?} S2 --"Yes"--> G(Associate measurements) S2 --"No"--> H(Cluster measurements) G --> I(Delete landmarks) H --> J(Confirm landmarks) J --> K(Merge landmarks) I --> D(k = k + 1) K --> D D --> B classDef highlight fill:#9cd9eb,stroke:#f92080,stroke-width:1px; class G,H,I,J,K highlight;
Measurement Association
graph LR A1(For each selected measurement) A1 --> A2(Calculate log distances) A2 --> A3{log distance
< threshold?} A3 --"Yes"--> A4(Update EKF state)
The first step is to check whether the selected measurements can be associated with existing landmarks based on a log distance measure.
The associated measurements are used to update the EKF state.
The associated measurements are used to update the EKF state.
Landmark Deletion
graph LR D1(For each landmark in state) D1 --> D2{Landmark associated
with measurements?} D2 --"Yes"--> D3(Update landmark) D2 --"No"--> D4{Landmark within range?} D4 --"Yes"--> D5{Landmark meets M/N
logic criteria?} D5 --"Yes"--> D6(Delete landmark)
In this step if a landmark is not associated with any measurements and is close enough to the sensor that it should be observed, we use M/N logic determine if the landmark should be deleted.
Deleting landmarks allows us to remove any which may have been incorrectly initialized or may have left the scene (i.e. a car has now left the car park).
Deleting landmarks allows us to remove any which may have been incorrectly initialized or may have left the scene (i.e. a car has now left the car park).
Measurement Clustering
graph TD C1(Cluster unselected measurements) C1 --> C2(For each cluster) C2 --> C3(Calculate distances landmarks to clusters) C3 --> C4{Distances < threshold?} C4 --"Yes"--> C5(Update landmark) C4 --"No"--> C6(Add cluster to unconfirmed landmarks)
Measurements which were not initially selected as close to an existing landmark are clustered.
If a cluster is within a specified distance of an existing landmark it is used to update the landmark otherwise it is considered an unconfirmed landmark.
If a cluster is within a specified distance of an existing landmark it is used to update the landmark otherwise it is considered an unconfirmed landmark.
Landmark Confirmation
graph TD CL1(For each unconfirmed landmark) --> CL2{Number of measurements
> threshold?} CL2 --"Yes"--> CL3(Confirm landmark) CL2 --"No"--> CL4{Landmark meets M/N
logic criteria?} CL4 --"Yes"--> CL5(Confirm landmark)
There are two ways of confirming a landmark:
- If the number of measurements associated with the unconfirmed landmark are above a defined threshold
- If the landmark has been observed often enough according to the M/N logic
Landmark Merging
graph LR M1(Calculate distances between landmarks) --> M2{Distances < threshold?} M2 --"Yes"--> M3(Merge landmarks)
Finally, there is still a possibility that two landmarks in the system may in reality relate to the same landmark.
If the distance between two landmarks is less than a set threshold they are merged.
If the distance between two landmarks is less than a set threshold they are merged.
Example EKF-SLAM with Landmark Management
Extended Targets
Current work [2] is looking at how to produce a more precise map, in order to better facilitate navigation and path planning.
To do this we are using an ellipse model to generate extended landmarks and investigating how to take advantage of the landmark extent estimation in the update of the EKF-SLAM.
To do this we are using an ellipse model to generate extended landmarks and investigating how to take advantage of the landmark extent estimation in the update of the EKF-SLAM.
Code
Orientation estimation code can be found here: SLAM Landmark Management