AIと喧嘩しながら倒立振子を立ち上がらせたら、いつの間にフィジカルAIをやっていた話

話題のバディ映画のように感動的にはなりませんが、こんな時代が来てしまったのですね…
necobit 2026.03.28
誰でも

👨‍🦲💭倒立振子、かっこいいなー。

そんなことを思いましてですね、

他人の設計を借りた倒立振子を組み立てたりして遊んでいた necobit カワヅ。でも他人の設計だと技術が自分の手の内に入ってこない…。

カワヅ(黄色いハゲ)
@necobut
ねこびっとくん倒立振子(名前が安定しない)、スロットルが敏感すぎるのでぬるーくした。車高が下がってスピード上げると引っかかってこけるようになったしこのくらいでいい。
2025/01/29 00:12
3Retweet 19Likes

もちろん他人の設計の内容を読んで理解していくのが良いのですが、なんかこう…もうちょっと自分で作った感じがいいな。などと思う。

しかし、制御系できる人がみんな言うぴーあいでー制御(PID制御)というのを身につけなければ倒立振子は立たないらしい。なにそれ。

さて、数学理解度は🤪中学校レベルで止まっている necobit カワヅです。

Geminiさんにどうやったら制御理論を身につけられるか聞いてみた。

👨‍🦲ふーーーーん…………じゃあ倒立振子作ろうじゃん。

そこで何故かキットではなく1から倒立振子を作り始めてしまう。


📝倒立振子の必要要素は…

  • モーター

  • IMUセンサー

  • マイコン

  • バッテリー

おっ意外と要素が少ない。

ではまず、それらを繋ぐハブ基板を設計します

モーターは Robstride の Edulite05。7000円(299RMB)以下という価格なのにドライバ内蔵、CANで命令やフィードバックを送受信できるという賢いモーターにしました。

なのでハブ基板にはCANトランシーバーと電源を安全にオンオフするための半導体スイッチ回路を搭載して、あとは M5Stack の StampS3Unit IMUなどありもののモジュールを使ってシステムを構築。

これは完全に機能するところまでできたら、ねこびっと通販で基板を販売するかもしれない(未定)。

ハードができたら、プログラムである。

(👇👨‍🦲記事の本題はここからです!!!)

今回、自分では一切コードを書かずにプログラムを構築した。

Claude Codeにコーディングを全てやらせて、倒立振子の動作が安定するところまで辿り着きたい。

なぜならこの時点の21日後(=2026年3月1日)に、メイカーズながおかまつりの出展が控えていたんです。これに間に合わせよう!できるか!?

カワヅ(黄色いハゲ)
@necobut
歪みまくってるし底面側にもなんらかのフレーム通して格子組まないと剛性足らなそうとかあるんだけど形が見たかったので仮組。IKEAのねこボックスを載せると生命が宿る。(一瞬の手放し撮影) #ねこびっとくん倒立振子
2026/02/08 00:29
0Retweet 2Likes

✅CAN経由でモーターを回す→OK

✅IMUの値を取得する→OK


ここまで来たら、IMUの値を元に、傾いたら逆方向にモーターを回せば

カワヅ(黄色いハゲ)
@necobut
うっうっうおおおおおおおおお!

#ねこびっとくん倒立振子 ファーストコンタクトできた!

一応IMUの値に応じて動いてるっぽいな。

ハード的にはバッテリーを上部に固定して明日届きそうな基板に載せ替えれば一応要素は揃ったことになる。

さて、果たしてこいつを立たせることができるのか。
2026/02/08 19:20
0Retweet 18Likes

バランスをとって立ち上がるはず!

👨‍🦲✨勝ったな…

と思ったがここからが本当の地獄だった。

全然安定しない。すぐにあっちぶつかってこっちぶつかって倒れる。傾いた時に全然踏ん張らずに倒れる。

制御がわからないので五里霧中ながら、Claudeコードと何故立たないのかトラブルシューティングを進める。

***

👨‍🦲カワヅ「なんでこんな不安定なんじゃろか」

💻Claude「スペック通りのトルクが出ていません。要求トルクと出力トルクのギャップが要因です」

👨‍🦲カワヅ「じゃあそこの設定を確認して」

💻Claude「頑張る」

👨‍🦲カワヅ「がんばれ」

💻Claude「あかんわ、なんかモーターのセッティングがおかしいのかも」

👨‍🦲カワヅ「大丈夫だと思うが…48Vまで入力できるモーターに20Vしか入力してない。データシート読んでどのくらい影響あるか確認して」

💻Claude「最高速に影響は出るけど初速のトルクにはあまり影響しないはず」

👨‍🦲カワヅ「うーむ」

💡もしかして配線がおかしいのでは

💡もしかしてESP32からCANコマンドがちゃんと通っていないのでは

と、いくら設定を変えても、人間がモーター設定アプリで見ても、おかしなところは見つからない。

💻Claude「うーんやっぱ何かがおかしい」

👨‍🦲カワヅ「オッケーわかった。テスト環境作るからちょっと待って」

カワヅ(黄色いハゲ)
@necobut
EL05、トルクでない問題の原因を探るために1番最初まで戻る
2026/02/22 11:44
0Retweet 4Likes

出力しているトルクの値自体はモーターのフィードバックの値として取得できるので、あとはトルクを出せる(固定されていて抵抗がある)状況を作れば計測はできるはず。

それをちゃんとやったのがいわゆるトルクメーターだと思うのですが!そんなもの持ってないから

  • モーターを外して、手で握るためのレバーをつけて…

  • 人が手で全力でブレーキをかけて…

  • 徐々にトルクを上げてマックストルクを測定する!

✅その結果、モーター自体はちゃんと力が出ている

引き続き、一つ一つ要因を調べていきます。

通信もたぶん問題ない。

…。

……。

💥👨‍🦲💻『『制御側では!!?』』💡✨

という認識をClaude Codeとカワヅが認識できたので、後は問題箇所を見つけていくだけだ!

結果わかったのが、IMUセンサーのノイズに対するフィルターが、通常の姿勢制御の力を打ち消して不安定になっていた、という結論。

\(^o^)/そしてようやく安定して立ち上がる倒立振子。

necobit(ねこびっと)
@necobitter
📢来週🎪3/1(日)メイカーズながおかまつり出展します👨‍🦲✨みんな大好きマキタバッテリーで動く倒立振子を、今、作ってます💦



自力でバランスを取ろうとがんばる倒立振子を、おさんぽひも持って🤝支えてあげてください✨みんなのお越しをお待ちしてるぜ‼️



詳細👉 ao-re.jp/event/46604
2026/02/23 10:24
1Retweet 11Likes

本当は外乱に強くしたいとかリモコン操作したいとか色々あるけど
一旦ここで完成とする!
外装をつけて #倒立振子ねこびっとくん になりました。

necobit(ねこびっと)
@necobitter
ゆらゆら揺れたり傾いたりしながら🤖💦自分でバランスの取れるポイントを探っています💡✨うまく学習できたら #倒立振子ねこびっとくん は静止し続けることができます。



メイカーズながおかまつりで待ってるよ〜👋キテネ
2026/02/23 22:49
0Retweet 2Likes

そしてここで唐突に気がつく。

フィジカルAIってこれねおばさま!!!!!!!

ソフトウェアであるAIに対してその世界のデータを与えて、外の世界へフィードバックする。
脳に対して感覚器(IMUとモーターのフィードバック)と身体(モーターとタイヤ)を与える。

うわーやってみて一発で分かったわー。これは大きな気付きだった。

***

とりあえず💻『つくってみれば?』と言われて出来た倒立振子が、なんにせよ最低限安定して立ち上がるようになった今の状況は、制御の学習用素材としてとても良い状態に思えます。

次はこれをここからソースコードを読み解いて、制御を勉強していく。つまり逆引き学習をしていきます。

もとより我流で学習してきた necobitカワヅですが、こうやって動かすところまで作っちゃったものを逆引きで学習していけるスタイル、なかなか新鮮です。大変面白いのでオススメ!

#倒立振子ねこびっとくん の進化をお楽しみに

***
***

 ご意見・ご質問を necobit に送る

  • 匿名で送りたい方はコチラ👇

  • X(旧ツイッター)で送りたい方はコチラ👇

  • メールで送りたい方はコチラ👇

***


無料で「MIDI寄りものづくり ねこびっと通信」をメールでお届けします。コンテンツを見逃さず、読者限定記事も受け取れます。

すでに登録済みの方は こちら

誰でも
【後編】AI作曲の展示にチャレンジ! at Maker Faire T...
誰でも
【中編】AI作曲の展示にチャレンジ! at Maker Faire T...
誰でも
【前編】AI作曲の展示にチャレンジ! at Maker Faire T...
誰でも
人のプロダクトに参加する時、大事なこと
誰でも
KORG Gadget チョットワカルになった夏
誰でも
ロボット運動会を見に北京に行ってきた
誰でも
行ってきました、出てきました NT金沢2025
誰でも
『またやるぞ!なんで作って売るイベントを主催するのか』