理系的な戯れ

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

Raspberry Pi Picoで制御するドローン「PicoCopter」の製作ガイド

はじめに 昨今話題のドローンの一種であるマルチコプタは制御しなければ絶対に浮いてられないため制御する対象としては大変面白く、マルチコプタを用いた制御工学の学びは学習のモチベーションの維持に最適だと思います。 ところが制御工学学習用に適したマ…

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

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

ドローンをガメラの様に飛行させる

はじめに ドローンにガメラ飛びをさせたい・・・ 唐突なお話しですが、最近ではすっかりドローンと呼ばれるようになったマルチコプタをガメラの様に回転しながら飛行させるにはどうしたら良いのかと言うのが本記事の内容です。 これは私の私的興味によるもの…

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

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

移動ロボットの壁沿い走行制御について

はじめに マイクロマウス の様な移動ロボットを壁に沿って走らせたいと言う場面は、 教育用のデモ走行やその他の簡単なアプリケーションでは多く見かけられると思います。 何かの軌跡に沿って走らせたいと言うのもさらなる応用として考えられます。 今回は無…

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

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

物理シミュレーションによるオドメトリの検証

はじめに 前回は横滑り運動を考察しましたが、マイクロマウスのような2輪差動式の移動ロボットのシミュレーションについてもプログラムを作ることができました。 そこで、自己位置推定のオドメトリ計算について 直線近似 円弧近似 横滑りを考慮した場合の直…

マイクロマウスの横滑り運動

はじめに マイクロマウスの運動についてタイヤの力学を含めて考えてみたいと思います。 マイクロマウスを完全な6自由度の運動をすると思うと、考察がかなり厳しくなるので、今回は平面内での3自由度に限定して考えていきたいと思います。 その中で横滑りの…

JupyterLabのインストール

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

ミサイルの誘導法対決

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

トランジスタのスイッチング高速化

はじめに トランジスタで作ったインバータが遅れるのと なまっているのがオシロの測定で確認できたので。 高速化について検証しました。 ことの発端は、 昨日の記事のトランジスタインバータ回路の応答が遅れる事に触たれた S.BUS回路用の反転回路の信号測定…

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モータの制御をこれまで取り扱う事が多かったんですが 同じ事を何度も繰り返しているので、一度整理して見たくなりました。 これまでの記事と確実に重複しますが、それを承…

STM32を用いたモータ速度過渡応答取得

はじめに こんにちは、こうへいです。 3連休も今日で終わりです。この連休も理系的な活動が充実しました。 今年の成人式は無事に終わったのかな? 慣れないSTM32で、周期的にモータからの角度情報を得られる様になったので、 当初の目的の1724モータ速度応…

STM32でインターバルタイマ割込み

はじめに こんにちは、こうへいです。 今回は周期的にモータの回転速度を計測するために、タイマで周期的な割込みを発生して 決めておいた関数を実行できるようになりたいと思います。 以前にも書きましたが、エンコーダはあくまで最初の角度が0の相対的な…

STM32でエンコーダパルスのアップダウンカウント

はじめに みなさんこんにちは、こうへいです。 昨日は、旧知のご夫婦と新年会をして美味しいお酒を飲みました。理系的な活動はおやすみでした。 (仕事では常に理系的なはずですが、それ以外の仕事も結構あります・・) 今回はエンコーダのパルスでアップダ…

NUCLEO-F446REでLチカ成功

はじめに こんにちは、こうへいです。 STM32の開発環境をMacBookに構築していましたがST-Link Serverのインストールで失敗しました。 そちらは、保留にしていましが「ええい!ままよ」とばかり、とりあえずLチカプログラムを作成して書き込んでみることにし…

STM32開発環境をMacBookに整える

はじめに こんにちは、こうへいです。 昨日に引き続きMacにSTM32の開発環境を整えたいと思います。 僕のPCは2017の12inchMacBookです。 はやくエンコーダーからのパルスを読み取りたいです。 rikei-tawamure.com はじめに ダウンロードとインストール Javaイ…

モータ実験の準備で秘蔵品を出す

はじめに こんにちは、こうへいです。 今日から、仕事が始まりました。休み中にモータシミュレーションについて考えたり、 コードを書いたりしたので、実際にモータを使って実験と比較したくなりました。 あいにくまともに動くDCマウスがないので、いつか使…

ロボットシミュレーション用のルンゲ・クッタ法プログラムの検討(3)1717モータのシミュレーション

はじめに こんにちは、こうへいです。 お正月休みも今日で最後です。だいぶリフレッッシュできたような気がします。今年も仕事に趣味に頑張ろう! さて、自前のルンゲ・クッタ関数のテストをマイクロマウス でよく使われているFaulhaberの1717T003SRを想定し…

ロボットシミュレーション用のルンゲ・クッタ法プログラムの検討(2)2次振動系のステップ応答 その2

はじめに こんにちは、こうへいです。 前回、2次遅れ系のステップ応答の計算式を紹介しました。今回は2次遅れ系の代表例であるバネマスダンパ系 のステップ応答を計算して、ルンゲ・クッタ法の結果と比較したいと思います。 kouhei-no-homepage.hatenablog…

ロボットシミュレーション用のルンゲ・クッタ法プログラムの検討(2)2次振動系のステップ応答 その1

はじめに こんにちは、こうへいです。 今回は、前回に続き開発中のルンゲ・クッタ関数を使ったバネマスダンパ系のステップ応答が正しいのかどうか確認してみたいと思います。 (と、思いましたが長くなってしまったので、その1とその2に分けました。) (…

ロボットシミュレーション用のルンゲ・クッタ法プログラムの検討(1)ルンゲ・クッタ関数

はじめに 趣味のマイクロマウス活動において、ずーっと思い描いている妄想に、マイクロマウスシミュレータがあります。 ずいぶん昔に斜め探索の探索アルゴリズムの検討のために探索シュミレータを作ったことがありますが、本当の意味でのマイクロマウスの動…