ニセ Microduck つくってみた2

Home > 電子工作 > ニセ Microduck つくってみた2

本記事にはアフィリエイト広告が含まれます。

すき 0
うんこ 0

前回製作したニセ Microduck  につきまして、いろいろ試したので記載します。

ニセ Microduck つくってみた

AudiostockでBGM・効果音を販売中!

強化学習

強化学習でバランス直立の味見をしてみました。

機体ピッチ角で足を運動させてバランス直立を学習

 

学習ポリシーを実機に移植

学習ポリシーは31 → 64 → 64 → 12 の 3段の全結合ネットワーク (MLP)。

もう少し足上げとか忠実にやっていただきたいので学習ポリシーを単純なMLPではなく、
少し前までの状態を覚えておけるニューラルネットである LSTM (Long Short-Term Memory)にしたいなぁと考えています。
LSTMはサイズと処理が多くなるのでESP32じゃキツイかなぁ。。

Nextレベル目指すなら ちょっとコントローラの検討必要だわ。




スケート

足をローラースケートにして動作を楽しみました。
モデルで動作検証。AI (Codex)で最適動作を探索・評価して生成。

前後進、旋回バッチリ

 

動作を実機に移植して検証

Simほどではないけど見事なスケーティング
Simではローラースケートのホイール回転軸や地面との摩擦は無視しているので、差異の要因はそのへんでしょうかね。

 

前転動作も検証

 

実機でも見事に前転




Raspberry Pi

最初の節で実施した強化学習でもう少しサイズの大きいポリシーを試したくなったので、コントローラを Atom Matrix (ESP32)からラズパイに換えてみようと思います。

ラズパイでロボット製作ははじめてなので少しづつ確認しながら製作していきましょう。

Raspberry Pi CM4

コントローラ ラズパイとして小型の Raspberry Pi CM4 を採用

インターフェース基板に CM4-NANO-A を使用

 

IMU

まずはIMUセンサを接続してみましょう。
壊れたATOMS3から6軸IMUセンサ MPU6886 を取り出し、専用基板をこしらえてラズパイに接続しました。

5V降圧DCDCものせてバッテリ駆動にもしました。
MPU6886とラズパイはI2Cで通信

MPU6886でセンシングした姿勢データをUDPでPCに送信してみました。

カルマンフィルタかましてPitch角、Roll角導出して送信
Yaw角はZ軸の角速度積算のためズレやすい

問題なくIMUセンサを接続することができました。

サーボモータ

続いてラズパイコントローラでサーボモータの制御をしてみます。

ラズパイとBluetooth接続でPSコントローラでの制御も実現しました。

サーボは PCA9685 ボードを介してIMUとは別のI2Cポートで制御

 

ここまできたらもうロボが作れそうです。

ニセ Microduck

準備が整ったのでMicroduckをくんでみました。

ATOM Matrix版の歩行モーションで歩かせてみました。
コントローラの重量・バランスが変わったので転んでしまいましたが、見事にラズパイでロボットが製作できました。

ラズパイコントローラの重量サイズを測ってシミュレーションモデルを再製作

このモデルで歩行動作をAIに再検索してもらいました。

 

生成された歩行動作を実機に移植

イイ感じ。
ラズパイ版のニセ Microduck が完成いたしました!




おわりに

ここでは前回に引き続いて ニセ Microduck の検証を実施したしました。

ラズパイ版のMicroduckも完成しましたので次回は規模の大きいネットワークサイズの強化学習を試してみたいと思います。

では




コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。