振り子を逆立ちさせたもの。振り子は逆立ちさせると不安定になる。そこで逆立ち状態を安定に保つには、振り子が倒れようとするのを検出して倒れないように振り子の支点を移動させればよい。これは手のひらの上に棒を立てる遊びと同じ制御である。 倒立振子はフィードバック制御の最も基本的な実験のひとつである。単に逆立ちさせるだけではなく、逆立ちさせたまま自由に移動させたり、下垂状態から起こすなど各種の制御がある。 なお、読みは「とうりつしんし」である。「とうりつふりこ」ではないので注意。
前回書いた様に倒立振子に挑戦してみる。 まず振子の姿勢を知るためにIMUを使用するので、M5AtomS3を制御に使用する。 姿勢を知るにはroll、pitch、yawを計算すれば良い。 M5AtomライブラリーではM5. MPU6886.getAhrsData()で得られるが、M5AtomS3ライブラリーにはない様だ。ただMahonyAHRS関連の関数はあるようなのでそれを使えば良さそう。 M5AtomS3/MahonyAHRS.h at main · m5stack/M5AtomS3 · GitHub M5UnifiedにはMahonyAHRS関連は用意されてない様なのでMadgwickライ…
※なにか気になる点がありましたらコメント欄にご記入ください。また、工作や回路を製作する場合には、細かい作業などに対して、細心の注意を払われるようお願いいたします。【目次】 1.はじめに 2.実機の紹介 3.コードの紹介 a ヘッダファイルのインクルード、マクロの定義、変数の定義 b 行列に関する関数 c 状態変数の測定 d カルマンフィルタに関する処理 e モーターへの電圧の出力と使い勝手に関する処理 f メインの処理 おまけ A.GitHub 上のデータ B.部品表 C.関連記事の紹介 追記:部品表が完成しました(2023/03/17)「おまけ」の 「B.部品表」を 参照してください。 1.…
はじめに P計画 車輪形倒立振子を作る──この目標に対して問題を分解しながらアタックするため,前回にて床を転がる車輪のシミュレーションとアニメーションをPython (+ NumPy, SciPy, Matplotlib)で実現した経緯をまとめました。次は振り子をシミュレーションしようと思っていましたが,勢い余って(?)振り子だけでなく台車も含めた台車形倒立振子まで進むことができたので,今回はその様子について記述していきます*1。 床を転がる車輪とは異なり,台車形倒立振子では運動方程式がもろに非線形になります。本記事では非線形のままの運動方程式を表現するPythonの関数を定義し,SciPyの…
※なにか気になる点がありましたらコメント欄にご記入ください。 ※この記事は以下のリンクから貼られており、倒立振子という創作物に関するコードの一部を載せています。詳しくはリンク元をご覧ください。 倒立振子に挑む - Tanuki_Bayashin’s diary使用しているマイコンは Raspberry Pi Pico と呼ばれるものです。 記述はC言語を用いています。(pico-SDK C/C++ という環境を使用しています)
※なにか気になる点がありましたらコメント欄にご記入ください。 ※この記事は以下のリンクから貼られており、倒立振子という創作物に関するコードの一部を載せています。詳しくはリンク元をご覧ください。倒立振子に挑む - Tanuki_Bayashin’s diary使用しているマイコンは Raspberry Pi Pico と呼ばれるものです。 記述はC言語を用いています。(pico-SDK C/C++ という環境を使用しています)
魔改造の夜イベントで横浜の会場へ移動中、 うちの社内メイカーズカレッジ、DMCの隊長から指令を頂いた。 今年のリモートイベント用のライントレースロボ設計製作してくださいなって。 部品をいろいろ頂いた。 依頼は去年のライントレースロボより安くて構造簡単なやつ。 去年のは写真にある赤い基板のラズパイベースの2輪ロボ。 組立ては参加者が自分でやるってことで開催した。 終わった後のアンケートで思った以上に組立てが特にハンダ付けが難しかった... って意見が多かった。 組立てでも問い合わせがけっこうあったし。 普段の付き合いある人たちとの感覚でこのくらいなら簡単にできるだろうってのが だいぶ外れてた。い…
お久しぶりでございます いつ振りの更新でしょうか。あぐちゃんさんです。部内wikiができてたのでそっちにはいろいろ書いてました。非公開なのであしからず。 ついに自分の番が回ってきてしまった感です。毎年先輩方を送り出す側だったのにね。 長いようであっという間の5年間でした。 音ゲーマーは留年するというのはどうやらマジらしく、同級生の音ゲーマーはほぼ全員留年したり辞めたりして同時に卒業できませんでした。かなしい。ぼくは留年休学も無く何事もなく進級して進路も決まりの卒業です。あーけあは無事2星になったし、ウニはようやく虹レになったし、ボルテは後光或帝滅斗に、舞はヘタクソモブ金レです。なんでや。多分一…
※なにか気になる点がありましたらコメント欄にご記入ください。 【目次】 1.はじめに 2.倒立振子の運動方程式 付録 1.はじめに 学生時代 Slotine と言う人の論文を読み(読まされ?)、以下のような関係式に出会いました。 これは、力学に出てくる運動方程式、 のなかの行列 (慣性行列) と (遠心力、コリオリ力に関する行列)の間の関係式です。 今回は、今自分が取り組んでいる倒立振子の運動方程式がこの関係式を満たしていることを示したいと思います。 (この式の一般的な証明は、ラグランジュ方程式が出てくるような力学の教科書に出てくると思います)ご参考:”On the Adaptive Cont…
倒立振子はToioを走らせてやろうとしていたが、通信で50〜110msくらいかかっている。 平均して10Hz位でしか指令を出せない事が分かった。 PID係数を調整してみるも倒立を保てそうにない。 手に持って竿燈の様にしても上手く保てないので、そもそも機構が悪い気がする。 それに加えてケーブルが抜けやすくM5AtomS3の電源が一瞬切れてしまう現象があって。 もうちょっとねばってダメならサーボモーター使う方法とかに変えないとダメかな…
Atom Mate for Toio で倒立振子を作ろうとしている。 倒立振子はLego Mindstormsを使った講座を受けた事はあるが、教材の指示に従っていっただけで、仕組みなど全く理解していない。 のでちゃんと動作するのはずっと先の事だろう。 Atom Mate for ToioはUIFlowから使った事はあるが、Arduino Frameworkからは使った事がない。 Toioを動かせないことには始まらないが、M5StackToioでできそうなので試してみる。 github.com ドキュメントがしっかり書かれているし、例もあるのでわかりやすい。 onMotion()コールバックが呼…
3/1 Kindle今日の日替セール情報です。 【新生活SALE】最大60%OFF Kindle本キャンペーン 強化学習、さらにディープラーニングを組み合わせた深層強化学習DQN(Deep Q-Network)という用語を目にする機会が増えています。本書は関連の概念を分かりやすく解説しつつ、Python+PyTorchで「倒立振子課題」「迷路を解くプログラム」「ブロック崩しの攻略」を実装していきます。 第1章「強化学習の概要」では機械学習とその3分類(教師あり学習、教師なし学習、強化学習)について紹介します。 第2章「迷路課題に強化学習を実装しよう」では、簡単な強化学習(方策勾配法、Sarsa…
2023/02/04,05に開催されたNT加賀に出展してきました。タイミング悪くご本人がいらっしゃらなかったり、後半私自身が疲れ果てていたりその他の理由で全ての出展者の方は難しいのですが、作品をご紹介させていただきます。順不同です。他意はありません。写真を撮る際には許可をいただいていますが、もし掲載内容に不備や掲載に不都合等がありましたらお手数ですが、ご指摘いただけましたら幸いです。 カサネタリウムさん けけゆうさん TMDものづくり工房さん こうへいさん HAL900さん ひいらぎ(柊工房)さん 音楽研究所さん FET_EL さん BotaLabさん ましぐれさん にゃるらとさん ふぁらお加…