2
コンピュータービジョンを使用したPIDアルゴリズムの実装
私は自動迷路迷路ソルバーを構築し、迷路を制御するためにWebカメラを使用しています。 他のフォーラムでの提案に基づいて、私は迷路のボールの動きを少なくとも現時点では一方向に制御しようとしています。つまり、2つの座標466,288と466,152の間でボールの動きを制御しようとしています。ステッピングモーターコントローラーボードへの入力は時間であり、各軸、つまりxとyに対して回転するステップはありません。 私が使用しているステッピングモーターコントローラーボードは、エッグボットステッピングモーターコントローラーボードです。http: //www.sparkfun.com/products/10025 したがって、2点間を移動するには、2点間にいくつかのウェイポイント、つまり288と152(たとえば260 240 230 ... 150)を作成し、ボールの動きを修正する必要がありますか? 私の画像処理アルゴリズムは、ボールが回転して穴に落ちるだけのボールを追跡するには十分な速度ではありません。 次のビデオに示すように、標準のテンプレートを使用して、パスのずれについてボールの動きを修正することを提案した人もいます。 http://www.youtube.com/watch?v=Prq78ctJ2Rk&feature=player_embedded また、ボールの動きにウェイポイントを使用して同じ問題を解決する画像処理ツールにも出会いました。同じ問題に対する解決策が多すぎるため、問題の解決に完全に混乱しています。PIDコントローラーを実装する必要があることを認識しています。しかし、問題を段階的に解決するにはどうすればよいですか?私は行き詰まって、問題を解決するための有利なスタートを見つけるのにイライラしています。 私のセットアップは次のようになります: ...そしてこれが私のソフトウェアのスクリーンショットです: リビジョン2:私はまた、新しい問題に直面しています。以前は、ArduinoシリアルポートJavaアプレットを介してステッピングモーターを制御していました。アプレットを使用してステッパーを駆動できます。 シリアルポート経由で通信しようとするたびにボードをリセットする必要があります。また、ステッピングモーターは、コマンドが送信されない場合、小さな間隔で自身にエネルギーを供給します。ステッピングモーターがこのモードに入ると、ボードをリセットしないとボードを制御できません。どんな援助もいただければ幸いです。 リビジョン3: PIDアルゴリズムを実装したところ、いくつかの進歩がありました。以下のビデオを見つけてください:http : //www.youtube.com/watch?v=MEfp7RqPmqY ここで、PIDアルゴリズムが実装される速度に問題があります。実際、私の画像処理は200 msでサイクルを終了し、ボールを識別して、コマンドをステッピングモーターコントローラーボードに送信します。シリアルポートに方向を切り替えるコマンドが送信されても、ステッパーは同じ方向に回転し続けます。上のビデオで奇妙な行動を見つけることができます。 私の考えでは、計算されたPID値が100より大きい場合は100を送信する必要がある上限でPID値を制限する必要があります。これについてのあなたの考えを聞くのを楽しみにしています。 PIDコントローラーを実装した方法は、テンプレートマッチングアルゴリズムを使用してテンプレートの開始点を識別し、別のテンプレートマッチングアルゴリズムを使用してボールを識別したことです。次に、ボールを開始点テンプレートの図心に移動させました。PIDアルゴリズムを使用して直線に合わせるにはどうすればよいですか? リビジョン4: 軌道を分離しましたが、開始点から正しいピクセル座標を印刷するための正しい関数を見つけることができません。何かご意見は?