Effacer les filtres
Effacer les filtres

How to find the best combination of angles for minimum turn radius

16 vues (au cours des 30 derniers jours)
I am looking to find the best combination of a set of angles from 0 degrees to 68 degrees resulting in the minimum turning radius for a vehicle only turing with the front wheels. The goal is provide optimum ackermann steering and currently the wheel can roate a maximum of 68 degrees each way. I currently have this code however it doesn't seem correct and it isnt showing the best 2 angles for minimum radius. Any help would be appreciated. Wheelbase = 72 in. Track width = 54" want a radius of roughly 6-7ft I believe the equation for min radius at low speed is R = (track width/2) + (wheelbase/(Sin(average of outer + inner angle)) Thank you
radius = 72;
inner_angle = (0:68)
outer_angle = (0:68)
inner_angle_rad = inner_angle * pi /180
outer_angle_rad = outer_angle * pi /180
w = sin(outer_angle_rad+inner_angle_rad/2)
v = [72]
R= repelem (v,91)/w
if R < min_radius
min_radius = R
end
  3 commentaires
Image Analyst
Image Analyst le 15 Fév 2024
I don't understand why a car making a turn has to make two turns of different angles. Can you provide a diagram of the situation?
Gabe Mergenthaler
Gabe Mergenthaler le 15 Fév 2024
For sure. Based upon ackermann steering criteria one wheel must turn sharper than the other for effective turning. hence why two angles. Here is a diagram where l is wheelbase, w is track width, and sigma o and sigma i are the steering angles:

Connectez-vous pour commenter.

Réponse acceptée

Walter Roberson
Walter Roberson le 15 Fév 2024
radius = 72;
inner_angle = (0:68).';
outer_angle = (0:68);
inner_angle_rad = inner_angle * pi /180;
outer_angle_rad = outer_angle * pi /180;
w = sin(outer_angle_rad + inner_angle_rad/2);
v = [72]
v = 72
R = v./w;
[min_radius1, location1] = min(R, [], 'all', 'linear');
[r1, c1] = ind2sub(size(R), location1);
inner_angle1 = inner_angle(r1);
outer_angle1 = outer_angle(c1);
R(location1) = nan;
[min_radius2, location2] = min(R, [], 'all', 'linear');
[r2, c2] = ind2sub(size(R), location2);
inner_angle2 = inner_angle(r2);
outer_angle2 = outer_angle(c2);
result = table([min_radius1; min_radius2], [inner_angle1; inner_angle2], [outer_angle1; outer_angle2], 'VariableNames', {'Radius', 'Inner Angle', 'Outer Angle'});
result
result = 2x3 table
Radius Inner Angle Outer Angle ______ ___________ ___________ 72 68 56 72 66 57
  1 commentaire
Gabe Mergenthaler
Gabe Mergenthaler le 15 Fév 2024
Fantastic. So if I am reading this correctly to achieve a radius of 72 inches the inner vs outer steering angle must be 68 and 56 or 66 and 57 respectively. If i wanted a tighter or larger turning radius I would be ale to change the radius value to continue? Thanks

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Debugging and Analysis dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by