辺の上で自らバランスを取るキューブの設計
(willempennings.nl)- 1本の辺の上に立つキューブが、3つのリアクションホイールとコントローラでバランスを保ち、軸方向の回転まで制御するオープンソースハードウェアプロジェクト
- 原型はETH ZürichのCubliで、University of São PauloのBobrowらは、IMUを6個から1個に減らす制御概念を追加した
- 既存の取り組みはおおむね非公開だったため、作者は機械設計、回路、設定、コードをリバースエンジニアリングし、完全なオープンソースとして公開した
- ハードウェアは、ステンレス・アルミ構造体、Maxon 60Wモーター3個、4象限モーターコントローラ、6S1P LiPoバッテリー、ESP32-S3、IMUを搭載したカスタムボードで構成される
- 現在は人が立てた後にバランスを維持する段階で、次の目標は機械式ブレーキでキューブが自力でバランス位置までジャンプできるようにすること
オープンソースで作り直したCubli系キューブ
- このキューブは1本の辺の上でバランスを取り、同時に軸を中心とした制御された回転を行える
- 動作の核心は巧妙な制御方式と3つのリアクションホイールにある
- 原型となるアイデアはETH Zürich研究チームのCubliから始まった
- その後、BobrowらはUniversity of São Pauloで改良された制御概念を導入し、必要なIMUを6個から1個に減らした
- 既存の取り組みはおおむね非公開だったため、作者はすべてをリバースエンジニアリングし、ゼロから描き直して公開した
- 設計、設定、コードファイルはGitHubリポジトリで公開されている
- 作者基準のBOMは約**€2500**に近い
実用性より学習と研究に近い装置
- キューブ自体は主に学習体験と研究プロジェクトに近く、直接的な実用価値は大きくない
- ただし同じ原理のリアクションホイールは、James Webb telescopeのような衛星で姿勢制御に使われている
- 以前のM&Ms分類機のように、一見役に立たなそうな装置でも、類似の応用では実際の価値を持ち得る
機械構造と製作
- 全体の機械構造は元のCubliとおおむね似ているが、一部の細部は異なる
- 基本構造は8個のcornerstoneと6枚のface plateで構成される
- 6枚のface plateのうち3枚は、モーターとリアクションホイールのアセンブリを支えるための追加形状を持つ
- すべての部品はFusion 360で設計された
- 作者は以前使っていたSiemens NXの代わりにFusion 360を使うことで、DIYコミュニティと設計を共有しやすくなったと見ている
- 構造部品の大半は強度のためステンレス鋼で作られている
- face plateは軽量化のためアルミニウムで作られている
- 組み立て後の構造剛性は十分で、face plateを鋼で作る必要はなかった
- 金属部品はPCBWayでCNC加工された
- 費用の一部はPCBWayがスポンサーした
- 部品をアップロードし、素材を指定すると見積もりが自動計算される注文プロセスを利用した
- 小さな生産上の問題はすぐに解決され、部品は問題なく噛み合った
モーターとリアクションホイールの組み立て
- リアクションホイールは最大6000 rpmに達するため、頑丈でありながら軽い設計が必要だった
- モーターは3本の皿ねじでステンレス鋼のブリッジに接続され、ブリッジはアルミニウム製face plateに固定される
- モーター軸には小さなハブが取り付けられ、3本のset screwで固定される
- ハブの中心穴が平らな三角面と垂直でないと、ホイールがモーター軸と整列せず、振動や摩耗が生じる可能性がある
- リアクションホイールは3本の皿ねじでハブに取り付けられる
- ハブとホイールのわずかな不完全さは、接触面の間に小さな紙片を入れて補正する
- face plateには小型のradial ball bearingが入り、cyanoacrylate接着剤で固定される
- このベアリングはモーター軸の片端を支える
- 軸のもう一端はモーター内部のベアリングが支える
- この組み立て工程を3回繰り返してキューブの半分を作り、残りのface plateは特別な組み立てなしでそのまま結合される
- ケーブル作業を簡単にするため、1つのモーターはブリッジ基準の向きを変えて配置している
電気・機械構成
- 他のbalancing cubeがMaxonのEC flat系列モーターを使うのと同様に、このプロジェクトもMaxon部品を選んだ
- モーターとコントローラは、キューブがトルクでバランスを取るための重要部品である
- 多くのDCモーターはトルク定数を明記したデータシートを持たない
- 多くのBLDCコントローラやESCは速度制御だけを提供し、電流制御を提供しない
- このプロジェクトにはトルク-電流関係と電流制御が不可欠である
- 選ばれたモーターはMaxon 60W motorで、互換性のある4-quadrant motor controllerは最大6Aの電流を供給できる
- 24Vで6Aはほぼ150Wに相当する
- モーターの定格出力を超えるが、短時間の過負荷は問題にならない
- コントローラには、巻線温度が高くなりすぎると推定される場合に電流を制限するI2tアルゴリズムが内蔵されている
- バランス維持中は電流が通常かなり低いため、通常動作でこの制限にかかる可能性は低い
- Esconモーターコントローラソフトウェアは、モーターの試運転、チューニングツール、動作中の状態と入出力を示すダッシュボードを提供する
バッテリーとカスタムボード
- バッテリーは6S1Pリチウムポリマーバッテリーを使用する
- モーター定格が24Vなので、公称電圧22.2Vの6セルLiPoがよく合う
- 容量は1300mAh、29Whで、通常は少なくとも1時間はキューブを動かせる
- メインボードはカスタム設計である
- 3つのモーターコントローラ
- IMU
- ESP32-S3開発ボード
- 保護回路
- 電圧レギュレータ
- 機械式ブレーキ用RC servo motor出力
- 機械式ブレーキ出力は、キューブが自力でバランス位置へjump-upできるようにするための事前設計である
- ブレーキ設計はまだ完了していない
- 回路基板は、solder paste塗布、表面実装部品の配置、小型トースターオーブンでのreflow、through-hole部品の手はんだ付けで組み立てられた
- 統合とテスト中にいくつかの配線ミスが見つかり、bodge wireで修正された
- モーターコントローラのデジタル入力のうち1つだけがPWMに対応していたが、PWM信号が対応していない入力に配線されていた
- バッテリー取り付け用ボードも別途設計された
- XT60コネクタ2個
- 最大18Aの電流を考慮して並列接続したスイッチ2個
コントローラの移植とバランス制御
- コントローラは新規設計せず、Fabio Bobrowのcubli-firmwareをArm MbedからArduinoへ移植した
- マイクロコントローラはSTM32 Nucleoの代わりにESP32を使用する
- IMUはTDK InvensenseのICM20948を使用したため、そのドライバも書き直した
- 主姿勢コントローラは、2つの相反する目標を同時に満たす必要がある
- キューブを望ましい姿勢、つまり不安定平衡位置に保つ
- リアクションホイール速度を最小に近い状態に保つ
- 2つ目の目標を考慮しないと、ホイール速度が制御不能になり、モーターが飽和してキューブにトルクを加えられなくなる可能性がある
- ホイール速度を0に近づけようとする力が強すぎると、キューブは倒れる
- 逆にその力が弱すぎると、ホイール速度が文字どおり制御不能に増加する可能性がある
- 良好なバランス性能、外乱抑制、低いホイール速度を同時に得るには、適切なgainを見つける必要がある
定常誤差とホイール位置の積分
- コントローラには定常誤差を扱うメカニズムもある
- 定常誤差とは、キューブの重量分布の不完全さによって、設定された平衡位置と実際の平衡位置が少し異なる場合を指す
- 一般的なPIDコントローラでは、integral項がこのような誤差を処理する
- このコントローラはホイールの位置を積分値のように使う
- キューブの上にトマトを載せて重量分布を変えると、リアクションホイールは速度が上がってから下がり、新しい位置へ移動して増えた誤差を補償する
チューニングで行き詰まった点
- 試運転とコントローラのチューニングが、コード関連作業の中で最も大きな割合を占めた
- まず複数の信号の符号を合わせるのに数日かかった
- その後、コントローラのgainを見つける必要があった
- Bobrowの論文にあるチューニング方法は、このキューブでは機能しなかった
- このキューブはBobrowのキューブとは異なるホイールを使っているため、gainをそのまま再利用することはできなかった
- 反復的な手動チューニングの末、動画で見られる安定化性能を得た
似たキューブと次のステップ
- 作者は、このキューブがCubliに似たバランス性能を達成した完全なオープンソースキューブだと見ている
- 比較的文書化されている類似プロジェクトは次のとおり
- 次の目標はリアクションホイールに機械式ブレーキを追加すること
- ブレーキはホイールを素早く停止させ、モーターが直接出せるよりはるかに大きなトルクを作れる
- このトルクにより、キューブが自力で平衡位置まで起き上がるjump-up manoeuverが可能になる
- 作者基準では、この機能は現在、元のCubliだけが備えている
- Cubliのブレーキ機構はいくつかの理由で好ましくないため、別のアプローチを使う予定である
1件のコメント
Hacker News のコメント
制御・信号処理の修士として、もっと退屈な仕事をするようになった立場からすると、信号の符号を何日もひっくり返して試していたのは経験不足のせいだと思っていた。
ふたを開けてみれば、その判断でも符号を間違えていたというわけだった。
x *= -1.0; //DO NOT TOUCHが入っているものがある。みんなそうするものではあるが、普通は数千 kg の爆発物の上にダクトテープで貼り付けて赤いボタンを押す前にテストする :)
自分が設計・実装したすべてのコントローラについて、符号や向きのような挙動を保証するには、結局十分なユニットテストが必要だという現実を受け入れることになった。
あの動画を見ると本当にすごい。
「これはただの魔法ではないのか」と思った経験に最も近かった。
押されたときの反応の仕方が、初めて磁石に触れたときのように感じられるが、今度はまったく新しい力を見ているようだ。
生きているかのように自ら平衡を保ち、環境の変化に抵抗し、トマトを載せても私たちの体が荷重変化に適応するようにすぐ適応する。
いつか 50ドルの量産小型版が Amazon で売られるようになったら、ぜひ遊んでみたい。
https://youtu.be/n_6p-1J551Y?si=zvwORnuPZmgXw0S8
プログラミングを学んだとき、「時間をかけてプログラムさえ書けば、コンピュータに望むことは何でもさせられるんだ」と感じた。
制御理論も似た感覚だが、今度は物理法則を「プログラミング」して、現実の動き方を変えているように感じられる。
YouTube を探せば、10年以上前の例もある。
ソフトウェアエンジニアとしてのキャリアはとても楽しんでいるが、一方で、こういうものを作り始められる分野を勉強しておけばよかったとも思う。
本当にかっこいい。
私たちの大半がプログラミングを学んだように ;-)
ただし最初のプロジェクトとして自己平衡キューブから始めるのはやめたほうがよく、Arduino や ESP ボードを買って LED を点滅させるところから始めればいい。
妥協案として、ホームオートメーションと esp32、rpi pico のようなマイクロコントローラを使う趣味の電子工作に落ち着いた。
手で触れられるものを作りたい人なら試す価値がある。
ちなみにこのキューブプロジェクトの総部品コストは約 2500 ユーロだった。
ただし、市場にある仕事が人を殺す機械を作ることばかりだと知るまでは、だ。
私の場合はそうだったし、人によって違うかもしれない。
チュートリアルが良く、製品と動画での紹介も本当によくできている。
事実上すべての商品に動画が付いていて、非常にお金を使いやすい場所だ。
コーディング速度、正確性、効率を高め、ソフトウェアエンジニアとしてのキャリアにも役立つ。
https://www.reddit.com/r/ErgoMechKeyboards/comments/hj0q8x/f...
リアクションホイールに機械式ブレーキを追加してジャンプ機動を可能にし、キューブが自力で平衡位置に到達できるようにするという部分に期待している。
Cubli プロジェクトでいつも一番かっこいいと思っていた部分だ。
動画: https://youtu.be/n_6p-1J551Y?t=92
上へ歩いて登るには円形ではだめだが、下へ転がって降りるには丸い縁がよさそうだ。
2つの輪が球を形作るようなものを想像してしまう。90度回転して転がりモードと歩行モードを切り替えるような形だ。
そのキューブが辺へジャンプし、さらに頂点へ上がって回転し始め、任意の表面でもそれを行える。
物理に慣れていると思っている人の大半もかなり混乱しそうだし、キューブが頂点から面へ突然跳ね戻って、隠れた突起装置ではないことを示したら、真剣に魔法の可能性を考え始めるかもしれない。
あとは、かっこいい木製外装と、それに合う誘導充電スタンドさえあればいい。
Kickstarter なら私の金を持っていってくれていい。
Brennan のモノレール列車を思い出す。
とても興味深い動画だ https://www.youtube.com/watch?v=kUYzuAJeg3M
素晴らしい芸術だと思う
同じ人が作ったこの別の作品はまったく違うけれど、見る楽しさは同じくらい良い: https://www.youtube.com/watch?v=P9jyNIWsRvI
芸術を作るエンジニアたちが本当に好き
170年もののソファにリアクションホイールを取り付け、片脚で信じられないほど立っていられるようにした作品
最終的にリアクションホイールが限界に達するとソファが倒れて爆発するのだが、作者に聞けば人間関係のように見えると言うだろう
最近は政治を連想せずにいるのも難しい
このジャンルでは非常に名誉のあるPrix Ars Electronicaでも評価された
動画: https://www.youtube.com/watch?v=uQRP-b68fnE
記事: https://ars.electronica.art/aeblog/en/2014/07/02/auf-der-suc...
実際、2つを簡単に組み合わせられそうな気がする
日曜日ごとに普段はコードで新たな高みに到達して高揚し、粘り強さと創造力を押し広げた満足感を覚えるのだけれど、こういう記事を見ると完全に無力感に襲われる
我慢強さが足りないし、こういうことを試してみることすら怖くなりすぎる
ここ数週間、サイドでReactを学び始めて、友人たちが実際に使えるようなものを作れてかなり誇らしく思った
もちろん「すごい」と思わせる要素はないが、作るのに2500ドルかかったわけでもなく、何年、場合によっては何十年もの学習コストが必要だったわけでもない
どんな分野でも世界最高になる人はごくわずかだが、それは重要ではない
その事実が、自分にできることを変えるわけではない
かなりのものははんだ付けすら不要
完全なゼロから始めるのは難しすぎる。どの部品が互いに合うのか、どれくらい電力が必要なのかなどを自分で把握しなければならないから
そうすればずっと簡単になり、既製部品や手作りの部品も使える
実はバランスを取る点よりも、物体そのもののかっこいい外観に惹かれる
すぐ販売されているか探してみたし、自作すると2500ドルくらいかかるようだ
無謀と言われてもいいが、もっと大きいバージョンで、辺に沿ってホールドが付いているなら、お金を払って登ってみたい
自分の動きにどう反応するのかを直接感じてみたい
面白い思考実験だ
バッテリーが少なくなったり、リアクション制御ホイールが飽和したりしたら、自分でQi充電器やポゴピンの上に再び横たわるようにする構想はどうだろう、と思う
おそらく、自力で立ち上がれるようにブレーキを付けた後の話にはなりそうだけれど
距離が問題になる可能性はありそう