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

16 次查看(过去 30 天)
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 个评论
Image Analyst
Image Analyst 2024-2-15
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 2024-2-15
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:

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2024-2-15
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 个评论
Gabe Mergenthaler
Gabe Mergenthaler 2024-2-15
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

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Debugging and Analysis 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by