フィルターのクリア

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

16 ビュー (過去 30 日間)
Gabe Mergenthaler
Gabe Mergenthaler 2024 年 2 月 15 日
コメント済み: Gabe Mergenthaler 2024 年 2 月 15 日
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 Center および File ExchangeDebugging and Analysis についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by