3軸リアクションホイール倒立振子を作るアドカレ の3日目です。 昨日の [Day 2] では、物理シミュレータ(PyBullet)の中に「青い箱」を出現させました。
しかし、ただの箱では倒立できません。倒立振子に必要なのは、「回転する質量(フライホイール)」 が生み出す反作用トルクです。
Day 3 の今日は、Fusion 360 を使って実機の筐体設計を行います。 目指すのは、「機能美」と「物理法則(慣性モーメント)」 を両立させた、最強のハードウェアです。
設計戦略:アジャイルなハードウェア開発
実は、まだ手元にモーターが届いていません。採用しようとしているモーターはアリエクで購入ということもあり、寸法がよくわからず不安でもあります。 そこで、普通の設計フローならここで寸法確定待ちになりますが、今回は 「パラメトリック設計」 の手法で乗り切ります。
いきなり線を描くのではなく、まずFusion 360で「変数(パラメータ)」を定義します。
- BoxSize: 100 mm (筐体の一辺)
- MotorDia: 36 mm (モーターが入る穴径)
- FlywheelDia: 80 mm (フライホイール径)

(↑ パラメータ管理画面。ここを変えるだけで設計全体が追従します)
こうしておけば、もしモーターが届いて「実測したら0.5mm大きかった!」となっても、MotorDia を書き換えるだけで全パーツが自動的にリサイズされます。
これがソフトウェア開発の考え方をハードウェアに持ち込んだ、アジャイル・ハードウェア開発です。
構造の要:サンドイッチ・フレームとDFM
今回の設計のハイライトは、「サンドイッチ(二重壁)構造」 です。
倒立振子(Cubliタイプ)の最大の弱点は、「転倒した際に高速回転するフライホイールが床やケーブルに接触して大惨事になること」 です。これを防ぐために、フレームを二重構造にしました。
(↑ 断面図。フレームの隙間にフライホイールが安全に格納されているのが分かります)
3DプリントのためのDFM (Design for Manufacturing)
設計にあたっては、できるだけ「サポート材なし」で印刷できる形状にこだわりました。 オーバーハング(宙に浮く部分)の角度を45度以内に収め、印刷失敗のリスクを最小限に抑えています。
慣性モーメント($I$)の最大化と重心解析
倒立振子の安定性は、制御理論だけでなく物理的なパラメータで決まります。特に重要なのが、フライホイールの慣性モーメント $I$ です。
$$I = \sum mr^2$$
数式の通り、同じ重さ($m$)なら、**「回転中心からできるだけ遠い位置($r$)」**に質量を配置するほうが、慣性モーメント(=反作用トルクの大きさ)は大きくなります。
今回は、3Dプリンタ製の軽いプラスチック・フライホイールの外周ギリギリに、M3ナット(または真鍮ウェイト)を埋め込む穴を配置しました。比重の軽いプラスチックの中に、比重の重い金属をドーピングする作戦です。
4. こだわりのディテールと分解図
モーター固定アダプタ
使用するジンバルモーター (GBM2804) は、背面に基板が露出しており固定が難しいため、専用アダプタプレートを設計しました。
(↑ モーター背面の緑色の基板と、それを回避して固定するアダプタ)
全体構成(Exploded View)
そして完成したのがこちらです。
- サイズ: 100mm × 100mm × 100mm
- 構造: 3軸直交配置
- 密度感: 機能部品が隙間なく詰まった「塊感」のあるデザイン
全てのパーツを展開するとこのようになります。
(↑ 分解図。メンテナンス性を考慮し、外装のネジを数本外すだけで内部にアクセス可能です)
6. まとめと次回予告
今日はFusion 360を使って、物理的に理にかなったハードウェアを設計しました。
しかし、これはまだ画面の中の「絵」に過ぎません。
次回 (Day 4) の予定:
このFusion 360の設計データを URDF (Unified Robot Description Format) に変換し、Day 2で作った PyBullet シミュレータの世界に召喚 します。
この複雑な形状を、どうやって物理エンジンに持っていくのか?専用のスクリプトを使います。
お楽しみに!
アドベントカレンダー参加中
STM32×AIで「3軸倒立振子」を作る25日間(ひとりアドカレ)Advent Calendar 2025



