|
【写真1】午後から始まったハンズオンレクチャーの模様。ハードウェアを製作したサーバー・テクノロジーズの新井隆司氏(代表取締役)自ら生徒たちにレクチャー。新井氏は昨年、プロトタイプのUFO型浮遊ロボットを12機もつくったという。来年は水平移動させるための制御機構まで実現したいとのこと
|
「自律制御で空を飛ぶ物体」(UFO)を製作し、ハードウェアとソフトウェアの両面の基礎知識を持つ次世代の技術者を育成する「サッポロバレーE.T.プロジェクト」のスクーリング。ここでは午後から行なわれた実習の内容についてレポートする。
午後のスクーリングでは、浮遊ロボットの機体製作や、プログラムを開発するハンズオンレクチャーが実施された。リファレンス機体を用いた制御アプリケーション開発をチーム単位で行ない、実際に機体を浮上させる。ハードウェアの製作とソフトウェアの開発に担当が分かれ、チームメイト全体による共同作業で実習が進められた。
まず、ハードウェアから見ていこう。主なパーツは【写真2】のとおりだ。コントロールボード、超音波センサ、プロペラ+モータユニット、本体の足回り部分、電源(リチウムポリマー電池)などで構成する。これらを組み立てて、【写真3】のような浮遊ロボットを完成させることになる。
|
|
【写真2】ハードウェアの主要パーツ。コントロールボード、超音波センサ、プロペラ+モータユニット、本体の足回り部分、電源(リチウムポリマー電池)などで構成。プロペラ+モータユニットの部分は市販の玩具から転用したもの
|
【写真3】完成すると写真のようになる。できるだけ機体の重量を軽くするようにパーツや材料を選定したという。2つのプロペラは反トルクを相殺するために、それぞれ逆に回転するようになっている
|
まず本体の足回り部分を組み立てる。足回りはリファレンスが用意されていたが、設計図を基に、最初から平らなボードを切り出してつくるチームが多かった。足回り部分ができたら、プロペラ+モータユニットを取り付ける。
|
|
【写真4】配布された設計図を基にして、機体の足回りの部分をボードにトレースする
|
【写真5】機体の足回りをつくる作業。ボードから足周りのパーツをカッターで切り出していく
|
|
|
【写真6】足回りの組み立て。切り出した2枚の足を交差させながら、はめ込んでいく
|
【写真7】足回り部分に、プロペラ+モータユニットを取り付ける。モータは足回りに切り込みを入れて、そこに取り付ける。コントロールボードは左側に取り付ける
|
プロペラ+モータユニットの機構はとてもユニークだ。前編のレポートでも紹介したように、この浮遊ロボットでは反トルクを相殺するために2枚のプロペラをそれぞれ逆方向に回転させる必要がある。
1つのモータのみで、2枚のプロペラを逆方向に回すために、シャフトは2重構造になっている(円筒上のシャフトの中に、さらにもうひとつシャフトが入っている)。2組の同一比のギアとピニオンギアを利用することで、CW、CCW方向の回転をつくりだしている。この方式ならば、2つのモータで2枚のプロペラを回すよりも構造がシンプルになり、なおかつプログラムの開発も簡単になる。またプロペラに上部には、機体を安定させるための機構として「スタビライザ」も付いている。
|
|
【写真8】DCモータ1個で、2枚のプロペラを反転させる機構。シャフトは2重構造になっている。モータが回ると下のギアが回り、さらにピニオンを介してもうひとつのギアが逆方向に回るしくみ
|
【写真9】プロペラ部分に取り付けられているスタビライザの拡大写真。浮遊ロボットを安定して飛行をさせるために必要不可欠な機構だ
|
このプロペラ+モータユニットを本体に取り付けてから、モータのケーブルをコントロールボードに接続し、コントロールボードを設置する。昨年までは速度調整にラジコン用のESCスピードコントローラを使用していたが、この機能もコントロールボードに搭載してワンボード化した。ソケットを介して、ストロベリーリナックスの16bitマイコンボード「TinyStamp」がドータボードとしてコントロールボードに組み込まれる形だ。
TinyStampは、H8/3664Fの改良版となるH8/3694F(20MHz)をCPUとして採用し、32KB ROM、2KB RAM(いずれもCPUに内蔵)のほか、3端子レギュレータ(未はんだ)や、パソコンとの通信に必要なRS-232Cインターフェイスも実装されている。約38×26mmと小型の切手サイズで、価格も2,480円と安いため、こういった組込みシステム用途には適しているマイコンボードだ。
また、コントロールボードにつなげる超音波センサは、浅草ギ研が発売している「PING」を利用。電源ラインのほか、距離に比例したパルス長で信号を返すSIGピンがあり、これをTinyStampのH8/3694FのI/Oポートと接続する。
このSIGピンに、H8/3694Fからトリガーとなるパルスを加えると、超音波発信機から40kHzの超音波が床に向かって発振される。反射して戻ってきた超音波の時間から距離を測定し(測定範囲は約3cmから最大3mぐらい)、距離に比例したパルス長をSIGピンから返す。1本のSIGで入出力に対応しているため、回路設計上でも便利だ。
|
|
|
【写真10】コントロールボードに搭載されたストロベリーリナックスの16bitマイコンボード「TinyStamp」。ソケットで抜き差しできるように工夫している
|
【写真11】コントロールボードと超音波センサをコネクタで接続。超音波センサの電源はコントロールボードから供給される。また、センサの入出力は1本のSIGラインで共用されている
|
【写真12】浅草ギ研の超音波センサ「PING」。超音波送信/受信用の素子と、それを駆動する回路が組み込まれており、距離に比例したパルス長で信号を出力する
|
|
【図1】コントロールボードの回路図。設計はサーバー・テクノロジーズの新井氏によるもの
|
コントロールボードの回路図を【図1】に示す。コントロールボードは、TinyStampまわりの回路と、モータを駆動させるドライバ回路などで構成されている。電源回路には3端子レギュレータ「7805」が用いられている。またドライバ部は、モータをスイッチングして駆動させるFET(電界効果型トランジスタ)を2段にして利用し、大電流に対応できるようになっている。
1つ目のFET(2SK941)のゲート部は、ワンチップマイコン・H8/3694FのI/Oポートと接続されており、スイッチングが行なわれる。そして2つ目のFET(2SJ471)がオンになると、バッテリから電流が流れ、PWM制御によってモータ速度を可変するしくみだ。
最後にリチウムポリマー電池を取り付ける。このバッテリは軽量ながらエネルギー密度が高く、400mAh(400mAの一定電流で1時間もつ)と大容量。セル1個で3.7Vの出力があるが、2つのセルを直列につなげて7.4Vで出力させている。バッテリを取り付ける際は、浮遊ロボットが安定して飛行できるように、重心の位置に注意する。以上で浮遊ロボットのハードウェアは完成だ。
|
|
|
【写真13】軽量ながらエネルギー密度が高いリチウムポリマー電池。浮遊ロボットが安定して飛行できるように、重心の位置に注意して取り付ける
|
【写真14】浮遊ロボットを真横から見たところ。足回りの部分に、コントローボード、モータ、超音波センサが取り付けられていることがわかる
|
【写真15】浮遊ロボットを真上から見たところ。2枚のプロペラとスタビライザが見える
|
● プログラミングは手強いけれど、試行錯誤で浮上に成功!
ハードウェアの製作と並行して、ソフトウェア担当の生徒たちが制御アプリケーションを熱心に開発していた。プログラム開発環境「GCC Developer Lite」(以下、GDL)がインストールされているノートパソコンがチームに1台ずつ用意されており、これを利用して、C言語でプログラムを書き、H8/3694Fに転送、実行する。
GDLを使用する前準備として、利用する内蔵フラッシュROMの設定をしておく必要がある。インストール時に、初期環境設定のウインドウが表示されるので、「H8/3694F(H8Tiny)内蔵フラッシュROM」を選択する。もしくは、起動画面のメニューバーから「ツール」-「GCCオプション」を選び、「GCC Option」ダイアログを表示させる。この画面で「設定リスト」をプルダウンし、「H8/3694F(H8Tiny)内蔵フラッシュROM」を選択すればよい。
|
|
【写真16】さあ、いよいよプログラムの開発だ! チームに1台ずつノートパソコンが用意されていた。プログラムの開発には「GCC Developer Lite」を利用
|
【画面1】GDLを使用する前準備。内蔵フラッシュROMの設定をしておく。インストール時に、初期環境設定のウィンドーが表示されるので、「H8/3694F(H8Tiny) 内蔵フラッシュROM」を選択
|
初期設定ができたら、プログラムを記述し、「ビルド」→「フラッシュライタで書き込み」→「実行」→「SIMPLE TERMで結果を表示」という流れで開発を進める。ビルドしてコンパイルが終わると、H8/3694Fの内蔵フラッシュROMにマシンコードを書き込むためのツール「フラッシュライタ」が起動する。
ここでフラッシュライタの左上にあるアイコンをクリックし、「FW環境設定」の「PORT」欄から、接続するシリアルポートを選択しておく。またコントロールボードのスイッチを「Write」にしておく。次にフラッシュライタ画面の「かきこみ」をクリックすると書き込みが開始される。「転送が正常に終了しました」というメッセージが出れば書き込みはOKだ。
あとはGDLのメニューバーのツールから「SIMPLE TERM」を起動し(ここでもフラッシュライタと同じようにポート設定を行なう)、ツールバーの「ポートの接続」アイコンをクリックすると、SIMPLE TERMに結果が表示される。ここでコントロールボードのスイッチを「RUN」に戻しておくのを忘れないようにする。
今回のイベントでは、上記のような作業を繰り返しながらプログラムを開発するのだが、初期設定や、各種関数定義などをインクルードするヘッダファイル、ライブラリのみがサンプルとして配布された。これらをベースにして、生徒たちがテイクオフ用のプログラムや、ホバーリングのプログラム、ランディング用のプログラムなどを自作するため、昨年のイベントよりもプログラム開発の難易度がかなり高くなっていたようだ(昨年のイベントでは、配布されたプログラムを機体や環境に合わせて調整)。
|
|
【画面2】CPU内蔵のフラッシュROMにマシンコードを書き込むためのツール「フラッシュライタ」と、プログラムの結果を吐き出すターミナル「SIMPLE TERM」
|
【画面3】プログラムの一例。浮遊ロボットの高度から、モータの出力を調整するためのルーチン
|
このようにして、プロペラ(モータ)を回転させることから始まり、モータ出力のデューティ比を変えたり、微妙なパラメータチューニングを繰り返しながら、うまく離陸させ、安定したホバーリングをして、着陸できれば成功だ。離陸時の出力を急激に高くしすぎて浮遊ロボットが急上昇し、超音波センサが距離を測定できなくなる高さまで達して暴走してしまうケースもあった。
|
|
|
【動画】プログラミング担当の好井智章氏(サムシングプレシャス取締役最高技術責任者)。PWM制御において、Duty比を変更した場合に、モータがどの程度まで回転するのかをわかりやすく解説
|
【動画】プログラミングが終了して、いよいよ試験飛行。うまく飛び上がった! 離陸時には先生も思わず力が入ってしまう
|
【動画】離陸時の出力調整が急激すぎたためか、浮遊ロボットが急上昇してしまい天井に衝突した! このあとロボットはバラバラになってしまったが、失敗は成功のもと。失敗を恐れずに頑張ろう
|
|
|
【写真17】安全のために、飛行試験の空間はネットで囲まれている。写真は浮遊ロボットが網に引っかかってしまったところ。こんなハプニングも初体験!?
|
【動画】苦難の末に、遂に安定したホバーリング飛行に成功した瞬間。見学者から惜しみない拍手と喜びの声があがった
|
個人的な感想としては、実際にPWM制御のプログラムだけを例にとっても、かなり難しいと感じた。というのも、CPU内蔵のタイマでカウントしたり、レジスタにフラグを立てたりと、H8/3694Fの内部アーキテクチャまで理解しないと応用プログラムが組めないからだ。プログラムについての詳細は割愛するが、同プロジェクトのWebサイトにヒントが掲載されているので、興味のあるかたはご覧いただくとよいだろう。
とはいうものの、最初は手探り状態でプログラミングをしていた生徒たちも、イベント終了の1時間前ぐらいになると、理解が進み徐々にコツがつかめてきたようで、ほとんどのチームがロボットの浮上に成功し始めた。だが、安定したホバーリングをさせることはなかなか難しかったようだ。何回も試行錯誤を繰り返し、安定したホバーリングを成功させたチームに対して、惜しみない拍手と喜びの声があがった。
最後に、実行委員会会長の山本強氏から、このプロジェクトを通して学んだ技術を活用する競技会の概要が発表された。この競技会は、新しい自律型浮遊ロボットの機体を製作し、3次元空間の中で規定動作を行ないながら、その運動能力を競うというもの。2006年12月16日に、メディアミックス札幌において開催される予定だ。今回のイベントの体験から、一体どのよぅな新しい自律型浮遊ロボットが登場するのか、いまから楽しみだ。
● 人を乗せられる空中浮遊ロボットの世界大会を開催したい
――自律型浮遊ロボットを教材として選んだ理由はどのようなことからでしょうか?
山本氏:いま若い人から大人まで、一番何に興味があるのかということを考えました。まず人間の究極の欲望として、「空を飛びたい」ということが挙げられるでしょう。それから技術的な側面では、バッテリが進化したことによって、このような浮遊ロボットも実現できるのではないかと思いました。
また、IT技術を利用しながら、空中で競えるコンテストがあまりなかったということも契機になりました。3次元の世界になると、コンペディションのレンジが大きく広がるのです。空中に浮いている時間を競うもの、水平方向の移動(前後左右)や高さ方向の移動などを競うもの、さまざまな競技を実施できるようになれば、コンテストとして深みがでるのではないかと考えました。
|
|
【写真18】北海道大学情報科学研究科教授・情報基盤センター長の山本強氏。E.T.プロジェクトの実行委員長を務めている。パソコンがまだマイコンと呼ばれていた黎明期から、その普及活動につとめてきた第一人者
|
【写真19】ソフトフロント取締役会長の村田利文氏。E.T.プロジェクトの実行委員のひとりとして裏方で尽力。ジュニアスーリングでは講師も務めた。山本氏とは大学時代の先輩後輩の間柄だという
|
――このE.T.プロジェクトを実施して、成果はいかがでしたか?
山本氏:昨年の段階では、まだ具体的に生徒たちに何をさせられるか、読めないところがありました。自律飛行するロボット競技もありませんでしたから、まず教材の開発から始めなければなりませんでした。とはいえ、最終的にイベントはうまくいったと思います。合計で5チームが参加し、技術的にも我々の予想をはるかに上回る達成度でした。
村田氏:あるチームは自分たちでアルゴリズムを探求しながら、高精度で浮遊ロボットを制御していました。空中でほとんど静止するような状態までプログラムを仕上げてしまい、本当に驚きました。我々が考えていた以上の成果が上がり、いきなりゴールを達成してしまったのです。
山本氏:実際に環境を与えて、ある程度まで理解できるようになれば、生徒たちはすごい力を発揮してくれるということがよく分かりました。ただ問題点は、我々、指導者側の人員が不足していることにあると思います。ものをつくる段階に入ったときに、生徒たちをフルにサポートしてあげられないのです。モノ、環境、さらに指導者が三位一体となったとき、初めて優秀な技術者が生まれてくるのだろうと感じています。
|
【写真20】ジュニアスクーリングで使用されたプロペラ型の浮遊ロボット。円盤のような本体にコントロールボードが付いている
|
村田氏:今年のイベントでは、レクチャーの参加者も倍増し、たくさんの生徒が参加してくれました。スクーリングには高校3校、専門学校4校で合計33名8チームがチャレンジしてくれました(札幌開成高校、札幌清田高校、札幌啓成高校、札幌高等技術専門学院、旭川高等技術専門学院、日本工学院北海道専門学校、札幌テクノパーク専門学校2チーム)。
何もないところから始めた昨年と比較すれば、実行する側の我々も少しは小慣れてきたのではないかと感じています。今年はジュニアを対象にしたイベントも開催しました。約60人ぐらいの小学生が参加し、簡単な竹とんぼの原理の勉強から、浮遊ロボットの飛行までを体験してもらいました。
――今後の予定や展開について教えてください。
山本氏:「E.T.」は宇宙人というイメージがありますが、実はこのプロジェクトのE.T.は、「Extreme Technology」(究極の技術)の略です。このイベントを実施している理由はただひとつ。若い世代の理系マインド、科学に対する好奇心、あるいは技術を極める価値を経験してもらいたいと切に願っているからです。技術に対する感動を若いときに一度でも味わえれば、それはのちのちまで記憶に焼き付けられるでしょうし、大人になってから何をやりたいのか? という根拠にもなると思います。コンテストについては、科学技術の世界的なコンペディションまで発展できれば、と考えています。最終的に人を乗せられるような空中浮遊ロボットの大会を開催できれば面白いですね。
村田氏:まだハードウェア(機体)の部分が手薄なので、全国レベルでハードウェアの支援をしていただけると大変嬉しいです。たとえば、2重反転プロペラやプロペラのチルトを変える機構など、メカニカルな部分での製作や供給の協力が得られれば、もっと進んだプログラミングの課題にもチャレンンジできるのではないかと考えています。これからコンテストもどんどん大きくしていきたいと思っているのですが、そのためにはプロモーションも必要ですし、運営費用なども掛かりますので、もしスポンサーシップをとっていただけるような企業があれば、ぜひお願いにあがりたいと考えています。
■URL
サッポロバレーE.T.プロジェクト
http://www.sv-et.jp/
■ 関連記事
・ UFOをつくろう! 空を飛ぶロボットの原理とメカニズムを学ぶ(2006/10/16)
( 井上猛雄 )
2006/10/17 00:18
- ページの先頭へ-
|