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

Force update when there is no movement #184

Closed
3 tasks done
olmerg opened this issue May 12, 2023 · 5 comments
Closed
3 tasks done

Force update when there is no movement #184

olmerg opened this issue May 12, 2023 · 5 comments
Assignees
Labels
cpp Related to C++ code enhancement New feature or request needs-work Ready to be worked on

Comments

@olmerg
Copy link
Collaborator

olmerg commented May 12, 2023

in the parity amcl this is implemented though a service request_nomotion_update. Although in nav2_amcl is just a flag, in beluga it is required to modify the policies like resample_on_motion_policy

Definition of done

  • Define the way to be implemented
  • implement the service in beluga_amcl
  • modify the policies in beluga
@olmerg olmerg added the enhancement New feature or request label May 12, 2023
@olmerg
Copy link
Collaborator Author

olmerg commented May 12, 2023

  • Request no motion update put in true force_update_. this variable modifies if we should update the filter. Additionally, when this flag is true the particle cloud is not published. Some additional point about this flag is that set to true on_cleanup and set false after it is used to decide read the laser. So conclusion this service forces the filter to work when there is no movement.

@olmerg olmerg changed the title forces the filter to work when there is no movement Forces the filter to work when there is no movement May 12, 2023
@olmerg olmerg added the cpp Related to C++ code label May 12, 2023
@nahueespinosa nahueespinosa changed the title Forces the filter to work when there is no movement Force the filter to work when there is no movement May 12, 2023
@nahueespinosa nahueespinosa changed the title Force the filter to work when there is no movement Force resampling when there is no movement May 12, 2023
@nahueespinosa nahueespinosa changed the title Force resampling when there is no movement Force update when there is no movement May 12, 2023
@nahueespinosa
Copy link
Member

Looks like nav2_amcl doesn't perform sensor and motion model updates if there is no motion.
For reference:

Note that in our implementation we only skip the resampling step if there is no motion, which is not the same.
I don't know how much sense it makes to implement something like this if the underlying behavior is different.

@stwirth
Copy link

stwirth commented Jul 7, 2023

This feature is useful to refine a manually set pose (via /initialpose), see ros-planning/navigation#1226.

@nahueespinosa
Copy link
Member

nahueespinosa commented Jul 7, 2023

Thanks for the context! When I commented a few months ago, Beluga was updating the filter motion and sensor models all the time, so a manual update was not required for the robot to re-localize when the initial pose was published.

In the current version, after #233 which makes resampling policies much more similar to AMCL, this makes a lot of sense.

@nahueespinosa nahueespinosa added the needs-work Ready to be worked on label Jul 7, 2023
@glpuga glpuga self-assigned this Jul 15, 2023
glpuga added a commit that referenced this issue Jul 22, 2023
Major changes:
- Fixes lack of pose/transform update when setting a new initial pose.
- Add `request_nomotion_update` service (address #184)

Minor changes:
- Fix that ccache was not being used when building ROS 1.
- Rename `initialize_with_pose()` in `amcl_nodelet.xpp` to
`reinitialize_with_pose()`, which is the name of the same function in
`amcl_node.xpp`. The old name also overloaded the name of a different
function.

Signed-off-by: Gerardo Puga <[email protected]>
@hidmic
Copy link
Collaborator

hidmic commented Sep 19, 2023

Solved!

@hidmic hidmic closed this as completed Sep 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cpp Related to C++ code enhancement New feature or request needs-work Ready to be worked on
Projects
None yet
Development

No branches or pull requests

5 participants