Object Avoidance with Dijkstra

Hi Yuri,

Thank you for your reply. Your SITL is perfect for along the route. I will try using your parameters. Thanks again.

If we need a inclusion fence to cover an area. And exclusion fence for obstacle avoid in this area.
How to let Rover around exclusion fence without hold, and like bendyruler can smoothly around the exclusion fence.

Pretty sure that’s exactly what I just described above…

@Yuri_Rage OA_Type = 1 (Bendy Ruler) is no problem. but our problem is using OA_Type = 3 and a polygon inclusion fence for the area board. in this case, it switch to Dijkstra for all fences including circle fence. it occurs stuck to circle fence sometime. can’t smoothly around circle exclusion fence.
oa_type3
oa_type31

You can’t use both algorithms simultaneously, and switching between them requires a reboot. And if Djikstra can’t find a straight-line path (which is all it ever does), it may well just stop and give up.

as my understanding, OA_Type = 3 is using both algorithms.

Object Avoidance using Dijkstra’s with BendyRuler — Copter documentation (ardupilot.org)

Ah, ok. I understand that mode.

I don’t understand what you want from it. Seems to me you’re better off just using BendyRuler.

@Yuri_Rage use BendyRuler is OK, but use Dijkstra (OA_Type = 2 or OA_Type=3), the rover will stuck in the exclusion fence.

But I need use Dijkstra to let rover does not go outside of the inclusion fence.

EDIT: This was a bit of over-generalization.

yes, it is problem, when OA_type = 3, it uses Dijkstra for both inclusion and exclusion fence. so the Dijkstra can’t smoothly handle exclusion fence. when it found exclusion fence in the area, it switches to Dijkstra. can’t around exclusion fence sometimes.
in this case, oa_type = 2, has some problem.

you can try oa_type = 2 or 3 for attached case.
oatype3

It doesn’t “switch” to Djikstra for anything. It clearly states that Djikstra is used for fences and BendyRuler is used for proximity based (dynamic) obstacles.

As for your use case, it seems to me you’d be better served by planning your missions more carefully than trying to rely on obstacle avoidance in tight corners where the margins are probably impossible to satisfy.

If you truly want the behavior you describe, then you’ll need to submit a feature request (raise an issue on GitHub). I’m skeptical that it would actually solve your problem.

@Yuri_Rage let me clarify my issue.
the issue is, when Dijkstra is used for exclusion fence, it doesn’t work sometime. (oa_type=2)

I think you need to upload a real-world example and log at this point.