ArduPilot / ardupilot

ArduPlane, ArduCopter, ArduRover, ArduSub source
http://ardupilot.org/
GNU General Public License v3.0
10.45k stars 17.09k forks source link

Rover: bendyruler does not resume original route even if OA_OPTIONS=0 #20406

Open xianglunkai opened 2 years ago

xianglunkai commented 2 years ago

scurve_avoid

xianglunkai commented 2 years ago

I don't think scurve navigaiton has more advantages than L1 method in Boat. Besides, it has better turning performance. Moreover, the turning performance depends on very large deceleration. From my test, the L1 method is sufficient in terms of track mapping accuracy, obstacle avoidance effect and automatic control under high flow rate, at least for the current master branch.

rmackay9 commented 2 years ago

@xianglunkai, thanks very much for testing and reporting issues with the new SCurves on Rover. We've still got time to fix any issues before 4.3 and I would very much like it if we can convince you to use SCurves because I really want to avoid two different versions.

I guess the picture above is not of master Rover? I guess instead this is a modified version that gives up on the current waypoint and moves to the next one if it sees an obstacle? I'm just trying to understand how I could reproduce the issue you're seeing and help resolve it.

xianglunkai commented 2 years ago

@rmackay9 Thank you very much. You are right. I use the modified version of master, but even if I use master directly, there is still the problem that the route cannot be restored after obstacle avoidance, which is unbearable for surveying and mapping. In addition, I think the obstacle avoidance system of the master version needs to be greatly improved. Firstly, it needs to distinguish between dynamic and static obstacles. Secondly, I think it is necessary to change the obstacle avoidance output interface to the time discrete sequence of speed and path, rather than the current point. Finally, it is necessary to divide the obstacle avoidance into horizontal static obstacle avoidance and vertical dynamic obstacle avoidance。

xianglunkai commented 2 years ago

Finally, whether we could design a trajectory input interface in guide mode for the navigation needs of ROS or other systems. Maybe I could give some code for the development of obstacle avoidance and planning system, but I still need your help. Txs!

rmackay9 commented 2 years ago

@xianglunkai.

Re the issue of the Rover not returning to the original path, you've tired setting AVOID_OPTIONS = 0 of course?

xianglunkai commented 2 years ago

@rmackay9 Yes ,I set OPTIONS = 0,but it does not work at all scurve_bendyruler oa_param .

rmackay9 commented 2 years ago

@xianglunkai,

OK, thanks. Do you think the issue is new to 4.3?

xianglunkai commented 2 years ago

@rmackay9 Yes,I am sure this pr is new for current master

xianglunkai commented 1 year ago

@rmackay9 I think L1-NAV coulde be used during obstacle avoidance and scurve be used after obstacle avoidance, which can solve two problems:

  1. The problem of hesitation caused by severe deceleration of the curve during obstacle avoidance

  2. The problem of avoiding obstacles and restoring the original route

Looking forward to discussion, if feasible, I would like to submit a fix. thank you!