2016-03-31 14 views
1

私は現在、トウモロコシ畑を移動しなければならないロボットを含む(学校)プロジェクトに取り組んでいます。Robot odometry in labview

NI Labviewで完全なソフトウェアを作成する必要があります。

ロボットが行うことができるタスクのために、ロボットはロボットの位置を知る必要があります。

センサとしては、6自由度のIMU、いくつかの実用的なホイールエンコーダ、2Dレーザスキャナ(SICK TIM351)があります。

今まで私はアルゴリズムやチュートリアルを理解することができず、この問題に本当に固執していません。

SLAMをlabviewで作成しようと試みたことがありましたら、これを行うための例や説明がありますか?

または、この関数/アルゴリズムを含むLabVIEWのツールキットがありますか?

敬具、 ジェシーバックス 3年メカトロニクス学生

答えて

1

Slavoに言及したように、経路探索のためのA *のようなアルゴリズムを含むLabVIEW Roboticsモジュールがあります。しかし、私が知っているSLAMの問題を解決するのに役立つものはあまりありません。 SLAMの問題は、ランドマーク抽出、データの関連付け、状態推定、および状態の更新という、次の部分で構成されます。

ランドマーク抽出では、ロボットに認識させる機能を1つまたは複数選択する必要があります。これは、例えば、コーナーや線(3Dの壁)です。たとえば、クラスタリング、分割およびマージ、またはRANSACアルゴリズムを使用できます。私は、あなたのレーザースキャナが角度でソートされたリストにポイントを抽出して保存すると信じています。これはSplit and Mergeアルゴリズムを非常に実現します。 RANSACは最も正確ですが、より複雑なものもあります。私は、ライン抽出をテストするためのいくつかの最適なデータポイントから始めることをお勧めします。たとえば、レーザースキャナをまっすぐな壁の小さな部屋に置き、スキャンを1回実行してアレイまたはファイルに保存することができます。輪郭がちょうど4つの壁より少し複雑であることを確認してください。測定前または測定後にノイズを除去します。

私はデータの関連付けのための良い方法については読んでいませんが、既存のランドマークから一定の距離だけ離れている場合は新しいランドマークを、そうでない場合は古いランドマークを更新してください。

状態の推定および更新は、補完フィルタまたは拡張カルマンフィルタ(EKF)を使用して行うことができます。 EKFは非線形状態推定[1]の事実上の事実であり、実際にはうまく機能する傾向があります。 EKFの背後にある理論はかなりありますが、実装するのが簡単であるはずです。 EKFをプログラムする場合は、MathScriptモジュールの使用をお勧めします。これらの2つのフィルタのポイントは、レーザスキャナから抽出されたホイールエンコーダとランドマークからロボットの位置を推定することです。

SLAMの問題は大きな課題であるため、複数の小さなSubVIでプログラムすることをお勧めします。あまりにも複雑さを増やすことなく、部品を適切にテストすることができます。

SLAMには多くの優れた論文があります。

1

のLabVIEW LabVIEW Roboticsモジュールを提供します。ロボット工学用のテンプレートもたくさんあります。まず、Starter Kit 2.0 templateをチェックすることができます。これは、あなたが簡単に働く自走ロボットプロジェクトを提供します。そのようなテンプレートをベースにして、ゼロからではなく、作業モデルから独自のアプリケーションを開発することができます。