- 締切済み
ロボット関係に詳しい人に質問です。2
前に同じ投降をしましたが、レスが遅れたのと、早急に解答が欲しい内容が出来たので迷惑だとは思いましたが新しく立てました。 もう4度目の投降になり内容が重複してきましたが、現状を書きますのでよろしくお願いします。 まったく知識がないので見当違いなことを書くかもしれませんがわかる範囲で書きます。 赤外線センサーと超音波センサーを使ってパルス回路に読み込みステッピングモーターを動かすような単純なロボットです。DOSがはしるCPUを使ってC言語を用いています。 移動ロボット自体は昨年度の引継ぎなので完成しているので、センサーとプログラムを強化して、自律移動を考えていますが、ロボットの知識がない上に引継ぎなので悪戦苦闘しています。 制御方法としては、ご教授いただいた通り、まず赤外線センサーを使って、人を認識して障害物の回避に人に着いて行き、人がいない場合は超音波センサーを使って前左右の壁を判断して、壁がないほうに曲がるという迷路攻略のような感じを予定しています。 また、目的地に自分で移動できるようにしたいのですが、CCDを使う場合画像処理など難題にあたりそうで避けたかったのですが、目的地を設定するのをどうしたら良いか頭を悩ませています。 他の手段としては、GPSやビーコンを使って場所を認識させる。または移動経路を記憶させてそれにそって移動する等などを考えていますが実現させる方法がわかりません。 素人が別世界に足を踏み込んだみたいでかなりいっぱいいっぱいな状況ですがこれをやらないと卒業できないので頑張りますので何とぞアドバイスお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Botticellian
- ベストアンサー率46% (15/32)
またお会いしましたね。 ずっと応答が無かったので解決したのか止めてしまったのかと思っていました。 >まず赤外線センサーを使って、人を認識して障害物の回避に人に着いて行き、人がいない場合は超音波センサーを使って前左右の壁を判断して、壁がないほうに曲がるという迷路攻略のような感じを予定しています。 人に誘導されるか、障害物を単純に避ける方針は決まりなのでしょうか? 人が誘導するにしても目的地に正確に到着するには自律的な機能が必要になります。 壁がない方に移動するロジックだと障害物の間を抜けていくような場所だと難しいでしょう。 おそらく障害物の形状や現在位置、現在位置と目標物との相対距離などをリアルタイムに正確に計測できないと難しいように思います。 例えばロータリーエンコーダで位置を積分したとしてもタイヤはスリップしないとも限らないし、何かにぶつかって角度がずれてしまうこともあります。 画像認識でないにしても障害物の形状認識は必要に思います。障害物に対する相対的な現在位置の認識も必要でしょう。そういった形状認識でゴール位置を判断した方がよいのかもしれません。(予定外のコースを通ることも有り得ますから) あと障害物が全て静止しているならいいですが、敵のロボットのような動的な障害物があると結構ロジックは大変です。 >GPSやビーコンを使って場所を認識させる。または移動経路を記憶させてそれにそって移動する等などを考えていますが実現させる方法がわかりません。 両方とも現実的に不可能だと思います。 まずGPSですが、屋内ではまず無理で例え屋外でも走行フィールド内で求められる精度は得られないでしょう。 Beaconの方ですが、仮に道路を通るように経路が一定でそこを通過したかどうかを検知するにはいいですが、誘導するのは難しいと思います。それにロボットの走行フィールドはBeaconが有効なほど広くはないでしょう。 移動経路を記憶させておく方法ですが、これは辿り着かない可能性があります。移動経路をずれた場合現在位置を正確に認識してかつ確実に軌道修正ができなければ意図しない位置に行ってしまう可能性もあります。 >赤外線センサーと超音波センサーを使ってパルス回路に読み込みステッピングモーターを動かすような単純なロボットです。DOSがはしるCPUを使ってC言語を用いています。 DOSはマルチタスクでないので使いにくいでしょう。またDOS上のドライバを用意するのは現在ではLinuxやBSDに比べてずっと負担があります。 C++でなくCということは、オブジェクトでないわけですから新たなセンシングによる割り込みベクタを書くということですね。ご苦労な話です。 Linuxで動くマイクロサーバを使った方がずっと楽だと思うのですが。CCDを利用する時でもUSBとか使えますしドライバも既に存在しますし。