動画BASIC(3J)Arduino

14.Arduio【Servo】|ヌルっと一歩(Gemini二足歩行)

AIとC言語で実現する!二足歩行ロボット「クムクム」のスムーズな一歩

近年、AI技術の進化により、ロボット制御のハードルは劇的に下がっています。本記事では、プログラミングロボット「クムクム」を使用し、GoogleのAI「Gemini」にC言語のコードを生成させながら、ロボットらしい「ぬるっとした」スムーズな歩行の第一歩を実現させる過程を解説します。

単なる「ガクガク」とした動きから、人間や生物に近い滑らかな重心移動を伴う動きへ。プログラミングの基礎から、AIへのプロンプトの出し方、実機調整のポイントまでを網羅しました。

1. 学ぶ概要:二足歩行のメカニズムとAI活用

二足歩行ロボットが「歩く」という動作は、実は非常に複雑なバランス制御の連続です。単純に足を前に出すだけでは、ロボットはバランスを崩して倒れてしまいます。

重心移動の重要性

スムーズな一歩を踏み出すためには、まず「軸足」に体重を乗せ、反対側の足を地面から浮かせる必要があります。このとき、体全体をわずかに傾ける動作が不可欠です。

AI(Gemini)によるコード生成

本プロジェクトでは、複雑なサーボモーターの同時制御コードを、AIとの対話を通じて作成します。ポート番号や角度の指定を自然言語で行い、AIにベースとなるC言語プログラムを書かせる手法を学びます。

2. 詳細:クムクムを動かすC言語の実装

具体的な制御方法と、AIに与えた指示内容について深掘りします。

サーボモーターの構成

クムクムの足回りには、複数のサーボモーターが配置されています。

  • **ポート4〜10(モーター番号0〜6)**を使用。

  • 初期位置はすべて90度(直立状態)。

AIへのプロンプト例

動画内では以下のような具体的な条件をAIに提示しています。 「モーター番号4を120度に倒しながら、若干遅れてモーター2を10度に倒し、さらに遅れて進行方向を決めるモーターを調整する関数を作成して」

このように、**「どのモーターを」「何度に」「どのタイミングで」**動かすかを指示することで、AIは時間差(ディレイ)を考慮したループ処理を含むコードを出力してくれます。

実機での「現物合わせ」

AIが生成したコードが最初から完璧に動くとは限りません。

  • つま先の向き: 内側に入りすぎないよう、角度(80度や110度など)を微調整。

  • 動作速度: 0.8などの係数を用いて、速すぎず遅すぎない絶妙な「ぬるっと感」を追求。

  • 停止処理: デバッグ用に、特定の場所でプログラムを停止させ、静止状態の姿勢を確認しながら進めます。

3. 注意点:制御における落とし穴

ロボット制御において、初心者やAI学習者が陥りやすいポイントがいくつかあります。

  • 干渉と転倒: 急激な角度変化はギアへの負荷や転倒を招きます。必ず徐々に角度を変える(補間計算)処理を含めることが重要です。

  • つま先の向き: 足を上げる際、重心移動によってつま先が内側を向いてしまう現象(動画内でも発生)に注意してください。外側に逃がす動きをセットでプログラミングする必要があります。

  • ポート番号の誤認: 物理的な配線とプログラム上のモーター番号が一致しているか、常に確認しましょう。

4. 応用への道:連続歩行と自律制御へ

「スムーズな一歩」が完成すれば、それは連続歩行への大きな一歩となります。

左右のループ

今回作成した「左足を上げる動作」の逆、つまり「左足を下ろしつつ右足を上げる動作」を組み合わせることで、連続した歩行が可能になります。

センサーとの連携

クムクムに搭載されているセンサーを活用すれば、「障害物を見つけたら止まる」「音に反応して歩き出す」といった自律型のAIロボットへと進化させることができます。

AIエージェントとしての活用

将来的には、カメラ映像をGeminiなどのマルチモーダルAIに解析させ、「今、自分の姿勢がどうなっているか」をAI自身に判断させて歩行パラメータを自動修正させる「自己学習型ロボット」への応用も期待できます。

コメント

タイトルとURLをコピーしました