Rover S-Curves alpha testing

@Yuri_Rage,

Great, thanks very much.

By the way, I played around with the PSC_* tuning at various speeds in the simulator and especially with the new “Position Controller velocity limits” the results can be subtle

  • PSC_POS_P (converts position error to desired velocity)

    • higher values increase accuracy of driving along the path especially when close to the line
    • very high values on Ackermann vehicle leads to circling as small errors are exaggerated into large forward-back speed changes but also turns. On skid steering vehicles high values don’t cause many problems but maybe lead to some wobbling on the path or unhelpful random turns when very close to the waypoints
    • very low values lead to smoother driving but the vehicle ends up off the path
  • PSC_VEL_P (converts velocity errors into speed changes and turns)

    • very high values lead to oscillation on the path much like high PSC_POS_P
    • very low values lead to an offset off the path
    • BTW you can monitor the this controller in real-time by setting GCS_PID_MASK = 64 (or 128). Sadly this is a 2D controller in North-East frame so you can only look at Northern or Easterly performance not both at the same time.
  • PSC_VEL_I

    • very high values lead to oscillation on the path
    • very low values lead to a consistent offset off the path
    • my guess is that this should always be some ratio of PSC_VEL_P (like 20% of PSC_VEL_P)
  • PSC_VEL_D

    • higher values slow the vehicle’s return to the path but keep the vehicle driver straighter which looks nice.
    • very high values lead to unhelpful turns in the wrong direction at waypoints
    • very low values (like zero) aren’t too bad but probably lead to more wavering across the line
1 Like