You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Current State
The current RoverPositionControl module uses one parameter to characterize the steering behavior of a vehicle: GND_MAX_ANG. This parameter is designed to mainly work on vehicles with ackermann steering, but may also be used to vehicles, that steer with differential thrust (like the AION R1).
The position controller has to know, what the maximum steering angle of an Ackerman vehicle is to calculate the minimum turning radius. Setting GND_MAX_ANG to PI/2 or PI (open question!) might get the right results for a differentially steered vehicle, that can turn around on the spot.
Issues with this
But at least in attitude control, such an aggressive steering might not be wanted, so the steering angle should be limited to less than [-GND_MAX_ANG, GND_MAX_ANG] (or [-1, 1] in the ActuatorControl range).
While it's possible to "cheat" setting GND_MAX_ANG to a higher value, then what's actually possible, this might confuse the position controller (I haven't testes this yet).
Another option might be to introduce a gain for the yaw control in attitude control mode. But this would not have the same effect, than limiting the maximum yaw speed by limiting the steering angle/ differential steering to a smaller value, than what's physically possible.
Proposal
Therefore I propose to introduce another parameter. (Also the documentation of GND_MAX_ANG should be added/ improved.)
The text was updated successfully, but these errors were encountered:
Cleaning up rover related issues:
The rover support has been revamped since this issue has been opened and now supports both Ackermann and differential rovers with their own modules.
Current State
The current
RoverPositionControl
module uses one parameter to characterize the steering behavior of a vehicle:GND_MAX_ANG
. This parameter is designed to mainly work on vehicles with ackermann steering, but may also be used to vehicles, that steer with differential thrust (like the AION R1).The position controller has to know, what the maximum steering angle of an Ackerman vehicle is to calculate the minimum turning radius. Setting
GND_MAX_ANG
to PI/2 or PI (open question!) might get the right results for a differentially steered vehicle, that can turn around on the spot.Issues with this
But at least in attitude control, such an aggressive steering might not be wanted, so the steering angle should be limited to less than [-GND_MAX_ANG, GND_MAX_ANG] (or [-1, 1] in the ActuatorControl range).
While it's possible to "cheat" setting GND_MAX_ANG to a higher value, then what's actually possible, this might confuse the position controller (I haven't testes this yet).
Another option might be to introduce a gain for the yaw control in attitude control mode. But this would not have the same effect, than limiting the maximum yaw speed by limiting the steering angle/ differential steering to a smaller value, than what's physically possible.
Proposal
Therefore I propose to introduce another parameter. (Also the documentation of
GND_MAX_ANG
should be added/ improved.)The text was updated successfully, but these errors were encountered: