Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Localisation machine learning #30

Merged
merged 16 commits into from
Feb 23, 2021

Conversation

PhileasL
Copy link
Member

Goal

The goal was to try to approach the position of the robot considering only the vlx values.

Approach

First of all, i used a supervised machine learning method instead of an unsupervised one because getting data in our case in very simple (and also because it's so much easier too). I used the NuSVR algorithm from sklearn python api.

Main problem

Here the problem was the multiality behavior of the solutions. For a given batch of vlx distances, multiple solutions are possible.

Solution

Splitting the game area in several distinct area. It has decreased the error but not enough for me.

Final performances

r² score of 0.9993, in a test of 6500 different positions and orientations, an average error of 6mm but a maximum error of 20cm.

And so what ?

We are not going to use theses models into our robots, it's not accurate enough for precise movement near walls in my opinion. The idea now is to create a small plugin which drive robots near walls considering only some vlx measures.

The idea is to get a banch of VLX and robot position/orientation data 
using the simulator, and then establish a model to extrapolate the 
position of the robot using theses data (using linear regression, 
stochastic gradient descent...). The goal is to apply this model in the 
localisation_node to get and extra confidence of the real position of 
the robot (especially near walls)
Maybe get the dimensions of the robot and compute them in the future ?
Still not good enough for me, thinking of just using vlx near walls 
considering the orientation given by the odometry to choose which vlx to 
use in order to extrapolate position
@PhileasL PhileasL added the unsatisfying This will not be used label Feb 23, 2021
@PhileasL PhileasL requested a review from a team February 23, 2021 22:31
@PhileasL PhileasL self-assigned this Feb 23, 2021
Copy link
Member Author

@PhileasL PhileasL left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At least some webots tweaking are going to be used in the future.

@PhileasL PhileasL merged commit 8a94cb9 into odometry_readjustement Feb 23, 2021
@PhileasL PhileasL deleted the localisation_machine_learning branch February 23, 2021 22:33
@PhileasL PhileasL mentioned this pull request Feb 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
unsatisfying This will not be used
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant