[Squeak-ja: 3217] Re: eToys で二足歩行ロボットを制御

Kazuhiro ABE abee @ squeakland.jp
2006年 11月 13日 (月) 01:02:26 JST


阿部@新百合です。

On Wed, 08 Nov 2006 10:23:07 +0900
Eiichiro Ito <e-itoh @ ygu.ac.jp> wrote:
>いつぞや見せていただいたものですね。面白そうです。

はい、ものを作ってから実際にワークショップを開催するまでに、かなりの時間
がかかってしまいました。

>そのうち、どんなカリキュラムにしたのか教えてください。

二足歩行ロボットというと、大人はすぐに歩かせたり戦わせたりしようとします
が、あえてそうせず、コンピュータの内部状態を現実世界に反映する手段として
用いました。子供たちは、他の先生にお願いして、すでにDrive a Carをみっちり
とやっていたので、スクイークの基本はできていると言う前提です。

ロボットのそれぞれの関節(サーボモータ)は-90度から90度の範囲で動きます。こ
の角度をスライダの値としました。肩、腕、脚など関節は全部で17個(17自由度)
あるので、スライダも17個あります。これらを入れ物に入れ、ポーズと名づけま
した。
ポーズには「メッセージ送信」というスクリプトがあり、これをビックリしたり、
チクタクしたりすることで、自分の持つスライダの状態をロボットに送信するこ
とができます。メッセージを受信したロボットはそれぞれの関節を指定された角
度に動かします。

# ここで言う「メッセージ」はSmalltalkではなく、Robovie-MSの仕様書で使われ
# ている用語です。

ポーズを複製して入れ物にいれ、カーソルを「以下を足す」でインクリメントし
つつ、メッセージ送信すると連続した動きを表現することができます。これをモー
ションと名づけました。これは状態遷移であり、スクイークでよくやるアニメー
ションと同じでもあります。

一通りモーションで遊んでから、個々のスライダのビューワを開き、自分の書い
たスクリプトでも関節を動かせることを示しました。使ったのは、おなじみの絵
に描いたハンドルで、この向きを腕の角度に反映させました。ここまで話すと、
ひとつのハンドルで複数の関節を動かしたり、それぞれの関節にハンドルをつけ
たりなどの応用はすぐに思いつくようです(このとき、ロボットは線対称なので、
左右でモータの回転方向が逆になります。角度に-1を掛けるとよいことに気付く
かどうかというのは面白いチャレンジでした)。
続いて、テストとの組み合わせと言うことで、画面の車がゴールしたらバンザイ
する方法を説明し、自由製作に入りました。

この自由製作に入る前に、まずコンピュータを閉じ、まずアイデアを紙に整理し
てから、作り始めるようにしました。こうすることで、自分のスキルに合ってい
ないものや曖昧なもの、偶然に頼るものをなくすことができたようです。

興味深かったのは、作品にロボットを使わなかった子供がほとんどだったことで
す。これは必ずしもロボットが嫌いと言うわけではなく、やっているときは皆と
ても楽しそうだったのに、結果としてはそうなりました。
思うに、ロボットの形や仕組みの制約が大きくて、自分の思いを実現するには自
由度が足らなかったのではないでしょうか。なんでも自由に描けるスクイークだ
けの方がその点有利です。

見た目が派手なこともあって、ロボットを使うと子供が喜ぶからという理由でワー
クショップを開くケースがありますが、このあたりを考えてみる必要があると思
います。とはいえ、正確な角度をぴしっと表現できるサーボモータは便利なので、
カリキュラムの作り方によっては、良いものができる可能性があります。

>#私も4足以外に手を出そうかと考えております。

おお、風太を想像してしまいました。

 //abee
--
阿部 和広  MAIL abee @ squeakland.jp



Squeak-ja メーリングリストの案内