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

[Discussion] Can MPPI follow the global path that has multiple segments, each represents forward or reversing movement. #4195

Closed
Chortine opened this issue Mar 19, 2024 · 3 comments
Labels
question Further information is requested

Comments

@Chortine
Copy link
Contributor

Hi Team,

I have a global path planner that outputs a global path, which is divided into multple segments, and between each segement, the car alternating its moving direction: either moving forward or moving reverse. My car model is ackermann car, and the reverse moving segment is not trival for the car to arrive at the target pose.

Given this context, my question is, can the current implementation of MPPI controller follow a global path like this? If not, what will be the best way to modify it to achieve this?

Thank you very much.

@SteveMacenski
Copy link
Member

That is sufficiently vague that it’s hard for me to say anything about anything with confidence 🙃

But yes, MPPI is being used and has been shown in Guillaume’s ROSCon 2023 talk on bidirectionality in Nav2 to be able to change direction with reversing segments of paths from the Smac Planner. The important path attribute is that you set the orientation vectors in the path so that it’s decipherable that you want an explicit change in orientation for direction of travel.

MPPI’s critics then have settings where it’ll pick up on those and use them in their behavior scoring. I’d highly recommend @doisyg ’s talk: https://vimeo.com/879000809/b32f8ebec4

@SteveMacenski SteveMacenski added the question Further information is requested label Mar 19, 2024
@Chortine
Copy link
Contributor Author

Hi that's exactly what I want! Here is what my global path looks like:
ztLKo9QFGr

I set orientation in path and set PathAlignCritic.use_path_orientations = true, and it works!
Especially, the built-in removePosesAfterFirstInversion() function is very useful!

@SteveMacenski
Copy link
Member

Great! Sounds like its solved?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants