Filter löschen
Filter löschen

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

16 Ansichten (letzte 30 Tage)
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 Kommentare
Image Analyst
Image Analyst am 15 Feb. 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 am 15 Feb. 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:

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 15 Feb. 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 Kommentar
Gabe Mergenthaler
Gabe Mergenthaler am 15 Feb. 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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Debugging and Analysis finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by