AtomMatrixで倒立振子を作っていた記事を見つけたので、マネをして自分も作ってみました。
ネットで検索すると丁寧に作り方を解説している記事が見つかると思いますので、詳しくは書きません。
構成は
- AtomMatrix
- AtomicMotionBase V1.2
- FEETECH ギアードモーター FM90
- タイヤ FS90R対応
となっています。
モーターとAtomicMotionBaseは両面テープで貼り付けて、裏側にアクリルプレートを貼り付けて補強しています。
重心が後ろよりになっていたため、モーターのみ3mmのアクリルプレートで重心が前よりになるように調整しました。


スケッチはgithubで公開されていたためそれを使いましたが、いろいろ変更しました。
動かした動画はXにてポストしています。
いい感じに安定してきた
— slowtech (@slowtech) 2025年12月31日
自分で作ると愛着が湧くね#ロボット #倒立振子 #Arduino #ESP32 pic.twitter.com/ALu4YlqCB5
githubに公開されているスケッチでは目標角度付近での安定性が低く、デッドゾーンを設定して目標値付近の数値がばたついても無視するようにしたところ、非常に動作が安定しました。
PID制御の方式については、速度型PIDらしくて計算式が通常のPIDと違っていましたが、パラメータの設定で動作が安定するようになりました。
ポイントとしては、目標角度の設定と、水平がとれている走行面で調整をすることです。
走行面の水平が取れていないと重心が変わってしまい、目標角度に到達しても傾いてしまいます。
カーペットなどのぼこぼこした面ではふらつきやすい反面、安定してしまえば微動だにしません。
完全直立を目指していたのですが、いざそれが実現して全くゆらゆらしなくなるとなんかつまらないと感じました。
やっぱり倒立振子はゆらゆら揺れてこそなんだなぁ。と思った次第です。