Comments (10)
Not sure how far into this you are -- but it really doesn't ignore dynamic obstacles. Basically, the assumption is that the fixed obstacles largely outweigh the dynamic ones and so it tends towards the right answer. The implementation is about 20 years old, and follows the Probabilistic Robotics book pretty closely (the parameter descriptions in the ROS driver actually reference the book rather than describe in extreme detail how the parameters work)
from navigation2.
My understanding is that Diff Corrected is actually correct to the book. If you do git-blame on the original repo I think you’ll see the issue and PR (it’s only like 2 years ago that was fixed, so we didn’t want to change scoring for all the existing robots).
For ros2, I would drop the old ones, and remove corrected from the names of the ones you keep.
from navigation2.
In agreement with @mikeferguson, I went through a AMCL sprint a few months back and came to the same conclusion - and got a nice performance boost to boot.
Cant speak to the derivation off hand, but I have a copy in my library at home
from navigation2.
I'll take a look when I get home later. But this should provide some details. https://answers.ros.org/question/54467/is-amcls-implementation-of-the-odometry-model-correct/
from navigation2.
There's a beam skipping feature which attempts to do some of that - but I can't speak much to its effectiveness though seems to help some.
from navigation2.
@SteveMacenski -- that's a good point -- I actually forgot that existed.
from navigation2.
Strengthening that would be a nice AMCL feature.
I have a small bucket list I'd like to see to make it more extendable (extend for 3D, configuration for sampling beams non-uniformly, changing the weighting scheme to deal with short hits better, better precomputation methods). I'm hoping to get some of those into AMCL in the normal nav stack but depending on how fast this develops, I might here as well - is there a ticket for AMCL new features in this repo?
from navigation2.
@mikeferguson that assumption make sense when the number of dynamic objects surrounding the robot is low. So far I've been just straight porting the amcl package and did some minor code refactoring. I'm planning to see where amcl can be improved and omitting the dynamic objects could be one area for improvement.
@SteveMacenski I haven't yet looked at the beam skipping feature, but that seems promising.
My goal is to improve amcl for our navigation package please let me know if you guys have any suggestions or if there are any features that would be nice to have. Thanks in advance.
from navigation2.
@SteveMacenski @mikeferguson Do you guys know why in AMCL's motion model there is ODOM_MODEL_DIFF and ODOM_MODEL_DIFF_CORRECTED? Also OMNI and OMNI_CORRECTED? Thanks.
Also, is the omni motion model also derived from Probabilistic Robotics textbook?
from navigation2.
Thanks @mikeferguson and @SteveMacenski .
I will take a look at git-blame for amcl and then drop the old code.
@SteveMacenski It would be great if you could send me the copy of the derivation so that I can double check the code to make sure it's correct.
from navigation2.
Related Issues (20)
- nav2_mppi_controller colcon build error HOT 3
- Using composition doesn't load costmap parameters from yaml file HOT 12
- Way to do 2.5D navigation HOT 1
- The response to action cancellation is delayed. HOT 1
- set size_x_ and size_y_ in method initMaps HOT 4
- [humble binary] BT: „missing port [value]” for blackboard “{goal}” HOT 5
- DriveOnHeading in SimpleCommander HOT 1
- Add DCO requirements + bot to tell people how to fix if not used HOT 1
- SimpleActionServer may call `nullprt` callback when executing the transition to deactivate HOT 3
- navigation not working HOT 7
- Feature request: Graceful cancellation of `follow_path` actions HOT 7
- Add github action linters to find those issues sooner than full CI jobs HOT 2
- Still facing problems with global planner.How can I fix generated global plan and stop replanning? HOT 4
- [ros2 iron] Cannot find package "behaviortree_cpp_v3" HOT 1
- Points on costmap layer after inflation layer might get inflated in edge cases HOT 6
- In ros2 foxy, can't use nav2_simple_commander?
- Include option to use PointCloud Transport
- Ghost Obstacles in Local Costmap using Gazebo Simulations HOT 3
- Groot2 Error Opening / Viewing Nav2 BT in Editor Mode HOT 11
- [Question] MPPI in narrow corridor HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from navigation2.