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

Path avoidance too restrictive #3

Open
noahdemar opened this issue Dec 29, 2021 · 3 comments
Open

Path avoidance too restrictive #3

noahdemar opened this issue Dec 29, 2021 · 3 comments

Comments

@noahdemar
Copy link

noahdemar commented Dec 29, 2021

Hello,

I notice that my agent will avoid the entire obstacle path for the full time interval. Shouldn't it only avoid the obstacle's path at each instant in time?

For example, a simple case that is currently infeasible.

X = dynamic obstacle
G = Goal
A = Agent
O = empty space

Time = 0
OOOOO
AOGOX
OOOOO
Time = 1
OOOOO
OAGXO
OOOOO

What should happen next
Time = 2
OOOOOO
OOGXOO (G and X occupy same pos)
OOAOOO

Time = 3
OOOOOO
OXGAOO (G and A occupy same pos: Finsihed)
OOOOOO

It only matters that the agent avoids colliding with the obstacle at each instant in time. Not for the full trajectory of the obstacle.
I have a matplotlib visualizer I would be happy to share if you believe it would help explain!

@GavinPHR Thank you for your work this is very interesting!

@GavinPHR
Copy link
Owner

GavinPHR commented Jan 7, 2022

I'm not entirely sure what you mean here:

OOGXOO (G and X occupy same pos)

and here:

OXGAOO (G and A occupy same pos: Finsihed)

Your chart shows 'G and X at different pos' and 'G and A at different pos', respectively?
In your example, it also seems that there are never obstacles between A and G until the final timestamp?
Perhaps some visualization would help ye.

@noahdemar
Copy link
Author

Thanks for writing back!

I fail to get a path if the obstacle is on a collision course that passes through the goal. I would expect the agent to dodge.

example

I think this is because the agent is avoiding all positions of the obstacle in time, and when the obstacle touches the goal the agent can never move to that position. I believe the implementation should only avoid collisions for each instance in time.

Thank you

@GavinPHR
Copy link
Owner

GavinPHR commented Jan 7, 2022

Hmmm, I know what you mean now, but I don't think I know whether my code has bugs (it was written a long time ago) or your config is not quite right.

One thing that tends to catch people off guard is that the robot and those dynamic obstacles all have some radius (i.e. those objects might be bigger than you realized). If you think this isn't the problem, I'm afraid you need to debug this yourself. The write-up by David Silver should help with the theories.

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

No branches or pull requests

2 participants