初めて作った「目」のあるロボットなので、目を使うアプリケーションを作ってみるのが 製作の中心となっています。それ以外の部分は、だいたい以前製作したロボットで覚えた要素技術 を使っています。(例えば、歩行ロボットの足の制御を腕の制御に適用したりなど)
メインテーマとしていた「目」関係は、文献をあたりながら画像処理/認識の基本的なことを 実際にいろいろやってみました。そして最終的にはカメラ(目)で見つけた対象を、やはり目で 計ったランドマークを利用して自己位置を推定し、決まった場所に拾い集めるアプリケーションを 作ってみるところまでやってみました。
屋外でカメラが使えなかったため、上記の室内で物を拾い集めるアプリケーションのような物は作らず、 赤外線を使うセンサーへの日光の影響を調べたり、GPSユニットのような基本的に屋外で使うセンサー の使い方を試したりなど、センサー単体の使い方に習熟するために屋外で動かしてみる・・・といった程度でした。
全高 | 340mm |
全長 | 192mm |
全幅 | 294mm |
重量 | 1860g |
構造材料 | プラ板(スチロール樹脂板) |
モーター |
RC用サーボモーター 計10個
走行用モーター 2個 |
電源 |
リチウムイオン電池 (7.2V 19.4Wh) |
センサー |
|
通信 |
|
CPU |
Windows Vista SP1 Home Premium EditionのPC (Core2 Duo E6750 2.66GHz / 2.0G ByteRAM) H8/3069F(25MHz / 2 MbyteRAM) H8/3067F(20MHz / 32 kbyteRAM) H8/3052F(25MHz / 8 kbyteRAM) |
その他 |
|
スポンジキューブを集める:05.03.12 床に散らばったスポンジのキューブを決まった場所に集めます。自分が部屋の中のどのあたり にいるかは、天井の蛍光灯をランドマーク(基準点)として利用し、求めています。上を 向いている時は、蛍光灯を見ている時で、下を見ている時は、キューブを探している時です。 画像認識をPCで行っているため、シリアルポート経由で画像を送るのに時間が多く かかっています。 |
|
スポンジボールを拾う:04.10.16 カメラでスポンジボールを見つけて、ロボットとの相対位置を画像から計算します。 そして適当な位置まで近づき、腕ではさんで拾い上げます。ボールは、ボールの下に出来る 影を、2値化で抽出することにより見つけています。(そんなわけで、上から照明している ときしか見つけられません。) ボールに近づいた後は、赤外線距離センサでロボットの直前の床までの距離を測り、ボールが ある場所を特定しています。 |
|
360度スキャン:04.03.28 腰と首を動かして、10刻みで周囲360度の超音波センサと赤外線センサ(PSD)による 距離測定、Cdsによる明るさ測定をするプログラムを作りました。測定に何秒かけている かを計ってみたところ22秒強でした。頭を止めて測定しないと超音波の方の測定データが 不正確になってくるので、こんな感じになっています。しかし、時間がかかりますね・・・ |
W6v2
カメラを使ったライントレースプログラム バージョン1:03.07.22 右目のカメラでラインを見ながら走ります。サブルーチンがそろってきたので、 試してみました。止まっている時に撮影と画像処理をしています。 今後いろいろと改善して能力をアップします。 (344 Kbyte/mpeg) |
W6v1
後進に切替:01.12.16 このムービーで動いているプログラムは、 超音波センサーからの距離入力が45cmを 切ったら止まり、左右45度向きを測距し、45cm以上の空きがある方向へ向きます。 左右共に物があるときは30cm下がって測距をし直す。 と言う動きをするようになっています。 (232 Kbyte/mpeg) |
その他(倒立振子)
倒立振子:04.06.27 W6v3よりも一回り小さくて、よりすばやく動くロボットを作る前の様子見として 作ったモノです。前後方向にラジコン操縦できます。安定化がいい加減なので、 常に操縦していないと倒れてしまいます。マイコン、モーター等はW6v3 の移動ユニットと同じです。また、センサーは2L1と同じくPG03と ADXL202を積んでいます。 (343 Kbyte/mpeg) |
サンプルその1
−> −> −>
の順で処理し、ラインを抽出してみました。水色の線が処理結果の線で上を走っていい場所です。
一番右の画像の黄色い線は、5cm単位で引いてあります。画像から、ロボットと線の
位置関係を割り出す処理の一段階です。よく3Dグラフィックスの本の初めの方に、
3次元の点を画面に投影する計算の説明が書いてありますが、これはその計算を逆に行い
画像から3次元の点を割り出しています。拘束条件として、
「線はロボットが居る平面と同一平面上にある」という条件を付加しています。
サンプルその2
−> −>
の順で処理し、ラインを抽出してみました。このサンプルでは、同じフレームの中に
「2値化処理」をライン以外のもの(この例ではテレビのリモコン)が
通過してくる時に、ライン以外のものをふるいにかける
処理が入っています。(対応できるのはごく簡単なケースだけですが・・・)
メカニクス |
エレクトロニクス |
ソフトウェア |
機構や構造等主にプラ板やアルミで出来ている部分や 形に関する情報です。 | マイコンやセンサーのハード等、主に電子回路に関する 情報です。 | ロボットを動かすためのソフトウェアに関する情報です。 |
関連技術 |
製作日誌と費用 |
写真 |
本サイトの他のロボットと共通する技術に関する情報です。 |