理系的な戯れ

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

コンピュータサイエンス

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

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

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

はじめに 最近Twitterが面白くなってきて、そちらで遊んでいたのでブログが疎かになっていますが、ブログも頑張っていこうと思います。 僕のペースでは3週間に2本ぐらい更新できれば今のところ精一杯なのかなと思います。 頑張れる時は頑張ろうと思います…

グラフ理論と迷路探索

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

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

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

Jupyter labのインストール

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

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

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

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

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

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

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

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

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

ミサイルの誘導法対決

はじめに こんにちは、こうへいです。 今日はミサイルの誘導法について取り組みたいと思います。 ゲームとかでミサイル実装するのに役立つかな。 はじめに 単純追尾航法 PPN(Pure Pursuit Navigation) 比例航法 PN (Proportional Navigation) ミサイルの運…

億万長者になる!

はじめに こんにちは、こうへいです。 いつもと毛色の違うタイトルでびっくりしますが、僕は億万長者ではありません。 毎日、食うために妻共々死ぬ思いで一生懸命働いています。 今後の科学技術、医療技術の進展は予想を超えそうな感じがしますので、今後ど…

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)台形加減速

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

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

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

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

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

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

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

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

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

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

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

基盤起こしに挑戦!ドローンフライトコントローラ用S.BUSセレクタ編(1)

はじめに こんにちは、こうへいです。 今日は平日なので、趣味の活動もショートですが、以前からやりたかった、 ドローン用フライトコントローラーのためのS.BUS信号セレクターの基板起こしをはじめました。 ドローンの自律化のために 夏に飛行ロボコンに学…

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

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

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

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

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

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

STM32でシリアル通信

はじめに こんにちは、こうへいです。 モータの実験をするのを目標にして、ここ数日はMacBookにSTM32の開発環境を構築して、Lチカができるようになりました。 モータを動かしてエンコーダからパルスを取得してデータをPC等で受け取って解析するためのWBSは …

NUCLEO-F446REでLチカ成功

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

STM32開発環境をMacBookに整える

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

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

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

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

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

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

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