I really like the Exclusion Fence capability in the latest version of ArduRover using BendyRuler.
I have a few observations that may be of interest. I am running ArduRover 4.1.0-Beta6. My parameters are set as follows:
- With the parameters set as above, the vehicle comes right up to the fence and then navigates nicely along the fence (a little squiggly but I can work on that) UNTIL it “sees” a clear shot to the next waypoint. Then if seems to immediately end the BendyRuler algorithm and return to normal navigation, which causes the vehicle to work its way back to the yellow line according to its tuning. I have looked at the code a bit (can’t say I fully have it understood at the moment), and I believe this is the planned behavior. This behavior causes the vehicle to miss some portion of the original waypoint line as shown here:
For many applications, this behavior is no problem. If, however, the desire is to traverse every part of the pre-planned route between waypoints (except within the fence), it isn’t perfect.
I can place a waypoint on the downstream side of the exclusion fence on the original path and cause ArduRover to navigate to that point and get the desired coverage as shown here:
Would it be possible to modify BendyRuler (or create a separate OA mode) so that when ArduRover encounters an exclusion fence, it inserts an internal temporary waypoint across the fence on the original path a short distance beyond the fence, basically internally doing what I did manually above? For a circular fence, calculating the position of the temporary internal waypoint would be relatively easy, I think. It would be straight ahead on the vehicle’s original path, a distance equal to the diameter of the fence plus some small distance to be sure the waypoint is outside the fence a sufficient distance to work well. For a polygon, the code would have to find the intersection between the fence and the original path on the downstream side of the fence and set a waypoint a small distance down the path.
I did encounter a situation where ArduRover went into an infinite hunting spree for the path around a polygonal exclusion fence. The vehicle seemed to attempt to go around the fence in one direction, but then reverse and try the other direction, but then reverse, and repeat over and over until I switched to Acro and drove it around the edge of the fence. This happened on 3 or 4 different approaches, but not every time. I was going to share a screen shot of the path it drew but Mission Planner failed to capture a .tlog of this mission. The map view in the DataFlash Log Viewer shows where it was hunting:
Here is a video of the real thing happening: https://youtu.be/u3MV0JTEN6M. The mission and Exclusion Fence were like this:
Note that the mower got stuck in the blue-circled area, trying to get to a waypoint over in the red-circled area. I will research this behavior more sometime. I may be able to solve this with parameter changes, so NO COMPLAINTS on this one, just an observation!
Thanks again, dev team for this nice new feature.