Very good video! Your final piece looked like it was still oscillating a bit so perhaps u should increase the D value. Also increasing the I value increases the overshoot so in the code u should only increment the I value if the error is small (I.e |error| < some threshold)
ブログ記事でプログラムとハードウェア構成を解説しています ichiken-engineering.com/inverted_pendulum1/?
動画撮影時には気が付かなかったのですが、 プログラムにミスが有りました。
修正したところ応答も早くなり、 安定して立つようになりました。
一番勉強になったのは、倒立振子のよみが「ふりこ」じゃなくて「しんし」なところ
それな
懐かしく楽しい動画でした。
発振してますね。Pが大きすぎかも?
蛇足かもしれませんが、位置のPI制御を入れる、つまりセンサーからのθをそのまま帰還せずにΘ=θ+k∬モータードライバー出力dtdt求めてからΘを帰還すると、定数kに応じた速さで元の位置に戻ってきます。
PIDゲインのチューニングが職人すぎて苦行だったので,誰でも現代制御が実装できるようにトラ技の連載を執筆していたことを思い出しました(^。^)
PIDが温度などを調整するときに使われているのは知ってましたが具体的に何か知らなかったのでどういう仕組み・どう動いているのかが知れてよかったです
角速度センサでもいい感じに立ってますね。
イチケンさんが車体構造で解決しようとする姿を観る元制御工学卒でマイコン屋さんワイの発想「何とかプログラミングの制御で出来んかな」
ってなる。。。(仕事ではハード屋さんの構成を変えるよりもソフトで何とかした方がコストが安いし設計変更の手間等も安いため)
「ソフトで何とかした方が~」なんですが、実は人件費(時間単価)が一番嵩んで後で分析しないから見えてこない隠れた出費という現実。
気持ちはよくわかります(^^;)
言われるソフト屋は結構複雑 (^^;
ソフト屋もハード屋も「そこはそっちでやってよ」って思ってたりしますね (^^)
SWはHWのポテンシャル以上のSPECは出せませんからねぇ…
素人ですが、これもある程度プログラミング制御してるように思うのですが・・・
より複雑な制御をプログラミングしても、ハード側の処理能力がそれに追従できるかどうか・・・
@@PC9801BlackRX その通り
セグウェイってどうしてあんな不安定な形状で倒れずに動けるのか?と不思議に思っていましたが、こんな制御を行う事で動いているのかと納得出来ました。
重心も高い方がいいのではと思いました。
この工作は、要素が沢山あるけど、そこまでは多くなく、結果が見やすいので面白いですね!!
古典以外に現代制御でもアプローチして比較をぜひ行ってみてほしいです
レゴのEV3マインドストームで走る競技がありますね。
レゴでも調整すればそこそこまともに静止出来た記憶です。
といっても、倒立制御の心臓部はジャイロボーイで提供されてたような。
2重や3重倒立振子になると、エンコーダが必要になってきそうですね。
お願いします!
私はソフト屋なので、ハード面から攻めていくイチケンさんの改善が興味深くおもしろかったです。PIDは昔ライントレースカーとかで使ってました。現場では温度調整で使ってましたね~。
これ・・・動画だからPIDのゲインの調整すぐにできてるように見えるけど、マジでこれ泥沼の戦いなんだよなぁ・・・。
あかん何故かウルトラダッシュモーターが出てくるだけで笑ってしまう体になってしまった
爆発などのギミックも内蔵した完全体の商品化を希望しますw
文系ワイ「やじろべぇって、なんのシステムもないのに安定するの凄いんやなぁ…(IQ3」
わざわざ強化学習でCartPoleなんてやらなくとも、制御理論だけでも実現できたんだ…
これ面白いな。続編を期待します
The higher the center of mass, the easier to control. If you put batteries on the head, it wil become more stable.
ミニ四駆用のモーターは定格で4A流れたりして意外と駆動が大変です。タイヤを小さくするなどしたほうがトルクは出しやすいかもしれません。
(バックラッシは制御上厄介ではありますが、Dutyにヒスをもたせるなど対策は可能です)
PID制御だけでここまで性能が出ているのはよい出来です。
カルマンフィルタの実装にチャレンジしてみてください。
参考文献:トランジスタ技術2019年7月号、「カルマンフィルタの基礎」足立・丸太 東京電機大学出版局、など
2X年程前フリーソフトで行列計算させて倒立振子のシミュレーションをしたことがあります。
当時、振り子が真下を向いてても強引に振り上げて倒立させる様に驚きました。(線形化の誤差もなんのその)
リアルワールドではハードウェアの制約がありますよね~
加速度センサーのターゲット角度を誤ってる、センサ位置が根元過ぎてピーキーになってる、それによる前後運動の繰り返しにモータドライバIC&モータが付いて来れてない
こんなところでしょうか
バックラッシュが最大の課題だと思います。昔、大型サーボモーターを作りましたがバックラッシュに悩まされました。ダイレクトドライブ且つ電子ブレーキが有ればもっと安定すると思います。それかステッピングモーターはどうでしょうか?
倒立振子=とうりつふりこ って読んでました
どうにかして開ループ伝達関数を測れないですかね?
それをもとにPID部分を最適化できたら楽ですよね。
制御がかかってる時に励起信号を入れてその前後を見るのかな?
せぐうぇいか、お正月の演芸ですね。人間の制御も凄いな。私はアナログ人間なのでOPアンプで作ってみたいですw
正転、逆転の初速と加速係数を一緒にしてますよね?
電源を切った時に倒れた方向のが倒れた時の傾き速度が速そうなのでそちらの方を多めにするとどうですか?
作り替えるならプレートが垂直に立った時にバランスが取れるような重心にするとどちらの速度も均等で良くなるのでは?
最初に作った電池載せた台車も重心が軸の上にしてセンサーをきちんと固定すれば上手くいきそうです。
便利なICがあれば、ドローンか水中ドローンをやって欲しいですw
逆に倒立振子より楽なのかもと思いまして。
ジャイロセンサーを上のほうに取り付けたほうが細かいコントロールができるのでは?と思ったのだけど、どうなんでしょう?傾きと加速度でモータのスピードを調整すればよいかと。
PIDパラメータをオートチューニングできるようにしてみてほしい
古典制御のパラメータ調整はオンラインでやるのがよくやる方法かなあ
心が汚れていると「バイアグラの出番」と考えてしまう。
自転車やバイクはメカだけのアナログ制御で実現しています。キャスター角、トレール量、タイヤの特性などが調整要素になります。ゲインが高すぎればシミーやウォブルなどの発振も起きます。電子制御も面白いですが、それを知ることで身近なところにアナログのフィードバック制御があることに気づかされます。
時々興味深く拝見させていただいております。セグウェイの原理ですよね。電子のジャイロセンサーってすごく小さくなっているんですね。びっくりしました。提案ですが、30wくらいですごく温かくなるヒーターができるとありがたいです。大型バケツの中央にタミヤのモーターを回して、外側から空気を取り込んで段々複雑に圧縮していけば中央上部から温風が得られると思うのですが・・まじめに研究しています。
ヒーターに関してですが、投入したエネルギー以上の仕事は得られないように思いますが、いかがお考えでしょうか。ご提示の圧縮機は、断熱圧縮といわれる過程で空気を圧縮するものかと思います。断熱圧縮によって得られる温度上昇は、高々モーターから投入した電力以下の仕事率となります。
同じ電力でも、熱を与える体積を小さくすれば温度は高くなります。例えば携帯カイロやヒーターベストといった製品は、肌のそばでヒーターを加熱することで、熱が逃げにくくして効率よく暖かさを得ています。30W程度でも工夫次第ではすごく暖かくなるでしょう。自作をお考えであれば、まずはこちらを検討されると良いように思います。
また、ヒートポンプエアコンは、外気から熱を奪って室内に取り込むことで、条件次第では投入した電力の数倍ほどの暖かさが得られます。(エアコンも、冷媒を断熱圧縮して熱を得ています)なかでも、飛行機のエアコンは、空気そのものを冷媒として圧縮・膨張させているので、pon heatさまのアイデアと近いものがあるかもしれないですね。
ただ、エアコンは高圧ガスを扱う危険な物なので、自作にチャレンジするハードルは非常に高いです。
ステッピングモーターで倒立振子作ってみたいですね。
機械工学科の学生です。大学の講義で倒立振込のフィードバック制御と振り上げ制御を行いました。面白いですね、
自分もPID制御というと温度制御がすぐに思い浮かびます。
小さいおもちゃのセグウェイにみえますね。
セグウェイの場合、車軸より低いところにステップがあるので、もしかするとそれが参考になるかもしれません。重心とか荷重とかその位置とか。
大きさも使用機器も違うので、比較になるかわかりませんが。
バックラッシュ(バックラッシ)、自分は機械制御でよく泣かされました。
歯車を使うと どうしても避けられないので。機械なら与圧(プリテンション、プリロード)調整を考慮しますが、模型レベルだとどうにもなりませんよね。
そういえば、ラジコンのモーターには、セラミックコンデンサを付けてました(当時は理屈は分かりませんでしたが)。原理的には原始的なブラシ付きモータなので、効果が分かりやすいのでしょうね。
これ10年以上前から挑戦したいなぁと思って、やれてないんだよなぁ・・・。
出来るだけ置いたところに静止するために角度だけじゃなく最近居た位置に向かうようにエンコーダレスでだいたいの位置を覚えておいてそこへのPID(だいたい向かえばいいので、Dは要らないか?)を入れたり、バックラッシュを考慮した制御とかやりたい・・・
この倒立振子の場合は少し傾いた状態でオフセットさせた方が安定するので0を中心にモーターを逆転させるのではなくオフセットを中心にモーターを逆転させるべきですが100degがそもそも間違っていたとすると安定しないのでは?
ヒトの三半規管は角加速度を、ジャイロセンサーは角速度を、例えばボリュームは角度をそれぞれ検知する。角速度情報を角度にするあたりもチラリと説明してほしかった。
ドイツのV2は回転ジャイロと真空管でロケットの姿勢を制御した。基本はスカッドミサイルに受け継がれた。
これが高度に進化したらボストンダイナミクスになるのか。家庭の電化製品では顔を見せない分野か。サポカーではお世話になっているのか。
Aruduino UNOでかくて邪魔だからNanoとかpro microにすればブレッドボードに組み込めてよいのではないでしょうか
DHO802を数台買って使っています。12ビットは衝撃的ですね。VESAでアームに取り付けられるところは狭いところで使う時に便利です。革新的ですね。RIGOLには期待してます。
位置の計測とフィードバックが無いと、期待するような倒立振子にはならないでしょうね。
改めて思いました。
思うように二足歩行ができる人間の身体のバランス性能って、とても優秀なんですね。
스승님 학습이 되었습니다. 고마워요.
負帰還 位相補償回路組み込みで回路構成は煩雑になります。
MEMS角度センサー二重化 照査検出組み込みチャレンジします。
マジでなんの知識もないからおかしいところあったら賢い人教えて欲しいねんけど、今話題の人工知能の深層学習で自分で色々試させながら強化させて最適な値探すにのは無理なん?
試行回数が足らんのやろ。
コンピューター上ならスペック次第でいくらでも回数こなせるけど、実際の工作でやろうとするととんでもない時間かかるから、それなら自力で調整するわってことだと思う。
2台目ということは、動画で見えない努力をしているんだろうなぁ
10年以上前にアナログジャイロセンサーとタミヤギヤボックスとPICで作りました。
半年位フィードバックゲインの計算にかかりピタッと静止するまでになりました。
その後、ラジコンに改造して今も残っています。
今は角度センサーが入手できるのでしょうか。昔のジャイロは角速度センサーで制御周期で積分して
角度を得ていました。
今も角速度センサの積分が主ですが、加速度センサーの値と何らかのフィルターセンサフュージョンして角度を出すことが多いと思います
呼び名をクララとかジョーにすると気持ちがこもるかも。
文系的発想「なるほどセグウェイ作るって話やな」
キメ顔とバーカウンター風キャッチミスからのスムーズな提供紹介
俺じゃなくても見逃せないね
ミステリーギフトおまいのグッズやんけwww
ジャイロモーメントを使うかと思った
早速ミステリーギフト応募してみました、イチケンさん情報ありがとうございました。
DigiKey宣伝時の電解コンデンサーかわいい
Very good video! Your final piece looked like it was still oscillating a bit so perhaps u should increase the D value. Also increasing the I value increases the overshoot so in the code u should only increment the I value if the error is small (I.e |error| < some threshold)
系の応答速度のハード面マッチングが必要かと。
私は、頭と、お金と、時間が有れば、この制御工学を勉強したい所です。
制御の方式は、いくつかあったと思います。また、PID制御においてもゲインコントロールを、系の値をラプラス変換し伝達貫通を求めボード線図を書き求めないといけないようです。
確か、普通のPID制御では、立たないと思います。別の制御方式が必要ではないかと思いました。名前は忘れました。
何年か前に倒立振子の実験キットを買って、組み立てないまま仕舞込い込んでたのを思い出しました。
(タンブラーカーっていう名前でした)
今度作るぞ、と思いつつ、今度がなかなか来ません。
PID制御とかカルマン関数とか出てくると「う、数学っ」ってたじろぐのですが、できたら面白いだろうなー、と思います。
DCブラシレスモータでダイレクト駆動できたら少し制御し易くなるかな、等と妄想しています。
カルマン関数じゃなくてカルマンフィルタって書きたかったんだけど…
昔、これ挑戦したら
制御が不安定過ぎて
「倒立振子て学ぶ制御工学」って本買ってみて
再挑戦してみたんだけど
結局、直らなくて
挫折したんだけど
そうか、コンデンサ付ければ良かったのと
ブレッドボードじゃなくて
ユニバーサル基盤を使えばよかったのねね…orz
ありがとう
再挑戦してみます!
温度制御でPIDやってました。難しいですよね。
センサー位置とパワー位置、対象物の質量や位置で変わる無限大・・・
倒立振子、説明するのって難しいけど
イチケンさんの説明ってとてもわかりやすいです。
自分も倒立振子ロボ作ってるので、制御技術の説明にこちら紹介させてください。
子供の頃、”物理の散歩道”にリーフSWでモータON/0FFでの実験が載っていたので、これを知りました。因みに記載の実験は失敗で終わっていました。
倒立振子だけれど自由度はピッチ回転のみの1ですかね。
最初の手の例は自由度は2だと思いますが、制御の大方針を示すことが目的だと思うので自由度は1で十分だと思いました。
ところでこれを見て高専時代の制御の授業で、ラグランジュ法?を用いて制御モデルをつくって、倒立振子を立たせるみたいなのをやったことを思い出しました。(制御方法はPIDだったかは忘れましたが、たぶんPIDだったはず、、)
結構複雑な行列計算をした気がします。
当時はわかったようなわからないようなといった感じでした。
改めて見ると面白いですね😌
まったくの素人ですが…
車高の問題ではないかと思いました。倒立振子が縦に長いほうが、車輪が重心から離れるので、車体により大きなトルクを与えることができます。
ディープラーニングで強化学習のDQNを使ったいいんじゃね?
明らかにオーバー
これ、、、4年ほど前に挑戦したけど、、いくら調整しても走り出してしまって、、そのうち興味が他に移ってしまい未完のまま、、、😅
他の方もすでに指摘されてますが、せっかくArduino積んでるのでカルマンフィルタの実装が良さそう。
関係ないですが、ピラミッドが発電機だという説についてどう思いますか?
あと、マブチモーターは安価だけどブラシからノイズが出るから動きに応じてセンサ信号に影響すると思う。
改めて考えてみると… 固定する物のない無重力空間の宇宙で宇宙望遠鏡がピンポイントで何億〜、何十億〜光年もの先の天体に正確に向けて照準ピント合わせをする技術はすごいよな
振動が抑えられないのは制御周期が遅いか、センサ/モタドラ/GPIO等ループのブロックに遅延があるのが原因かなぁ pythonで書いてると前者の問題が出てると思う
すくないレイヤ数でニューラルネットワークでさらに安定しないでしょうか。
中国Xiaomiが犬型ロボット「CyberDog」を作ってよ
イチケンさんでも、倒立振子、難しいっておっしゃるの聞けて、なんだか嬉しいです😂 難しいですよね。
センサーからの信号は誤差や雑音を含んでいると思うのですが、何らかの対処はされているのでしょうか?例えばカルマンフィルタとか相補フィルターとか?
長野五輪ラージヒルのアナウンサーの絶叫を思い出す
バックラッシュよりもPID制御のオーバーシュートの方が問題が大きいですよ。
パワダいいねえ
でもこういうのはトルクチューンが向いてそう。トルクはミニ四駆の中で一番でかいし
30年前に授業で見た倒立振子はレールにモーターをつけた棒で左右に動かし始め振り上げる二次元のものでした。これは3次元なので難易度上がりますね。フィードバック制御懐かしい。昔から研究されてるんだからもうちょっとエアコン温度制御とか進化して欲しい、、
これをstate spaceなどに発展させてやるのも面白そうですね
PIDをアナログ実装したほうがマイコン積まない分軽くなって楽という説もある
短い棒よりも長い棒の方が立てやすいので、センサーも車軸円周上の上の方に離したほうがよさそうですが?
なんかどっかで見た、ディルドを倒立させるブログみたいのが面白かった記憶
こうしてみると、ドローンの凄さが分かります
ドローンと言うかマルチコプターだよな。
4つのローターだけでロール・ピッチ・ヨーほ全部制御できるのは素晴らしいよ。
タイヤ制御にブレーキを取り込めないんですかね、ビタっと立ちそう
なんか海外ドラマの吹き替え感がある不思議な感じが拭えない
ninebotのsプロ(2輪)が同じ事を精密にやってます。全く不安を感じないレベル。
大学で制御工学専攻だったから見覚えある情報ばっかりだ。理解できてないけど
振動が発生してるけど、これが重要なんだよね。
知らんけど。
自分のD制御のイメージは減速です。
Pで勢い良く戻って行き過ぎる。。。を繰り返す事を防ぐ役目(10:31)
追従性(加速)も大事ですけど。
空を飛ぶタイプのドローンにもこういう制御が使われていたりするんでしょうかね?
飛行船のような、のんびりと浮遊する物を制御すると楽しそうですが。
あちらのお客様からです
スーッ ガシャーン
(。・∀・。)
ロボットの位置決めなんかでも普通にやってる
高速追従性とハンチング発生は表裏一体だからなぁ
モータの伝達関数を計算したら、選択した制御が正しくないこと気づくかな?
「しんし」と「ふりこ」、どっちが正しいのか誰か教えて。
ノーバックラッシュギアを使うとどうなりますかね?
強化学習を用いたパラメータのオートチューニング、面白いですよ