理系的な戯れ

理工学系とくにロボットやドローンに関する計算・プログラミング等の話題を扱って、そのようなことに興味がある人たちのお役に立てればと思っております。

地磁気センサ校正のための楕円体の方程式について

はじめに マルチコプタの方向を推定する。加速度センサ、角速度センサ、地磁気センサのうち、 特に地磁気センサを使用するためには校正が必要なため、校正をするソフトを構築する際の 楕円体に関する知識と、校正のための知識を整理したいと思います。 はじ…

マルチコプタの拡張カルマンフィルタによる9DOFセンサを用いたジャイロバイアス推定と姿勢推定

マルチコプタの飛行制御プログラムを何もないところから構築することを目指しています。その中で、ジャイロ、加速度計、地磁気センサが全部入っている9DOFセンサを用いてジャイロのバイアス推定とマルチコプタの姿勢(方向)推定をする方法についてまとめ、…

カメラを注視点に向ける

はじめに マルチコプタのシミュレーションをしたいと考えた際に、計算結果を3次元CGで可視化したいと 思い始めると、動き回るマルチコプタを画面に収めるため、あたかもカメラがマルチコプタを 追い続けるような事を考えなければなりません。 前に、物体の…

Raspberry Pi PicoのSPIでLSM9DS1を使用する

マルチコプタの飛行制御をするため STマイクロエレクトロニクスのMEMSセンサであるLSM9DS1をRaspberry Pi Pico(以下Pico)で使用する方法について解説しています。 LSM9DSは加速度、角速度、地磁気を各3軸づつ合計9つの情報が得られます。そのため9自由…

はてなブログURL変更の顛末

はじめに はてなブログでURLを変えました。 これまでの検索での実績などをリセットしない様にするにはどうするのか 僕はサーバを借りてSSL化と301リダイレクトで解決しました。 そこまで、自分なりに試行錯誤し得られた答えをお話しします。 はじめに 【まと…

Raspberry Pi Picoのcmakeを用いたオリジナルプロジェクト

はじめに Raspberry Pi Picoのプログラム制作において pico-sdkを使用して開発したいと思います。 その場合に、独自のプロジェクトを一から作る基本的な手順についてまとめておきます。 この記事は「Getting Started with Raspberry Pi Pico」(以下参考資料…

Raspberry Pi PicoのUARTでラジコン受信機の信号を読む

はじめに Raspberry Pi Pico(以下Pico)でマルチコプタのドローンを制御しようと考えています。 そこでFutabaさんのS.BUS対応のラジコンの受信機をPicoに接続して、情報を読み取ってみたいと思います。 S.BUS信号はシリアル通信の規格なので、UARTで読み取…

Raspberry Pi PicoでPWM出力

はじめに Raspberry Pi Pico(以下Pico)の心臓部のRP2040ですが、これが単体で売り出されるようです。 趣味の人たちが、これで自作のマイコンボードを作って遊ぶことも考えられます。 今回は、PicoでPWMを出してみたいと思います。 モータ等を制御する際に…

Raspberry Pi PicoでLチカ

はじめに Raspberry Pi Pico(以下Pico)を購入したので、C言語でLチカできるまでを紹介します。 USBメモリとして認識される PicoはPCに接続するとUSBメモリととして認識されます。 接続する際に、下図のBOOTSELボタンを押しながら接続することで外付けドラ…

現代ポートフォリオ理論(MPT)

はじめに ついに満50歳を迎えたこうへいですが、生家が商売をしていて常々いつか商売に失敗して 「何もかんも無くなる無くなる」と育てられたせいか、 お金については使う時はパッと使いますが割とシビアに計画的だったりします。 ちなみに言われてた通り…

ライントレースロボットのシミュレーション

ライントレースロボットのシミュレーションアイキャッチ はじめに ロボットランサーはじめました(昔ばなし) 機械学会主催のロボットグランプリのロボットランサー競技と言うトラック上の白線コース上をロボットが走行して、 トラック周辺にある的を槍で突…

Pythonで考えるDCモータの制御(10)PWM制御におけるLocked Anti-Phase方式とSign-Magnitude方式について

はじめに 今回の話題はDCモータをHブリッジにより駆動する際の Locked Anti-Phase PWM方式と Sign-Magnitude PWM方式の それぞれがどの様なもので どの様な違いがあるのかを説明させて頂きます。 モータ制御に関連して僕が実際に作ったロボットの話題を一つ…

グラフ理論と迷路探索

はじめに マイクロマウスの迷路探索では探索アルゴリズムとして左手法、トレモー法,足立法などがあるのですが そういった観点とは別に迷路をノードとエッジに見立てたグラフとしてとらえて、ダイクストラ法で 最短経路を見出そうというお話をしたいと思いま…

マクローリン展開でcosを近似

マクローリン展開の打ち切り誤差を調べてみました.マイクロマウスのようなロボットのオドメトリによる走行軌跡の計算における三角関数の積分をマクローリン展開した多項式を適当な次数で打ち切った式を用いる方法が提唱されています.そこで,まずはマクロ…

JupyterLabのインストール

はじめに こんにちは、こうへいです。 最近は、普段使いの計算環境はJupyterLabにしています。 pythonを使ってちょこちょこ計算をするのに ものすごく便利に使えていて、OSを選ぶ必要がなくて超いけています。 Dropboxのようなローカルと同期してくれる,ク…

3体問題アポロ8号のキセキ

はじめに こんにちは、こうへいです。 いつの間にか記事数が50記事になりました! COVID-19に関する情報が気になりブログ更新をサボっていて申し訳ないのですが 今日は前回に引き続き、3体問題について見ていきます。 取り扱う話題のベースはアポロ8号で…

2体問題のシミュレーション

はじめに 前回ウイルス感染のパンデミックのシミュレーションをしてみたのですが、 粒子のクラスを一般的な移動のシミュレーションに使えそうなので すこし、改良して使ってみようかなと思いました。 数値計算を考えるときに2体問題は解析的に解けるけど3…

Pythonでワシントンポストのコロナシミュレーションを再現してみた

はじめに こんにちは、こうへいです。 今日は、コロナウイルスの伝搬状況を ワシントンポストがシミュレーションしていまして それが面白かったので、自分でも書いてみたいと思って、コーディングの練習も兼ねて挑戦したお話です。 シミュレーションの概要 W…

ニューラルネットワークは電気羊の夢を見るか(1)

はじめに こんにちは、こうへいです。 近頃はAIや機械学習が話題にならない日はない感じとなりましたが、AIの中身を知る人はほとんどいないと思われます。 かく言う僕もその一人ですが、多くのAIの中身はニューラルネットワークであると言われています。 そ…

ミサイルの誘導法対決

はじめに こんにちは、こうへいです。 今日はミサイルの誘導法について取り組みたいと思います。 ミサイルを誘導する方法として主なものに「単純追尾航法」と「比例航法」があります、本記事ではそれらを対決させてみたいと思います。 ゲームとかでミサイル…

億万長者になる!

はじめに 今のところは億万長者では無いですが、最近は やり方次第では誰でも計画的にそこに近づけるのではと言う実感を得ています。 いまは毎日、食うために妻共々死ぬ思いで一生懸命働いていますが 収入を増やし、節約し、投資をすると言う王道を 如何に着…

Pythonで考えるDCモータの制御(9)電流フィードバックと根軌跡

はじめに こんにちは、こうへいです。 今日はDCモータの電流フィードバックについて考えてみます。 電流をフィードバックをして電流値にゲインをかけると、 PI制御の速度制御系にD項を加えるのと同じ効果がでるはずです。 これは、速度の微分の加速度が電流…

Pythonで考えるDCモータの制御(8)Interact&Bokehによるインタラクティブな台形制御の計算

はじめに こんにちは、こうへいです。 先日、モータの台形加減速制御について考えてみました。 kouhei-no-homepage.hatenablog.com 比例ゲインや積分ゲインをインタラクティブに変えて、応答の変化を見たいと思い、 jupyter notebookでintractを使用して改良…

Pythonで考えるDCモータの制御(7)伝達関数計算用関数

はじめに こんにちは、こうへいです。 これまで、繰り返し繰り返し、伝達関数などの計算を行い、そろそろ同じことの繰り返しに飽きてきたので Pythonの関数に落とし込もうと思い、プロトタイプを作ってみました。 伝達関数を分母と分子の多項式の係数を与え…

Pythonで考えるDCモータの制御(6)台形加減速

はじめに こんにちは、こうへいです。 制御工学についてもおさらいができました。 rikei-tawamure.com 前々回のお話までで、台形信号をラプラス変換の世界でどのように表現し、 計算ではどのように扱えば良いのかの見通しが立ちました。 rikei-tawamure.com …

Pythonで考えるDCモータの制御(5)制御の基礎の基礎とPython

はじめに 制御工学に関する計算とPython 余談 今回は制御についてです ラプラス変換と逆変換 ラプラス変換 ラプラス逆変換 ラプラス変換はしんどい?! 道具としてのラプラス変換:微分方程式を解く道具 微分方程式を代数方程式へ シンプルな操作の代償とし…

Pythonで考えるDCモータの制御(4)台形入力

はじめに こんにちは、こうへいです。 モータ制御する時に、台形状に加減速する事がよくあると思います。前回、ランプ入力を考えましたが、 台形状の目標値を作り出すのに、ランプ信号が役に立ちます。 rikei-tawamure.com そこで、今回は 台形状の入力をど…

Pythonで考えるDCモータの制御(3)ランプ入力に対する1型PI制御の応答

はじめに こんにちは、こうへいです。 前回まで、DCモータの速度PI制御について考えてみました。 rikei-tawamure.com これからは、さらに進んでマイクロマウスやロボットでは速度を台形状に制御する事が多いので、 その検証をできるように考えてみたいと思う…

Pythonで考えるDCモータの制御(2)モータのPI制御について

はじめに こんにちは、こうへいです。 とりあえず分割することにしました Pythonで考えるDCモータの制御が漠然とだらだらと思いつくままに、書き続けたためか、自分の文章力がないためか 長くなってきたので、分割することにしました。 でも、一記事にまとめ…

Pythonで考えるDCモータの制御(1)モデルによるステップ応答の比較

はじめに こんにちは、こうへいです 初めてチャレンジしたロボットランサーから、 DCモータの制御をこれまで取り扱う事が多かったんですが 同じ事を何度も繰り返しているので、一度整理して見たくなりました。 これまでの記事と確実に重複しますが、それを承…