|
|  |
|
 |
 |
 |
 |
|
大庭慎一郎のレゴマインドストームNXT研究室 〜二足歩行型ヒューマノイド「アルファレックス」を遊び倒す
|
 |
|
|
|
Reported by
大庭慎一郎
|
 |
 |
 |
 |
 |
 |
● 二足歩行型ヒューマノイド「アルファレックス」
|

|
|
【写真1】玩具用セットのパッケージのアップ。CGで描かれたアルファレックスが目印
|
レゴ マインドストームNXTのウリの1つ、二足歩行型ヒューマノイド「アルファレックス」が今回のターゲットである。玩具用セット1つでこのアルファレックスを組み立てることができる(教育用セットを持っている人がアルファレックスを組み立てるには、別途教育用拡張セットを購入する必要がある)。
パッケージを飾るこのロボットを目当てに、マインドストームNXTを購入した人も多いのではないだろうか。子供にも人気のようで、「うちの子が欲しいとねだって困ってる」と知人も言っていた。さっそく薦めておいたが、小学生に約4万円のおもちゃはちょっと高いのかも知れない。
そんなアルファレックスの魅力を、その仕組みや動かし方などを交えて紹介しよう。
● 脚部を組み立てる
アルファレックスの組み立ては5段階に分かれており、第1段階では脚部のみを作るようになっている。脚部だけで二足歩行ができるようになっているので、まずはこの部分だけ作ってみることにする。
前回作ったトライボットと違い、アルファレックスの組立図はすべてオンラインドキュメントで提供されている。組立図を見るには、NXTソフトウェアの「ロボセンター」で「ヒューマノイド>アルファレックス」とたどると5つのメニューが現れるので、【画面1】のように一番上の「1.歩く」を選択する。この中にある「組み立てガイド」が脚部の組立図だ。【画面2】のようにズーム表示することもできる。
|
|
|
【画面1】アルファレックスの「1.歩く」を表示したところ。組み立てガイドの他にプログラミングガイドやテストガイドがある
|
【画面2】脚部の組立図をズーム表示したところ。レゴブロック伝統のテキストレスでわかりやすい図解になっている
|
組立図の元画像は、NXTソフトウェアが入っているフォルダ以下の「engine\EditorVIs\Academy Content\activities\humans\man\01\bi」に格納されているので、これらを他の画像ビューアーなどで見ることもできる。また、組立図のPDFファイルが公式サイトで公開されている。教育用セットを持っている人はこっちを見るといいだろう。
脚部だけで48ページあるが、20〜30分くらいで組み立てられるのではないだろうか。すべて組み上げると【写真2】、【写真3】のようになる。パーツを種類で仕分けしておくと組み立て効率が大幅にアップするので、組み立てはじめる前に整理しておくとよい。
|
|
|
【写真2】完成した脚部。シャフトとギア、クランクをうまく配置することにより、脚部に内蔵されたモーター2つだけで二足歩行をする
|
【写真3】脚部を後方からみたところ。ケーブルを固定するパーツは全身を組むときに取り付けるものだが、便利なので先につけてある
|
無事に組み上がったら、動作確認を兼ねて簡単なプログラムで動かしてみよう。プログラミングガイドにはハートを表示しながら前進するプログラムが掲載されているが、ここではNXTの入力ボタンを押している間だけ前進するプログラム【画面3】を新たに作成した。このプログラムでは、スイッチブロック(入力ボタン分岐)と移動ブロックで切り替えを制御し、全体をループブロックで繰り返している。このようにNXTソフトウェアでは条件分岐やループも他のプログラミングブロックと同じように使うことができる。
後述するモーターの初期位置などがきちんと合っていれば、【動画1】のような動きをする。
|
|
|
【画面3】NXTの入力ボタンで前進・停止を切り替えるプログラム。ボタン入力があれば前進、なければ停止を延々と繰り返す。プログラムのダウンラードはこちら
|
【動画1】脚部だけで動かしているところ。CPUブロックであるNXTはコントローラーとして使っている
|
● 二足歩行の仕組み
|

|
|
【動画2】脚の前後と足首の傾きを個別動作させているところ。この2つの動作が同期して初めて二足歩行の動きになる
|
モーター2個で二足歩行を実現しているアルファレックスの機構、ぱっと見では左右のモーターがそれぞれ内蔵されているほうの脚を動かしているように見えるが、実はそうではない。その面白い仕組みをちょっと見てみよう。
左右の脚に1つずつ内蔵されているモーターは、右脚のモーターBが両脚の前後を、左脚のモーターCが両足首の傾きを担当している。モーターの回転をそれぞれの動きに変換するのに、てこ・クランク機構とスライダー・クランク機構を使っている。この2つの機構を同時に動かすことで、二足歩行を実現しているわけである。
両脚はギアとシャフトによって機械的に同期がとられており、左右が常に半周期ずれて動くようになっている。例えば、右脚が前に出ているときは左脚は常に後ろになる。そのため、片脚だけ前後させるような動きはできない。【動画2】のように、モーターB、Cを個別に動かしてみるとその動きがよくわかる。
アルファレックスの二足歩行はこのような仕組みになっているので、脚の前後と足首の傾き具合がぴったり同期しないとうまく歩かない。さらに、マインドストームNXTのモーターはプログラム開始時からの相対角度で制御するため、動かす前の初期位置合わせが重要になってくる。【画面4】のように組立図中にも記載があるので、図をよく見て各ギアの角度を正しい位置にセットしてから、プログラムを動かすようにしよう。
このように、動かすたびに毎回初期位置合わせをする必要があるのだが、調整は各モーターの軸から左右に出ているパーツをつまんで行なうようになっている。この径が小さくて回しづらいので、【写真4】のように余ったギアを取り付けるとよい。
|
|
|
【画面4】組立図中にある位置合わせの指示。4つのクランクの開始点がそれぞれ図のような位置関係にないとうまく動かない。実際には前のギアをもう45度くらい回して後ろのギアと角度を近づけるとよい感じ
|
【写真4】モーターの軸に直結させたギア。てこの原理を使って軸合わせを簡単にしている。付けっぱなしでも動作に影響はない
|
|

|
|
【写真5】左足裏のストッパー機構。この機構により左脚が浮いた状態でも地面にグリップする
|
もうひとつ、左足裏のストッパーも面白い機構だ。これは、右脚に体重が乗っていて左脚が浮いているときでも、地面とグリップするための仕掛けだ。プログラムガイドが進むとアルファレックスを転回させるプログラムが出てくるのだが、そこでこの機構を使っている。
ただ、この機構を使って転回をするには、足首の傾きを右脚に体重がかかっているときにうまく止めなくてはいけないのと、右脚にはないため一定方向の転回しかできないのが難点だ。また、この機構が歩行に影響してまっすぐ歩かない場合もある。
● 全身を組み立てる
アルファレックスの二足歩行の仕組みを一通り理解したところで、いよいよ全身を組み立ててみよう。
ロボセンターの「2.胴体としてのNXT - 回転」から「5.照明」までの組み立てガイドを見ながら、順番に組んでいけば完成だ。以下の写真のように、NXTを胴体に、タッチセンサー、サウンドセンサー、光センサー、超音波センサーとすべてのセンサーを装備し、二足歩行用の2つのモーターに頭と腕を動かすモーターが加わった、完全装備のロボットになる。
特徴的なポイントは、脚部と胴体の固定方法と、頭部と腕部を1つのモーターで同時に動かす機構だ。このようにアルファレックスの動きはほとんどがクランクを使って生成されており、単純な回転運動はなく周期的な運動の組み合わせで動いている。ギア比の関係で、脚の前後と足首の傾き、腕部の動きはモーター3回転で1周期、頭部の動きはモーター9回転で1周期となっている。プログラムで制御する際にも、この周期を考えながらプログラミングするようにしよう。
|
|
|
【写真6】完成したアルファレックス完全版。頭部に超音波センサー、右手にタッチセンサー、左手にサウンドセンサーを装備している
|
【写真7】アルファレックスを後方からみたところ。頭部と腕部を動かすモーターと光センサーが取り付けられている
|
|
|
|
【写真8】脚部と胴体の接続部分のアップ。足首の傾きを制御しているクランクの動きをリンクロッドで胴体に伝えることで、上半身の傾きを一定に保つように動く
|
【写真9】頭部と腕部を動かす機構部分のアップ。多段のギアとリンクロッドをうまく使って、モーターの回転を各部の動きに変換している
|
さっそくそれぞれの動きを見てみよう。【動画3】が脚部だけ動かした二足歩行の全身バージョン、【動画4】が頭部と腕部だけ動かしたところだ。上半身と下半身の連携や頭部と腕部の周期動作の様子がわかると思う。前述のように脚部と腕部の動作の周期は同じモーター3回転だが、「右脚が前のときに左腕を前」というように人間の歩行動作を同じ動きをさせるには、モーターAも初期位置合わせが必要なので注意。
|
|
|
【動画3】全身による二足歩行の様子。下半身が傾いても上半身は一定の角度を保つ
|
【動画4】頭部と腕部の動きの様子。腕部の動き3周期分が頭部の動き1周期になる
|
次に全センサーを使った制御の例を紹介する。右手のタッチセンサーを押すと体を揺らし始め、手を鳴らすと前進開始、目の前に何かが現れると転回して来た方向に戻り、暗くなったら「Good Night」と発声して動作を停止するプログラムだ。NXTソフトウェアで組むと【画面5】のようになる。
プログラムのポイントはいくつかある。1つ目は、両脚の周期がずれないようにモーターB、Cを動作周期である3回転単位で制御してる点だ。そのために待機ブロックではなくループブロックで3回転動作を繰り返すようにしている。また、反転前にモーターB、Cを1/2周期である1.5回転だけ動かし、初期位置では左脚にある重心を右脚に移動させている。
2つ目は、プログラムの開始時と途中でシーケンスが分岐して並列処理をしている点だ。開始点から下に伸びるシーケンスでは、光センサーの反応を制御している。一方、途中からシーケンスが分岐している部分では、移動ブロックのループとサウンドセンサーの反応待機を別々で動かしている。ループの終了判断はループを繰り返す瞬間だけ行なわれるので、移動ブロック実行中でもサウンドセンサーが反応するようにこのようにした。また、並列処理間の連携には変数ブロックを使っている。このようにNXTソフトウェアでは、プログラム用語でいうスレッドや変数も簡単に扱うことができる。
プログラムを実行すると【動画5】のような動きをする。各センサーの閾値は、環境に合わせて調整する必要がある。最後は部屋の電気を消したので真っ暗で見えないが、周囲の明るさに反応している様子が音でわかると思う。
|
|
|
【画面5】全センサーを使ったサンプルプログラム。各設定パネルの説明は割愛する。プログラムのダウンロードはこちら
|
【動画5】アルファレックスがセンサーを駆使して動いている様子
|
● 次回はアルファレックスの改造にチャレンジ
以上、二足歩行型ヒューマノイド「アルファレックス」を遊び倒すために、その仕組みを説明した。動きの自由度は決して高くないが、機構を理解すれば遊べるロボットであることには間違いない。次回はこのアルファレックスをもっと楽しく動かすための改造ネタをお届けする予定である。
最後にオマケではないが、昨年末に筆者が書いた「入門LEGO MINDSTORMS NXT 〜 レゴブロックで作る動くロボット」という本を紹介したい。この本は「ロボットを動かす」ことに重点を置いたプログラム中心の入門書で、NXTソフトウェアによるプログラミングの基礎から応用まで順に学べる内容になっている。
NXTソフトウェアのプログラミングブロックや機能はほぼ網羅しているので、プログラムのことがよくわからない人や応用力を身につけたい人、MINDSTORMS NXTは持っていないけどどんなことができるか知りたい人など、広く読んで頂ければ幸いである。
なお、前述のようにソフトウェアの話が中心のため、ハードウェアの話、すなわちレゴブロックを使って機構を組むことに関しては、あまりページを割いていない。ハードウェアの話は五十川芳仁氏の「LEGO MINDSTORMS NXTオレンジブック 〜 アイデアノタマテバコ」が詳しいので、そちらも合わせてご覧頂ければと思う。
■URL
レゴジャパン
http://www.legoeducation.jp/mindstorms/index.html
マインドストーム
http://mindstorms.lego.com/
レゴ マインドストーム NXT 体験ブログ
http://nxt.typepad.jp/lego_mindstorms_nxt/
協力:株式会社アフレル
http://www.afrel.co.jp/
■ 関連記事
・ 大庭慎一郎のレゴマインドストームNXT研究室(2006/11/24)
2007/01/22 16:56
- ページの先頭へ-
|
|
 |

|
 |