車両の微分プログラミング


8

私の車の中で、内側のタイヤが外側のタイヤよりも速く動いているので、高速で曲がるときに、車が奇妙に振る舞うところです。だから私は差動でプログラムする方法を理解する必要がありますが、私はそれを正しく機能させることができないようですので、私は誰かがこれについての経験があるかどうかを確認するためにここにいます。

オンラインで物理を確認しましたが、ゲームで提供できる情報よりも多くの情報が考慮されているようです(車両への実際の重力の影響など)。現在、私は次のロジックを使用して、差動ホイール速度を決定しています。わかりやすく説明するように心がけますので、わかりにくい場合やわかりにくい場合は、お詫びいたします。

これが私がすることです: 私は現在のターンの度合いを最大ターン量で割ってパーセンテージを取得し、そのパーセンテージを取り、それをモディファイアパーセンテージに適用しますエンジンの速度?速度?)次に、私のディファレンシャルで、車両が左または右に曲がっているかどうかを確認し、片側の速度をx%減らし、反対側の速度を同じx%増やします

私の最大の問題は、私がターンの割合を減らすために補っている数であると確信していますが、そこに何を置くべきかわかりません。ターン%をディファレンシャル(40%など)に直接渡すと、片側が40減少し、もう一方が40増加することを知っています。これは明らかに正しくありません。

エンジン速度、トランスミッション、各車輪の車軸速度、トルク、車両速度などにアクセスできますが、この式を実行するときにこれらのどれを考慮に入れるべきかわかりません。

多分それを複雑にしすぎているのかもしれませんし、多分それを単純化しすぎているのかもしれません。これを理解するための助けがあればすばらしいでしょう!


実際の物理学にどのような問題がありましたか?重力は簡単に得られるため(調整する必要がある定数であり、車両の質量なども同様です)
Roy T.

まあ、実際の物理学には大きな問題はありませんが、微分と(実際の)力学についてはあまり詳しくないので、物理学は頭を悩ませました。
マンゴイド2012

回答:


9

私はあなたがこのようにそれをするべきではなく、あなたは本当の物理学をもっとよく見るべきだと私は本当に思います(私のコメントを見てください)。しかし、私はあなたの現在のアプローチがうまくいかない理由をあなたに言うことができます。(コメントが長すぎるので、これを回答として投稿します)

最初に何が起こるかを調べてみましょう(おそらくすでに自分でこれを行っているでしょう)。

ターニングポイント

引用は基本的に上の写真のようですが、数字を少し単純化しましょう:

車Cの幅が2メートルで、最小旋回半径が5メートルであるとします。私は今、左いっぱいに操縦します。左前輪は、直径5メートルの円を描くようになりました。右前輪は、直径7メートルの円を描くようになりました。1つの完全な円を完了すると、左輪の移動距離は10 * piメートルになります。右の車輪は14 * piメートル移動します。今Cの車輪がすべて同じ大きさを持っていることを言うと、車輪の円周は0.5 *パイメートルである(はい、それらは大きな輪であるが、誰が私たちはモンスタートラックをモデル化することができませんでした言わなかった!)差動意志左輪が20回転するごとに、右輪が28回転することを確認して、どの輪も滑らないようにする必要があります。

したがって、diff-%を微調整する必要があると言うことができます。たとえば、完全な左の場合は+ 40%を区別する必要があります。これを完全な右-40%に変換すると、黄金色になりますか?

残念ながら、ご存じのとおり、これは機能しません。この車の微分の一般式を見つけましょう。ここで、xは目的の回転円です。

left wheel distance: x*pi meters
right wheel distance: (x+2)*pi meters:
left wheel rotations: x*4
right wheel rotations: (x+2)*4  

差分は((x + 2)* 4 /(x * 4))[*]で機能するはずだと私は主張します。(パーセンテージで表示したい場合は100%です)それをプロットしましょう

差分プロット

ご覧のとおり、この関数は非線形です。したがって、差動を持っているだけでは、左または右へのステアリングがどれだけ機能するかには線形に依存しません。

今、上記の式を使用するのは魅力的ですが、上記の理由がない場合は、おそらくそれが最善だと思います:) また、ステアリングに4つのホイールすべてが含まれている場合を除き、2つのディファレンシャルを実装する必要があります。

[*]:単純化できます:(x + 2)* 4 /(x * 4)=>(x + 2)/ x


私はこれを試すために私の仕事用のコンピュータではありませんが、あなたがすべての点で正しいと強く感じています!そして、あなたはモンスタートラックの事についてそれほど遠くないです。ホイールは直径約2メートルなので、シミュレータ用の重機です。もともとは、ホイールを地面に置いておけばよいので、「チート」できると思っていましたが、これにより、より正確になります。明日番号を計算してお知らせします。ありがとう!
マンゴイド2012

はい、あなたの投稿は私を正しい方向に向けました。私はあなたが与えた数学の自分のバージョンを試しましたが、どうやら私はそれを少し間違っていました。ご指導ありがとうございます!
マンゴイド2012
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.