Thinking differently about path finding

I’ve been watching my Yarbo for most of the afternoon try to navigate part of my yard and am getting increasingly frustrated, disappointed, and annoyed at the LACK of intelligence it seems to be showing. I will readily concede that my yard is not even close to simple from a layout perspective, but there are very few truly tight spaces, almost all of which I have intentionally avoided mapping. That said, the number of times and places I’ve seen Yarbo act like it is trapped or repeatedly drive round in circles, EVEN THE SAME CIRCLE, multiple times is aggravating. Given that I have some history with this kind of thing, I would like to offer the following observations…

  1. Given how badly Yarbo can tear up a yard if it’s doing a lot of turns in the same place, the rover should ABSOLUTELY not be choosing the same action for obstacle avoidance 5 to 8 times in a row. ESPECIALLY WHEN CHOOSING A DIRECTION!!!
    1. Perhaps we should be able to map areas where sharp turns are disallowed or at least where multi-point turns should be avoided.
    2. I recall from another discussion that the angle that Yarbo will do a continuous turn is VERY shallow. Perhaps this needs to be user set-able? I mean if we’re ok with taking some “increased risk” of navigational slippage by allowing sharper continuous curve turns, I don’t see why we can’t have an option to set this per user. Sure, by default set it to 10° or 5° or whatever it’s currently set to. But give us the option to crank it up to 45° or even 60° I mean you can’t tell me the rover can’t do it, because its fully capable when driven manually.
  2. When Yarbo DOES choose a direction and eventually ends back up in the same spot, whatever chain of decisions it made that got it back there should be inverted, or at least the later decisions beyond the first should be inverted for the next attempt. If that still brings it back to the previous starting point, then the entire chain should be disallowed. At most, decisions that end the rover back where it started when it needed to deviate from the path should only be allowed one or two retries before something different is tried.
  3. The obstacle avoidance should favor paths already traveled if they get the rover back on the path in a shorter distance. So far I have yet to ever see this happen with only a few exceptions. Quite honestly, unless the deviation off the desired path is minimal or the difference between an untraveled vs. traveled path is more than 50/50 in favor of the untraveled path, the traveled path should probably be favored.
  4. Paths that are actually traveled vs. “bypassed” should show as a different color on the map screen in the app. Any path that has actually been traveled should be assumed to be clear until an obstacle is found BLOCKING the path. This would help in navigating narrow openings which so far I have seen Yarbo REPEATEDLY fail to recognize an opening that it should clearly and easily pass through in favor of backing up and going “around the long way” when navigating “obstacles”.

I do realize that navigation is never simple or easy when you have to do obstacle avoidance and/or have a complicated layout, but the current navigation definitely seems far more suited for wide open yards with few real obstacles as opposed to real county yards.

5 Likes

Hi there, thank you for sharing such detailed feedback. Regarding the observations you mentioned:

When the Yarbo lawn mower detects an obstacle, it will adjust its angle and attempt to bypass it. With the current logic, it will continue trying to bypass the obstacle for up to 200 seconds before moving on to the next target point. This is why you’re seeing multiple turns in the same area.

For the other suggestions you shared, I’ll pass them along to our product team so they can review and see where improvements can be made. We really appreciate you taking the time to provide these insights.

This is a very well thought out series of suggestion.

I would encourage Yarbo to really give thought to each line item and understand the points @balmerjd is making. The decision tree that is currently being utilized in path planning and obstacle avoidance would significantly benefit from refinement.

3 Likes

@Yarbo-Forum wait.…..

Did I read that correctly?

Your obstacle avoidance logic uses TIME to determine failure for a particular decision set, not the number of attempts?!

That makes NO SENSE.

If you’re trying to navigate in a place that is at all a tight space, this means that you would keep making the same WRONG decision with TENS of repetitions of an INCORRECT navigation decision before the logic times out and tries something different. It also means that if you were to have to navigate around a particularly large obstacle, that you might only get one attempt, or never complete the attempt if it takes too long. Every time the rover decides it needs to deviate from the path to navigate an obstacle, it should be setting a waypoint with a radius to mark where the decision was made. The radius should be relatively small compared to the size of the rover, and once you leave the radius you shouldn’t end back up at that same point. If you do, your navigation failed an you should try something different. Or at the least, limit the total number of attempts using the same decision tree. I understand limiting the total amount of time to try one navigation route, but there should be MULTIPLE other ways of “failing” out of a set of navigation decisions long before you get to that kind of timeout just in case your decision ends up in a loop.

Case in point…

So as Yarbo approached from the left, following the line to the right, how do you suppose the rover tried to navigate around the obstacles back to the path? Go up around the first two red blobs and pass down between them and the no go zone?…..

NO!

It did THIS!

It even follow the edge of the obstacles towards the no-go, and then turned LEFT to go out and around the no-go. I mean, THERE ARE ALREADY PATH LINES THERE, so why NOT go there? But it doesn’t stop there. Once the rover got to where it’s shown, IT TURNED AROUND AND WENT BACK! Then did the EXACT SAME THING AGAIN!

And we’re still not done. It finally did manage to navigate down there, but then got stuck in a loop again, just driving in circles.

Despite the fact that it did JUST drive that gap between the obstacle and the no-go to get to where it was, RIGHT OVER THE PATH IT IS TRYING TO FOLLOW, it would just drive the same circle show in green at least 5 or 6 times. Eventually it did make it out, but it would do this exact same set of actions on every pass on the spiral and get stuck in almost exactly the same way.

5 Likes

Hi there,

Time is one of the factors used in the obstacle-avoidance logic. Under different conditions, the rover applies different avoidance strategies. Typically, it will reverse, adjust its angle, and then try to bypass the obstacle again. The 200-second limit is one of the conditions used to determine that an obstacle cannot be bypassed, in which case the rover will skip to the next point.

We do have other logic options for different scenarios to provide more flexibility, though we understand there is still room for improvement.

I’ll share your case and observations with our product team to see whether improvements can be made.

3 Likes