2022 年電気競技会の質問 C - 車追従駆動システム - 記録と経験の共有

序文

コントロールグループを中心に、私が行ってきた電気競技の実問や、近年出てきた車両制御問題、実際に行った実問、準備中に起きた問題や経験などを共有していく予定です。電気の競争。

今回お届けするのは、22 年にわたる電気競技会の質問 C - 車は駆動システムに従う この質問は、TI のシングルチップ マイクロコンピュータを使用して次の機能を実行することを指定しています。

TI の MCU を使用して、先行車と後続車からなる後続走行システムを設計し、指定された経路上で走行を完了します。

さて、ナンセンスは十分に、始めましょう


問題分析

以下是赛题的任务部分,要求采用TI的MCU,双车跟随,且具有循迹功能,速度在0.3 ~ 1m/s内可调,能在指定路径上完成行驶操作

ここに画像の説明を挿入

さて、トピックに従っていくつかの重要なポイントを分析しましょう

1. 采用TI的MCU 2. 领头小车和跟随小车 3. 具有循迹功能 4. 速度在0.3m/s-1m/s内可调 5. 到达终点时要发出声光提示 6. 可沿内外圈行驶,且内外圈可控 7. 当专家在E端放下等停标志时,小车停车,等待5s后停止 8. 双车之间的通信 9. 具有跟随功能


1.先頭車と後続車の選択

この質問には 2 台の車が必要であり、2 台の車を構築する必要があります

このトピックでは、次の使用を推奨します

三輪トロリー。前輪はユニバーサルホイールまたはブルズアイホイール、後輪は駆動輪です。

確かに、四轮小车也是可以的,我在做这道题目的时候,采用过前轮为舵机转向,后两轮为驱动轮的方案,效果也相当不错

B 駅で観測された UP も四輪車を使用していることが多く、その効果はかなり良好であると思われる。

ただし、三輪車の制御の難易度は後者の 2 つのモデルほど難しくなく、入門レベルの探索に非常に適しています。

三輪車の制御はほぼ同じで後から高度化することができます 四輪車の原理は同じですが、さらにいくつかのことが追加されています。


2、あなたのMCU

このトピックを実行するとき、私は TI の MCU を使用せず、Stm32F103RCT6 を使用しました。

TI MCU は後で学習しました。TI MCU を後で学習した後は、使用中の 32 と同じです。

この質問を練習するとき、MCU の種類について心配する必要はありません。理解する必要があるのは、この質問に必要な知識ポイントです。別の MCU を使用することは、ペリフェラルを呼び出す方法が異なるだけです。内部基本的な原則は同じです。

一般に、タイマー、シリアル ポート、および割り込みは頻繁に使用されるリソースです。


3. 追跡機能付き

この質問の基本的な機能の 1 つは追跡です。すべては追跡に基づいて実行されます。質問によると、黒い線であることがわかります。黒い線の追跡は実際には の考え方と同じです過去21年間の薬配達車の赤い線をたどります。

黒い線には赤い線よりもいくつかのオプションがあります

红外对管黒い線は追跡に使用できます采用几路红外对管并排排列。はい、車の前面に配置することができます。車が移動しているときに、赤外線チューブから送信される状況に従って、車の位置をリアルタイムに修正できます。

5つの赤外線管を配置し、さまざまな状態に応じて異なる偏差値を与え、偏差に応じてPIDアルゴリズムを使用して車を常に中心位置に保ち、追跡機能を実現します

似ているOpenMv巡线,灰度巡线

関連情報については、このリンクを参照してください。21 年間のドラッグデリバリーカーのチュートリアルで私が話したのは、すべて一種の考え方であり、誰もがそれに慣れた後、追跡は基本的に行われます。

21年間の電気コンペF質問の共有-スマートドラッグデリバリーカーの記録と経験の共有


また、ステアリング PID を調整して通知します。

转向PID只需要调节P和D就行了

この質問の要件は、速度を 0.3m/s ~ 1m/s の範囲で調整できることなので、最初に調整した PID パラメータでは、速度が上昇すると、それ以降の速度のステアリングが切れなくなり、現時点では、速度を最大まで引き上げてから PID パラメータを調整し、この PID パラメータを最終負荷値として使用して、PID パラメータが最大速度以下のステアリングに適するようにすることをお勧めします。

さらにデバッグします。通常は最初に P を与え、車をトラックに入れ、しばらく歩いて最大のコーナーに到達します。つまり、最大の 4 つのコーナーに到達したら、方向転換できない場合は現象を確認します。 、Pを追加、早く曲がれる最大限のコーナーに追加 コーナーでは、適度なP

Dを適切に与えることで、迅速な応答性を高めることができます


4.速度は0.3m/s〜1m/sの範囲で調整できます。

これは簡単です。いくつかのボタンを設定するだけです。ボタン 1 の速度は 0.3m/s、ボタン 2 の速度は 0.5m/s などです。

異なる速度を設定するにはどうすればよいですか?

速度ループを使用しています。希望の速度は PID によって調整されます。希望の速度を与えるだけで済みます。これが車の速度です。

ボタンを押すと、速度は 0.3m/s、予想速度は 0.3m/s


5. 終点に到着すると音と光で知らせます

これを実現する方法は、カメラが停止線を認識した後、車が停止することです。

ブザーが鳴り、ライトが点灯します


6.内輪と外輪に沿って駆動でき、内輪と外輪は制御可能です

内輪と外輪は制御可能ですが、これがこの問題の難しさの 1 つであり、この問題では車が内輪を追い越す機能を実現する必要があり、車が内輪を正確に回転して追い越しを実行する必要があります

内輪と外輪を切り替えるにはどうすればよいですか?

  1. 質問の際、まずMV側で実装しましたが、2周目の走行時、停止線を2回認識した後、外周のラインが遮蔽され、カメラは内周のみに注目していました。このとき、ラインの偏差を修正すると、車は PID アルゴリズムに従って内側の線路に曲がります

その後、この方法は安定性があまり高くなく、停止線の特定が間違っているように見え、内回りに曲がるタイミングがずれてしまう可能性があることが判明したため、この方法は放棄されました。

  1. カメラが停止線を 2 回認識すると、左右の車輪に速度差が生じ、左車輪の速度が右車輪の速度より小さくなり、トロリーは左方向に進みます逸脱してすぐに内周に曲がるように車の姿勢を調整して走行

このスキームはテストされており、内輪と外輪の制御性を実現するために、効果は良好で、成功率は非常に高いです。


7. 専門家が E エンドで待機停止標識を置くと、車は停止し、5 秒待ってから停止します。

これは MV 側の役割で、待機標識を認識したら MV から返信される符号ビットにより判断し、5 秒待機後に走行を継続します。

この小さな質問には 1m/s の速度が必要です。この小さなトラックでは 1m/s は超高速です。デバッグすると、速度が速くなるとカメラ認識の精度が大幅に低下することがわかりました。当時はそう見えましたテンプレートマッチングであろうとニューラルネットワークであろうと、その効果は依然として理想的ではない

後で調整するものは何もありません。主にカメラはさらに調整する必要があります。


8. 2台の車両間の通信

説明書によると、全行程のすべての操作はスタートボタンと設定ボタンのある先頭車両のみで完了でき、後続車両には電源スイッチのみが付いています。
ここに画像の説明を挿入

つまり、先頭車両が通信マスター、後続車両が通信スレーブとなり、マスターは常にデータを送信し、スレーブはマスターが送信したデータを常に受信します。

ここでは Bluetooth モジュール HC-05 を使用します。Bluetooth は依然として非常に使いやすいです。設定後は、使用するたびに直接使用するだけで、マスターとスレーブを区別するだけです。

具体的なアイデアを教えてください。主车设置按键,按下按键设置速度和题目模式,此时按下按键后,通过蓝牙主机发送数据给从机,告诉从机此时的行驶速度和题目模式,按下确认键后,两小车开始行进


9.フォロー機能付き

これもちょっとした難点ですが、後続車は先頭車から20cmの距離を保ち、全行程で先頭車と衝突しないようにしてください。
ここに画像の説明を挿入

ここではHC-SR04超声波模块前車の超音波検出距離に応じて、車の速度をリアルタイムで変更し、距離を制御するという目的を達成します。

ここで、最初に使用したのは、距離が一定のしきい値未満の場合、車の速度 - 一定のしきい値より大きい場合、車の速度は ++、常に 20cm を保つ

で、デバッグしてみたところ、効果はあまり良くなく、はははについていくのがやっと、加減速もできる程度で、全体的にプログラムの堅牢性は良くありません。

理想的な状況は、前の車から遠く離れ、スピードを上げ、非常に接近し、減速し、一定の距離を保ち、非常に接近し、すぐに戻ることです。

その後改良した結果、実際には超音波モジュールの距離変化に応じて PID アルゴリズムを使用できることがわかりました。として入力してください期望的跟随距离/小车当前得跟随距离出力はい小车的速度

この種の追従効果は非常に優れていますが、ソースコードには追加されていません。試してみてください。より良い追従ソリューションを知っています。


デバッグ経験の共有

この質問は黒い線を探しているようですが、簡単です

しかし、やってみるとまだ多くの問題が見つかりました

デバッグ体験を共有しましょう

1. 速度の計算

私が計算した速度は、車が回転するパルス数と車が現在読み取っているパルス数に基づいています。変換方法については、以前に書いたこの記事のコメント欄を参照してくださいRPM为单位的車のパルス数を回転数に換算

Stm32 - TB6612 を使用してモーターとエンコーダーを駆動し、速度を測定します

ここでは、Lunqu の MG310 モーターを推奨します。このモーターの最高速度は 500 rpm で、小型モーターはテスト後、かろうじて 1m/s で動作します。

少なくとも最初のいくつかの質問は間違いなく十分です。他のモーターを選択することもできます


2. メインプログラムロジック

この質問の主なプログラム ロジックは非常に単純です。ボタンを押して速度とモードを設定し、確認ボタンを押すと車が運転を開始します

以下はいくつかのモード機能の記述です 押されたボタンのモード選択に応じて、対応するモード機能を選択し、停止線に遭遇したら停止します


3. 内輪・外輪の切り替え

一気に調整が悪く、内外輪が長時間固着していたものと推定されます。

ほら、停止線が2回認識されると、しばらく前に進まなければならないのですが、そこが内円と外円の交点です。このとき、内円と外円の入れ替わりが始まるので、这个距离可以采取记脉冲的方式,也可以采用延时的方式それを解いてみましょうパルス数に達した場合、またはディレイタイムが経過した場合 その後すぐに差速を与えて車は内周に旋回します

この距離や遅延時間は注意深く把握する必要があります。


4、通信

これについてはあまり言うことはありませんが、初次建议首先使用串口,连接两个蓝牙,分别插到电脑,打开上位机,互相发送数据,成功后,就说明蓝牙配置完成

ここに画像の説明を挿入

後で問題が発生した場合、それはプログラムの問題です プログラム内部から原因を探り、ハードウェア原因を排除します

Bluetooth のペアリング手順は次のとおりです。
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

ここに画像の説明を挿入


5.フォロー機能

これについては、上記の超音波 PID 追従は後で学習し、まだデバッグされていませんが、非常に良い解決策だと思います。次の効果は非常に優れているはずです。

詳細については、他の大手のチュートリアルも参照できます。これは非常に優れています。


要約する

この質問は簡単そうに見えますが、単純なトレースだけでなく、多くの細かい点で困難がいくつかあります。

上記の経験の共有と参考となるコンテストの質問の分析に基づいて、自分自身の最初の車を作ることができます。

经过这道题目后,多磨磨,将会对以下几种知识点熟练运用并掌握嘞

  • 共通の追跡スキーム
  • 超音波の基本的な使い方
  • 無線通信モジュールの使用
  • ゲーム経験値獲得、経験値+1

私の共有がお役に立てば幸いです。同様に、この質問のコードもオープンソース化しました。学習のために参照してください。


オープンソースリンク

勉強の参考にできます

誰でも自分でアクセスしてダウンロードできます

下方为gitee开源链接,请大家点一个star,谢谢

oufen / 2022 年電気競技会の質問 C - 車追従システム

おすすめ

転載: blog.csdn.net/cyaya6/article/details/132311280