Robot Watch logo
記事検索
最新ニュース
【 2009/04/21 】
ロボットビジネス推進協議会、ロボ検を開始
~メカトロニクス・ロボット技術者の人材育成指標確立を目指す
[17:53]
グローバックス、名古屋にロボット専門店をオープン
~5月2日~5日にプレオープンイベントを開催
[17:05]
「ロボカップジュニア九州ブロック大会」開催
~ジャパンオープン大会の出場チームが決定
[14:32]
【 2009/04/20 】
研究者たちの「知りたい」気持ちが直接わかる
~理研一般公開でのロボット
[15:15]
【やじうまRobot Watch】
巨大な機械の「クモ」2体が横浜市街をパレード!
~横浜開港150周年記念テーマイベント「開国博Y150」プレイベント
[14:20]
【 2009/04/17 】
第15回総合福祉展「バリアフリー2009」レポート
~ロボットスーツ「HAL」や本田技研工業の歩行アシストも体験できる
[19:46]
「第12回 ロボットグランプリ」レポート【大道芸コンテスト編】
~自由な発想でつくられた、楽しい大道芸ロボットが集結!
[14:57]
【 2009/04/16 】
北九州市立大学が「手術用鉗子ロボット」開発
[14:34]
ROBOSPOTで「第15回 KONDO CUP」が開催
~常勝・トリニティに最強のチャレンジャー現る
[13:17]
【 2009/04/15 】
「第15回ROBO-ONE」が5月4日に開催
~軽量級ロボットによる一発勝負のトーナメント戦
[18:50]
ヴイストン、秋葉原に初の直営店舗「ヴイストンロボットセンター」、29日オープン
[13:37]
【 2009/04/14 】
大盛況の「とよたこうせんCUP」レポート
~ロボカップにつながるサッカー大会が愛知県豊田市で開催
[11:34]

UFOをつくろう! 空を飛ぶロボットの原理とメカニズムを学ぶ

~「サッポロバレーE.T.プロジェクト」レポート(1)

本イベントで製作するプロペラタイプの自律型浮遊ロボット。上下方向の距離を超音波センサで計測しながらホバリングさせるため、技術的にも難易度が高い
 10月7日、札幌市青少年科学館において「サッポロバレーE.T.プロジェクト」のスクーリングが開催された。これは、平成18年度の経済産業省ITクラフトマンシッププロジェクト事業の一環として、NPO札幌IT振興普及推進協議会の主催により実施されたイベントである。「自律制御で空を飛ぶ物体」(UFO)を製作し、ハードウェアとソフトウェアの両面の基礎知識を持つ、ITものづくりの次世代の担い手を育成することを主眼としている。

 イベントの参加者は中学生以上(20歳まで)の学生たち。今回は北海道各地の高専や高校の有志チームが集まった。また、講師や運営には、北海道大学や道内のIT企業がボランティアとして協力している。知的好奇心をくすぐる本イベントの模様と内容についてレポートしよう。

 スクーリングは講義(午前)とハンズオンレクチャー(午後)に分けて実施された。午前中は、「オリエンテーリング」から始まり、「空中浮遊の基本原理と駆動メカニズム」、「自律制御メカニズム」、「自律制御プログラム」といった密度の濃い内容の講義が集中的に行なわれた。

 まず始めの「オリエンテーリング」では、本プロジェクト実行委員会会長である山本強氏(北海道大学教授)が、空中浮遊ロボットの概要や、ロボットに利用される組込み型コンピュータなどについて解説した。

 山本氏は、35年前に購入したカメラに既に組込み型コンピュータが搭載されていたエピソードを披露し、現在では家電など日常生活を支える製品にはなくてはならない重要なパーツになっていると述べた。


腕に自信のある、北海道各地の高専や高校の有志チームが集まった。CやVBなどのプログラム経験者も多かった オリエンテーリングで説明をする、サッポロバレーE.T.プロジェクト実行委員会会長、山本強氏(北海道大学教授)。「面白いことをやる前には、いろいろな苦労が必要」と、学生たちを激励

 また、最近のクルマのエンジンを例に挙げて、組込み型コンピュータとパソコンとの違いについて比較した【図1】。組込み型コンピュータの構造は、基本的にはパソコンと同じだ。ただし、入出力となる装置や、-40度Cの真冬の世界でも動くような、厳しい条件下での動作、CPU性能やメモリに制約がある点などが異なっている。

 さらに今回の浮遊ロボットの構成要素についての概要も紹介した。主な構成要素は、組み込みコンピュータ+飛行制御プログラム、モータ(推力発生機構)、超音波距離センサ、エネルギー(電池)となる【図2】。浮遊ロボットは、飛行原理の理解から、高さを検知するサンサや、推力を発生させるモータ制御、空中でホバリング(静止)させる工夫、制御プログラムまで、さまざまな技術を組み合わせて実現するものなので、やはり難しい点もたくさんある。

 「面白いことをやる前には、いろいろな苦労が必要だ。最初はわからなくても、これはこういうことだったのかと、後からわかることも多い」と述べ、臆することなくチャレンジするようにと、生徒たちを激励した。


【図1】組込み型コンピュータは、日常生活を支える製品にとって必要不可欠なもの。基本的にはパソコンと同じ構造だが、OSがない場合もある。センサなどの入出力装置が多彩であることや、さらに厳しい環境下でも動作できる必要がある 【図2】浮遊ロボットの構成要素。組み込みコンピュータ+飛行制御プログラム、モータ(推力発生機構)、超音波距離センサ、エネルギー(電池)で構成される

浮遊の原理とメカニズム

 次に、北海道大学 情報基盤センター副センター長の高井昌彰氏(北海道大学大学院情報科学研究科教授)が、浮遊体を空中に浮かべるための原理とメカニズムについて解説した。

 スクーリングの目的は、空中に浮かぶ自律型ロボットをつくることにある。物体を空中に浮かべるためには、1.翼の揚力を利用する(ヘリコプター型/自立コマ型)、2.空気より軽い物質を利用する(飛行船型)、3.電磁気力を利用する、といった方法があるが、今回は翼の揚力を利用するヘリコプター型を採用している。

 翼に働く力は、空気の流れに対して翼に働く揚力(垂直方向)と抗力(水平方向)の合力となるが、この合力で上昇する仕組みだ【図3】。浮遊ロボットでは、抗力に打ち勝つようにプロペラを回転させ、回転軸方向の推力を発生させる。


北海道大学 情報基盤センター副センター長の高井昌彰氏(北海道大学大学院情報科学研究科教授)。午前中の集中講義の講師を務めた。浮遊の原理とメカニズムに関する解説をしているところ 【図3】翼に働く力の説明。浮遊ロボットは、空気の流れに対して翼に働く揚力(垂直方向)と抗力(水平方向)の合力で上昇する

 ここで、回転力(トルク)を加えると、作用・反作用の法則から、その物体に逆方向へ回転させる反トルクが発生する。この問題を解決するために、プロペラを2重にして回転方向を互いに反対にすることで、反トルクを打ち消す(本体が回らないようにする)しくみだ【図4】。普通のヘリコプターでは、メインロータとテイルロータで相殺している。

 次に高井氏は、上向きの力を制御する原理について説明した。具体的には推力をコントロールするために、プロペラの回転数を変化させればよいことになる。プロペラのピッチを変化させることでも制御は可能だが、機構が難しくなるため、今回は前者の方法をプログラミングで実現している。

 また、浮遊ロボットは上昇しただけでは安定性を保つことができない。そのため、どうやって安定させるかという問題もある。この点については、重心を回転軸の直下に配置し、回転軸を立てる機構を採用することで解決する【図5】。

 逆に意図的にロボットを水平方向に動かしたいなら、重りやテイルロータなどを利用して回転軸を傾ければよい(ただし、今回の浮遊ロボットでは水平方向の制御は行なわない。上下方向のみを制御する)。

 浮上のポイントは「重心位置をできるだけ正確に合わせて、回転軸を垂直に立てて浮上させること。さらに、地面からプロペラ直径程度の高さで起こる地表効果を考慮し、すばやく地表効果圏外に出ることだ」と説明した【図6】。


【図4】反トルクの問題を解決するために、プロペラを2つ利用し、それらを互いに逆回転させることで、反トルクを打ち消すしくみ 【図5】浮遊ロボットを空中で安定させるための原理。重心を回転軸の直下に配置し、回転軸を立てる機構を採用 【図6】浮上のポイントについての解説。これだけ見てもいかに制御が難しいかわかる。地表効果も考えて、モータ出力を制御する必要がある

具体的な制御方法

 以上のような浮遊のメカニズムを踏まえた上で、さらに高井氏は具体的な制御方法についての詳しい解説をした。制御方法の種類は、一般的に「オープンループ制御」、「フィードバック制御」、「フィードフォワード制御」の3タイプに大別される。今回は自律型制御として、超音波センサで地表からの距離を測りながら、目標となる高さを維持する。目標に合わせて推力(モータの回転力)を制御するため、フィードバック制御(フィードフォワード制御でもよい)を行なうことになる【図7】【図8】。

 動力源となるモータには、市販のDCモータ(ブラシモータ)を利用する。モータの回転を制御する原理として、よく利用されるPWM(Pulse Width Modulation)制御について説明がなされた【図9】。


【図7】自動制御の基本の基本「フィードバック制御」のブロック図。制御対象に外乱があっても、目標値に対する偏差がなくなるように操作する 【図8】浮遊ロボットのシステム制御の流れ図。自律型制御として、超音波センサで地表からの距離を測りながら、目標となる高さを維持。高さに合わせて推力(モータの回転力)を制御するため、フィードバック制御を行なう 【図9】モータの回転を制御する原理。PWM(Pulse Width Modulation)制御によって、モータに流れる電流をパルスの幅を変える。モータのスイッチングにはFETが用いられる

 PWMはパルス幅変調と訳されるが、モータに流れる電流のパルス幅(デューティ比)を変えることによって制御する仕組みだ。たとえば、図9のように、ONの時間が長くなるようにデューティ比を変えれば、平均出力電流(電圧)は上がる(モータが高速回転する)。逆にOFFの時間が長くなるようにデューティ比を変えれば出力される平均電流は下がる(モータが低速回転する)。

 モータに電流を流す際には、FET(電界効果型トランジスタ)が用いられる。先ほどのパルスをFETのゲート部に加えてスイッチングをすると、モータを駆動するための電流がFETのソースからドレインに流れる。ゲートに加えるパルスはマイコンからの出力となるが、このパルスのデューティ比をマイコンに内蔵されているタイマで調整する(詳細については後編で説明)。

 一方、距離を測定するためには超音波センサモジュールが用いられる。センサモジュールは約40kHzの超音波を出す発信機と、床に反射した超音波を受ける受信機で構成されているが、距離に比例した電圧を出力するようになっている。そこでマイコンから20ms以上の周期で、測定するタイミングを設定し(トリガーパルスを出力)し、距離に比例した出力電圧をマイコン側で受け取る仕組みになっている【図10】。

 とはいえ、たとえこのような原理がわかったとしても、現実世界ではなかなか理論どおりにはいかないという。言うはやすし行なうは難しの典型で、そう単純ではないのだ。高井氏は、具体的に浮遊物体制御の難しさとして、「駆動系の慣性による遅れ」、「距離の測定誤差」、「サンプリングレートの問題」、「電池の消耗」などの問題を例に挙げた。


【図10】地表からの距離を計測するために、超音波のエコーバックを利用する。発信機から出た超音波を受信機で受け、距離に比例した電圧を出力を得るしくみ 【図11】原理がわかっていても現実世界ではうまくいかないことも。「駆動系の慣性による遅れ」「距離の測定誤差」「サンプリングレートの問題」「電池の消耗」なども考慮に入れる。図では電池の問題について解説

 たとえば、プロペラの推力をモータの回転数で変化させる場合には、慣性モーメントの影響で、目標となる回転数に到達するまでの応答時間に遅れが生じる。超音波センサを利用した距離の測定でも、床の状態や遮蔽物の影響、さらに超音波の指向性によって誤差が出る。また、超音波モジュールは距離に比例した信号が出力されるが、40~50msごとにサンプリング(計測)するため、リアルタイムで高さがわかるわけではない。バッテリーにはエネルギー密度の高いリチウムポリマー電池が使われているが、長い間駆動しているとバッテリーが消耗し、推力も落ちてくる【図11】。これらを解決するヒントとして、以下のような考え方を示した。

・駆動系の慣性・効果の遅延を考慮する
・急激な推力変化を絶対に出さないこと
・パラメータはカット&トライで試行錯誤する
・フェイルセーフも考慮する

 このあたりの問題をクリアするには、プログラミングを十分に検討する必要がある。さらに、うまく飛ばすためのポイントとして、高井氏は以下のような「離陸」、「静止」、「着地」の動作パターンについて説明した。

・離陸モード(テイクオフ)
 3秒程度は本体が浮かない上限で少し留めて、ロータの回転を安定させ、その後、一気にモータ出力をあげて浮上させる。

・静止モード(ホバリング)
 出力アップから高度上昇までの時間遅れがあることに注意する。ある程度の高さになったら回転数を落とし(あまり高すぎると超音波センサが距離を測定できなくなるため、暴走する危険がある)、回転数が一定になるようにしてホバリングさせる。

・着地モード(ランディング)
 吊り上げながら徐々に降下させるイメージで着地させる。このとき回転数を徐々に落としていく。上昇時と同じようなパターンで一気に回転を落とすと、重力があるため急落下してしまうので注意する。着陸直前(最後の1秒程度)に出力を微増しながら姿勢を安定させる。

 高井氏は、このような浮遊のメカニズムに基づいて、このイベントの準備段階に製作した浮遊体のプロトタイプ「UFOモデル」の実演を披露した。これはイベントでは使用するプロペラタイプの浮遊体のモデルとなったものだという。


プロトタイプとなった円盤型浮遊ロボットの表面。まさにこれはUFOです。こんな浮遊体がいきなり飛んできたら驚くかも!? 円盤型浮遊ロボットの裏面。プロペラの製作が難しいとのこと。このイベントでは利用していない 【動画】UFO来襲。デモンストレーションでは無線で操作している。製作するプロペラ型浮遊ロボットは完全自律型で制御することになる

制御プログラミングのポイント

 つづいて、サムシングプレシャスの古賀信哉氏(代表取締役社長)が、浮遊体ロボットを自律で制御するプログラムをどのように作成したらよいのか、そのポイントについて具体例を交えながらレクチャーした。

 古賀氏は、まず浮遊体ロボットのコントロールボードに搭載されている2個のLEDを利用して、ワンチップマイコンの動作について説明した。I/Oポートに接続したLEDを点滅させるWaitルーチンなどのプログラムを紹介し、実際にデモンストレーションを実施。プログラムはC言語で記述するため、ある程度の知識が必要となる。

 プログラム開発環境 にはベストテクノロジー社の「GCC Developer Lite」を用いる。記述したソースファイルからマシン語にコンパイルする方法や、それをコントロールボード側にダウンロードする方法などについて一通り解説した。今回のイベントでは、C言語の知識がある生徒も多かったが、中にはプログラムが初めてという学生もおり、チームによっては難易度がかなり高いと感じられたかもしれない。


浮遊体ロボットの制御プログラムを説明するサムシングプレシャスの古賀信哉氏(代表取締役社長) 【動画】今回のイベントで製作する自律型浮遊ロボットのデモンストレーション。簡単に見えるかもしれないが、安定したホバリングをさせる上下方向の制御はかなり難しい。学生の皆さんがどこまでできたか、後編でのレポートで紹介

 次に、プロペラの回転速度を変化させるサンプルプログラムを紹介。モータの回転数の設定は、前述のようにモータに流れる電流のON/OFFを切り替えるPWM制御用の関数を用いる。古賀氏は、最初の1秒間は最小パワーで出力、中間のパワーで2秒間ほど動作させ、最後の1秒間で最小パワーに戻す実験を試みた。

 また超音波センサで距離を測るための関数についても触れた。ここでは、センサで距離を測りながら、モータの出力を丁度よい具合に調整できるように、ループ処理を行なうルーチンを呼び出す。

 次回は浮遊体のハードウェアの紹介と、午後に行なわれたハンズオンによる飛行実験の模様をお伝えする。さて、うまく浮遊体を飛行させることができるか、乞うご期待。


URL
  サッポロバレーE.T.プロジェクト
  http://www.sv-et.jp/


( 井上猛雄 )
2006/10/16 00:14

- ページの先頭へ-

Robot Watch ホームページ
Copyright (c) 2006 Impress Watch Corporation, an Impress Group company. All rights reserved.