これがけり助です。この着ぐるみの目指した方向性はかわいいです。髪の毛がきちんと揃っていたらこんな見た目じゃないのでしょうが。
研究室より知能ロボコン(ここを参照)に参加しました。そこで作ったのが「九九式蹴鞠人形けり助」です。
これを作るために、佐藤氏、山田氏とチームを組みました。かなり癖のあるチームでした。開始時のそれぞれの得意な分野は、私はプログラミング、佐藤氏は機械加工で、山田氏は全般的にかなりのポテンシャルを持っておりました。しかし、私は作り込むのが好きなのですが、如何せん作業が極端に遅い、「口先だけの役立たず」君(笑)。二人の足を引っ張ってしまいました。
知能ロボコンとは仙台で開かれている完全自律な(つまり人間が操作してはいけない)ロボットにおけるロボットコンテストです。ロボフェスタにも参加しています。このロボコンの最大の特徴は「機体の能力で結果が決まらない」ことが挙げられます。すなわち、点数をとれるロボットよりも新しいことをやっているロボット、効率のいいロボットよりもより「知的(判断に基づいて動く)」なロボットが高い評価を受けます(点数にはパフォーマンス点などとして反映されます)。
この大会は技術力を競うテクニカルコースとアイディアを競うチャレンジコースがあります。使われるのが図のコースです。スタートボックスから始め、対象物エリアにある物体をゴールへと運びます。チャレンジコースはボールを、テクニカルコースは石鹸箱、缶、ボールが対象物となります。チャレンジコースの方が点をとれるロボットを作るのが簡単ですが、パフォーマンス点の割合が大きいために如何に「見せるか」が勝負になります。テクニカルコースは(パフォーマンス点もかなり効いてきますが)点数やタイムの割合が大きく、「どれだけ素早く」「どれだけ正確に」が問われます。
| CPU | Motorola 68332 |
|---|---|
| 質量 | 本体: 2.5[Kg] 電池: 1.0[kg] 人形: 0.8[kg] |
| 稼働時間 | 20[min] |
| モータ (走行) | Maxon 6W x 2 |
| モータ (ハンド) | マブチ 270 |
| モータ (ハンマ) | Maxon 6W |
| センサ | PSD、 ラインセンサ、 etc... |
| 速度 | 1.0[m/s] |
| 加速度 | 3〜4[m/s^2] |
知能ロボコン、チャレンジコースのルールは「ボールをゴールに入れる」です。この移動の時間というのは結構長いです。さらに、チャレンジコースはパフォーマンスが点数のかなりの範囲を占めます(ローラーでボールを集めるようなロボットは、作るのが楽なので当然パフォーマンス点が低くなります)。これを一挙に解決すべく、けり助は「ボールを蹴り」ます。ただし、蹴れないところにあることも考えて、こいつはボールを掴んでゴールの方向を向き、ハンマーでボールを蹴飛ばします。
中身はこの様になっています。けり助の構成要素は以下の通りです。
ロボットを下から見た写真です。出力6Wのモーターが両輪についています。Maxonのサーボモーターってのをつかってます。普通ロボコンだと安いステッピングモータというので十分ですので、高級品を使っていることになります。サーボモーターの方が質量対出力のバランスは優れています。もっとも鉛蓄電池二個もつんでいれば意味ないですが。それでも精度の高さも大きなメリットですが。出力は小さめ(最近のロボットだと11Wとか使っている)ですが、歴代の研究室のロボットの中では最軽量級なのでこれで十分です(全参加者からみると中量級)。正確ではありませんが最大速度1.2[m/s]まで0.6[sec]程度で加速できます。当時ではトップクラスの速度と加速度です。しかし、あまり加速度を高くすると自己位置推定(車輪の回転量から位置を計算する)が狂ったりしたり、ウィリーしたりするため、かなり加速力は落してあります。というよりも、全力で加速した後全力で減速すると 跳び跳ねます。
自己位置推定は走っていると必ず値が狂います。そこで、計算誤差を小さくしたり、加速度を落したりしてかなり精度をあげました。ボールを2、3こ処理している間ではまず狂いません。しかしそれでもいずれ狂っていきます。そこで、フォトリフレクタ(光を出して反射するかどうかを調べる、画像中央の黒い板についている)を用いてコース上の黒いラインを読んで、自己位置情報を補正しています。
しかし、旋回をするときにどうもふらふらと…設計の計算時に「直進だけ」考えていたために、旋回の速度が問題ありになってしまいました。うーむ、しかも考えてみるとPIDゲインなども旋回時には変えないと…まぁ、後になって気がついたのでしょうがないでしょう。
PSDという赤外線を使って三角測量するセンサーを使っています。レンジは0.1[m]から1.0[m]程度。ロボコンには十分でしょう。これを使ってボールを探します。このセンサーの凄い所は「近いほど精度が上がる」んです。遠い時には距離は大雑把でもいいですし、近い時(ボールを取り込む時)は精度が欲しいです。このセンサーは見事にそれを達成しています。研究室の歴代ロボコンロボットの中には「接触しないと分からない対物センサー」なんてのを搭載しているロボットもありました。いいセンサーが出たものです。
実は超音波センサーもつんでいます。が、超音波センサーは初心者には使いにくいものです。アナログ回路なので設計を間違うと誤動作、誤差は当たり前。なによりもどうがんばってもボールが見えない。ボールは実はテニスボールなのですが、表面はフェルトです。凹凸が激し過ぎて絶対見えません。以前に超音波アレイというものでパワーアップしたこともあったらしいのですが、射程は無きに等しいらしい。ということで、こけ脅しのために搭載しています。折角作ったので。
この画像右下の茶色のものがハンドで、ボールを掴んでいる状態です。ハンドでボールを掴んでからハンマーで蹴飛ばします。そのために、(ハンマーがボールの下にはいるように)ボールを持ち上げることと、ハンマーが正しく当るようにボールの位置を調整することが必要となります。
というと複雑そうですが、ハンドはただの板です。これでボールを挟めば、ボールが一回持ち上がって、そのあと奥の方に転がり落ちる、という寸法です。(ボールの摩擦の影響はあるけど)モーター一個で済むので結構良い方法です。
それと、モーターでボールをハンドで掴む際にハンドの間にボールがあるかを調べるフォトインタラプタ(光を出して、受光側に光が入るか調べる。ものが間にはいると分かる)があります。また、掴んだボールの色を判別するカラーセンサー(RGBで色を読み取る)もあります。点数に関係ありませんでしたが、ボールとゴールには色がついています。そこでボールとゴールの色を合わせていました。
右図の右下にある金色(真鍮)の部分がハンマーです。ボールを蹴るためのハンマーがついています。ボールを飛ばすロボットは、ボールを叩いて飛ばすハンマー型と、ピッチングマシンのように飛ばすローラー型、投石器のような方法で飛ばすカタパルト型があります。ローラーは以前あったし、カタパルトは衝撃が大きいので難しい、ということでハンマー型を選びました。
ハンマー型はハンマーを振り上げてから、それを離し、ハンマーを叩きつけることでボールを飛ばします。これをやろうとすると、ハンマーの振り上げのモーターと、ハンマーを離すためのモーター、二つのモーターが必要になります。しかし、このロボットでは一つのモーターだけです。ハンマーの根元に間欠歯車がついていおり、モーター側の歯車と組合わさっています。間欠歯車とは歯車の一部に歯がついていないものです。間欠歯車をモーターで回すと「歯があるところではハンマーを回して振り上げる。無いところではハンマーは自由になるので、振り降ろされ」ます。これならば一つのモーターで十分です。
ハンマーには飛距離を調整するための機構があります。ハンマーは威力アップのために振り上げたときにはこのバネにエネルギーを蓄えます。バネの一端はハンマーへとつながっており、その反対の端を移動させることで、バネに貯めるエネルギーを変化させ、飛距離を変えることができます。これで飛距離は1[m]から3、4[m]まで自在に変えられます。機体調整直後ならば着弾位置精度は半径30[mm]以下。これならばゴールに確実に入れられます(試合中は合計2球しか外していない)。
ハンマー型の問題として、カタパルト型ほどではないにしても、ハンマーを振り回したとき衝撃があります。これはロボットの寿命が縮むだけでなく、故障の原因になったり、ロボットの位置が動いたりします。そこで、「カウンターウェイト」をつけています。これによりハンマーの重心が中央になり、斜体が振り回されにくくなります。
このロボットで第11回知能ロボットコンテスト(1999)チャレンジコースに参 加しました。
一次予選は期待通に動き通過
二次予選は雨が降っていたためか車輪が滑っていたがなんとか通過。
決勝戦にいたっては突如停止するというトラブル。
しかしパフォーマンス重視のお蔭で、なんとか優勝。冷や汗ものでした。
後で分かったのですが、ハンマーを振り上げるためのプログラムにバグが…私の性です。
「やってしまったものは仕方がない。その程度では死にやしない」