夢卵2010 お絵描き群ロボット 制作編
DESCRIPTION
会社のアイデアコンテストで、群ロボットが整列するデモを作りました。制作秘話をまとめてみました。TRANSCRIPT
11/11/15
お絵描き群ロボットのつくりかた
趣味のロボット工作シリーズ
Keisuke UTO @utotch
発端
11/11/29
• (株)デンソー グループには、2年に1回夢卵(ムーラン)と呼ばれるアイデアコンテストがある。
• 企画を応募して、当選(100件程度)すれば、開発費用を補助してもらえる
• そこで、次のようなものを応募して、制作しました
11/11/29
こんなのできたらいいな 指で「お絵描き」するだけで、ラジコン軍隊が整列するよ
You can line up RC Cars by only drawing a curve!
Sの字に並べっ!!
サササッ!整列完了シマシタ!
ラジャー!!Line up to a “S” shape.
ROGER.
We finished to line up.
命令を受けると…
絵の形に整列
指で「お絵描き」するだけで、ラジコン軍隊が整列するよYou can line up RC Cars by only drawing a curve!
Sの字に並べっ!!
サササッ!整列完了シマシタ!
ラジャー!!Line up to a “S” shape.
ROGER.
We finished to line up.
命令を受けると…
絵の形に整列
お絵描き群知能 並べ!ラジコン
11/11/29
どうやって実現するか?? とりあえず、次のような構成を考えてみた
11/11/15
想定システム構成
WiFi
ZigBee
USBカメラ
iPad
群ロボット
11/11/29
しかし、予算は限られている。 少ない予算で、沢山のロボットを動かせるだろうか? しかも、自由な動きできるロボットって難しいぞ。 普通の4輪では細かい動きができそうにないし… とりあえず、市販品でできないか調べてみた。
11/11/15
全方向に動けそうな移動機構
メカナムホイール
Airtrex Omni Directional Drive Honda U3-X
NISSAN Pivo2 オムニホイール
11/11/15
市販で手に入るか? WowWee 社 ROVIO ($350)
http://www.wowwee.com/en/products/tech/telepresence/rovio/rovio
カメラを備え、WiFi で制御可能 沢山買うと予算オーバー → 却下
11/11/29
市販品では予算が足りないので、自作することにした。 このとき、後にどれほど苦労するか、予想だにしていないのであった。
11/11/15
金額的に要求を満たすハード
http://www.tosadenshi.co.jp/blog/18cm.html
18cmオムニキット廉価版 14,500円
土佐電子
22cmセンサー付 4車輪ウレタンオムニキット
53,000円
参考
いちばん安いコイツを採用
11/11/15
制作したロボット LEGO ブロック
XBee 無線 モジュール
11/11/15
制作したロボット
モータIC 4個 (東芝TA7291P)
マイコン (Arduino FIO)
オムニホイール
11/11/29
使った部品, 技術を軽く紹介
11/11/15
Arduino FIO
・2500円 ・XBee を直接装着できる ・アナログ Input (8個) ・デジタル I/O (14個) ・PWM 出力可能(6個)
Summary
Microcontroller ATmega328P Operating Voltage 3.3V Input Voltage 3.35 -12 V Input Voltage for Charge 3.7 - 7 V Digital I/O Pins 14 (of which 6 provide PWM output) Analog Input Pins 8 DC Current per I/O Pin 40 mA Flash Memory 32 KB (of which 2 KB used by bootloader) SRAM 2 KB EEPROM 1 KB Clock Speed 8 MHz
11/11/15
ZigBee
http://www.switch-science.com/products/detail.php?product_id=96
家電向けの短距離無線通信規格の一つ。 日本では 2.4GHz帯 (250Kbps)が利用できる。
XBee無線モジュール(2500円) シリアルポートと透過に見える。
Point-to-Point
Point-to-Multi-Point
11/11/15
つくりかた (製作者:一人)
11/11/29
作り方
会社の先輩> 基盤焼けよ ボク> そんなの分かりません
11/11/15
作る
11/11/15
さらに作る
11/11/15
もっと作る
11/11/15
できた
11/11/15
完成
11/11/29
画像処理と制御はどうするの? これも100% 完全に自作しました。 (そもそもココが一番やりたかったのだ。)
11/11/29
しかし、カメラから遠い位置にある、複数の2次元コードを認識するのは、そう簡単にはいかず、それなりにノウハウがいるのであった(汗)
11/11/15
画像処理上の問題 解像度:640x480
・解像度640x480 ではマーカの中身が潰れてしまう (少々マーカサイズを大きくしても、ダメ ) ・紙に印刷したマーカはテカる
問題
無理!
11/11/15
画像処理上の問題
・マーカの黒部分の素材を工夫(布など) ・カメラの解像度を960x720に変更 ・カメラの露出を微調整 ・カメラの設置位置を有利な場所に調整 ・マーカに誤り訂正を入れて設計
11/11/15
マーカ検出 2値化
境界トレース コーナー検出
膨張・収縮処理
テンプレートマッチング
ラベリング
11/11/29
Homography 計算
※あらかじめ4点でキャリブレーションしておく
カメラの設置位置によらず、真上から見下ろした画に変換して、所望の形状に近づくように制御する
11/11/15
誤り訂正入り2次元コードの設計 Reed-Solomon コード CD, QR コードなど
数日以上かかりそうだったので却下
Hamming コード
簡単そうだったので採用
・1ビットの誤り訂正が可能
11/11/15
iPadイベントの処理
WiFi
Webサーバ (Jetty)
Matlab
XBeeデーモン
Ajaxでタッチイベントを送信
画像認識 ロボ制御
11/11/15
フィードバック制御の実装
PID制御
P(Proportional): 比例ゲイン I(Integral): 積分ゲイン D(Derivative): 微分ゲイン
時間
偏差
時間
偏差
偏差に比例して入力を制御
時間積分した偏差を用いてオフセットをなくす
オフセット
時間
偏差
偏差の微分値を用いて、時間感度(応答速度)を上げる
11/11/29
というわけで、なんとか最低限は完成した。 衝突回避の制御を入れたかったけど時間切れで実装できず。
11/11/15
最終構成図
WiFi
ZigBee無線通信
ロボット位置認識用USBカメラ
iPadへ形状入力 全方向移動ロボット群
PC 誤り訂正入り
2Dコード
11/11/30
お絵描き群知能「並べラジコン」
http://d.hatena.ne.jp/Cherenkov/20101115/p1
夢卵当日の様子
Cherenkov さん写真 Thanks!
11/11/30
YouTube で、動いている ムービーが見られます
http://www.youtube.com/watch?v=SzXFGeB6Hxs
11/11/30
おわり
Keisuke UTO @utotch