【スクラッチ×ロボット】クムクムで二足歩行に挑戦!モーターコントロール基礎講座
プログラミング教育の現場で注目を集める「プログラミングロボット クムクム(Kumukum)」。スクラッチ(Scratch)を使った直感的な操作で、本格的なロボット制御が学べるのが魅力です。
今回のテーマは、ロボット制御の醍醐味であり、最大の難関とも言える**「二足歩行」**です。
モーターコントロールの第4回目として、クムクムを実際に歩かせるためのプログラム作成手順を解説します。単に足を動かすだけでなく、腕の振りや顔の向き、さらにはおしゃべり機能まで組み合わせて、より人間らしい動作を目指しましょう。
この記事では、動画のチュートリアルに沿って、基本の歩行ロジックから応用的なモーション作成までをステップバイステップで詳しく解説します。
本記事で学べること
この記事を通じて、以下の技術と知識を習得できます。
* **ロボットの基本姿勢制御**: 動作開始前の初期化の重要性
* **二足歩行のアルゴリズム**: 「足を上げる・出す・下ろす」の分解動作
* **並列処理と連動動作**: 足の動きに合わせて手や顔を動かす方法
* **音声合成の組み込み**: 動作に合わせた発話の実装
1. 準備:ロボットの初期位置を整える
プログラミングを始める前に、必ず行うべき儀式があります。それは**「初期位置へのリセット」**です。
ロボットが前の動作の途中で止まっていたり、関節が曲がったままだったりすると、新しいプログラムを実行した瞬間にバランスを崩して転倒する恐れがあります。
基本のセットアップコマンド
まずは、以下の手順でロボットを「気をつけ」の状態にします。
1. **モーター電源ON**: クムクムの動きを制御するための動力を入れます。
2. **まっすぐの形にする**: 全ての関節を標準位置(ニュートラルな状態)に戻します。
この「まっすぐにする」というブロックを実行することで、クムクムは直立不動の姿勢をとります。ここが全ての動きのスタート地点となります。
2. 二足歩行の基本ロジックを作成する
人間は無意識に歩いていますが、ロボットに歩行させるには、動作を細かく分解して命令する必要があります。
クムクムには「歩く」ための簡易コマンドが用意されていますが、今回は基本原理を理解するために、片足ずつの動きを作っていきます。
ステップ1:右足の動きを作る
右足を一歩前に出す動作は、以下の3つの工程に分解できます。
1. **右足を上げる**: つまづかないように足を地面から浮かせます。
2. **上げた足を前に出す**: 空中で足を前方にスライドさせます。
3. **足を下ろす**: 地面に足を着地させます。
スクラッチのブロック定義では、この一連の動作を順番に組みます。これを実行すると、クムクムは右足を一歩踏み出した状態で止まります。
ステップ2:左足の動きを作る(右足の複製と反転)
プログラミングの効率化テクニックとして「複製(コピー&ペースト)」を使います。
先ほど作った「右足」のブロックの塊を複製し、対象を「左足」に変更します。
1. **左足を上げる**
2. **上げた足を前に出す**
3. **足を下ろす**
これで左右それぞれの「一歩踏み出すプログラム」が完成しました。
ステップ3:連続歩行させる
右足と左足のブロックを繋げると、「右・左」と交互に足を出す連続歩行が可能になります。
実際に動かしてみると、ロボットがヨチヨチと歩き出す様子が確認できるはずです。ここでのポイントは、**動作の合間に適切なタイミング(待ち時間)が含まれているか**を確認することですが、クムクムの専用ブロックを使う場合は、動作完了を待ってくれるためスムーズに記述できます。
3. 応用:全身を使って表現力を高める
足だけの動きでは、ロボットらしく機械的な印象になりがちです。そこで、上半身の動き(腕の振りと顔の向き)を加えて、よりダイナミックで人間らしい歩行に進化させましょう。
腕の振りと顔の連動
人間が歩くとき、右足が出るときは左手が前に出るという「対角線」の動きをします。これを取り入れます。
**右足を出す時のプログラム追加:**
* **顔**: 進行方向や演出として「右」に向けます。
* **右腕**: 上に上げる(バンザイのような形や、大きく振る動作)。
* **左腕**: 下げる、あるいは90度の位置にする。
**左足を出す時のプログラム追加(逆の動作):**
* **顔**: 左に向ける。
* **右腕**: 下げる、あるいは90度の位置にする。
* **左腕**: 上に上げる(180度など)。
このように、足のブロックの隙間に、腕や顔のモーターコマンドを挟み込むことで、全身が連動して動くようになります。
おしゃべり機能で愛嬌をプラス
さらにクムクムの特徴である「おしゃべり機能」を使います。
動作のタイミングに合わせて、言葉を喋らせてみましょう。
* 右足動作時:「あらよ!」(または任意の言葉)
* 左足動作時:「ばらよ!」
動画内ではユニークな掛け声を入れることで、ロボットの動きにコミカルなキャラクター性が生まれていました。スクラッチの「〇〇としゃべる」ブロック等を使って、好きなセリフを言わせてみましょう。
4. プログラミングの注意点とトラブルシューティング
二足歩行プログラムを作成する際に、初心者が陥りやすいポイントと対策をまとめます。
バランス(重心)の維持
片足を上げている瞬間は、ロボットは非常に不安定になります。
もし転倒してしまう場合は、以下の点を見直してください。
* **動作スピード**: 速すぎると慣性で倒れます。
* **床の材質**: 滑りやすい机の上や、毛足の長い絨毯の上ではうまく歩けません。平らで硬い面が最適です。
ブロックの順序
「並列処理」の概念も重要です。足の動きと手の動きを同時に行いたい場合、スクラッチでは順次実行(上から順番)されるため、厳密には同時ではありませんが、ロボットの処理速度であればほぼ同時に見えます。
もし、完全に同時に動かしたい場合は、「〇〇を送る(メッセージ機能)」を使って、足の処理と手の処理を別のスクリプトとして並走させる方法もありますが、今回のチュートリアルのように1つの流れに組み込むのが一番シンプルで分かりやすいでしょう。
5. 今後の応用への道
今回作成した「歩行プログラム」は、あくまで基本の「前進」です。これをベースに、以下のような応用へチャレンジしてみてください。
1. **後退(バック)**: 足を出す順番や方向を逆にしてみましょう。
2. **旋回(ターン)**: 片足だけを大きく動かすことで、方向転換ができます。
3. **ダンス**: 歩行のリズムを変えたり、腕の振りを複雑にすることで、音楽に合わせたダンスロボットが作れます。
クムクムのような教育用ロボットは、試行錯誤(トライ&エラー)こそが最大の学びです。「もし数値を少し変えたらどうなるだろう?」という好奇心を大切に、自分だけのオリジナルモーションを作ってみてください。
—
このチュートリアル動画を見ながら、実際に手を動かしてクムクムを歩かせてみましょう。画面の中だけのプログラミングとは違い、物理的な物体が自分のコードで動き出す感動は、ロボットプログラミングならではの体験です。



コメント