I am researching for a graph structure which can plan bidirectional for robots.
But not only bidirectional, so it can go from A to B and B to A, also taking the orientation into account. So in some scenarios the robot is only allowed to move backwards oriented along the edge.
Starting at 4, I can go forwards oriented to 1.
But starting at 1 and going to 4, I need to take path 1>2>3>4, where 3 is a node where I can change direction. Like a car going backwards in a one-way and using a parking lot to turn the car around.
So I have the constraints that
- I can turn only on specific nodes
- The robots orientation needs to be taken into account when planning to a node ( node has a orientation )
One idea is to filter the graph before planning by using the robot's current orientation and the target's orientation. But I am not yet sure if this is possible.
And my other idea is to not filter, and plan over the whole graph.
But I am generally not sure if my planner ( right now Dijkstra ) can handle it, when during planning the robot's orientation can change, like in Node 3.
I would be glad if someone could give me some general hints if this is a good idea or if you could push me in the right direction.
