-
Notifications
You must be signed in to change notification settings - Fork 10
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
Publish map-to-odom transform #40
Comments
I did some testing and it's publishing but I have to investigate the following points:
EDIT(nahuel): Removed code snippet as #62 was created. |
@olmerg It's great that you're making progress. I think a better way to talk about the code is to create a pull request, even if it's a draft for now. You'll find instructions on how to run the linters in CONTRIBUTING.md. Running |
This is directly related to #57, but it should make #40 much easier to implement. It is a small refactor of the `laser_callback` method in `amcl_node.cpp`. The functional changes are: - We now get different errors depending on which transform lookup failed. - We update the sensor and motion models with every laser scan message, if the robot has not moved we only skip the resampling step. - We publish a new estimate after every update of the filter. - Removes `last_odom()` method from the differential drive model interface. Signed-off-by: Nahuel Espinosa <nespinosa@ekumenlabs.com>
Related to #40. Signed-off-by: Nahuel Espinosa <nespinosa@ekumenlabs.com> Co-authored-by: Nahuel Espinosa <nespinosa@ekumenlabs.com>
To conclude this issue, the task of Change the simulation model to publish inaccurate odometry was made partially implemented because the noise added in the simulation model of flatland only let to generate Gaussian noise over the position of the robot. The principal noise which is expected to test is drift caused by odometry model. To test this type of noise, diff drive plugin of Flatland was modified and visually works the map-to-odom to save this noise. The drift is inverse that expected in the reality, because the robot does not have drift in simulation but the tf publish the drift
Better test of map-to-odom with a bag of real data. |
Description
One missing key feature in
beluga_amcl
is the ability to publish the correction from map frame to odom frame based on the particle filter estimate. Currently it publishes the identity transform:https://github.com/ekumenlabs/beluga/blob/421cd7df1bcb4bc1b1b9b069c8537cf7b23e75c5/beluga_amcl/src/amcl_node.cpp#L501-L514
We should publish the correction once we have high confidence on the estimate since the particle filter can handle multiple hypothesis at the same time. We can consider doing it based on the covariance values being relatively low.
For reference,
nav2_amcl
only publishes if it has received a hint for the initial position of the robot. Note that they calculate the estimate of the most likely particle cluster instead of taking into account all the particles as we do.Definition of Done
nav2_amcl
,Quick-MCL
).Change the simulation model to publish inaccurate odometry.The text was updated successfully, but these errors were encountered: