理系的な戯れ

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

マイクロマウス

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

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

グラフ理論と迷路探索

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

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

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

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

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

オドメトリによる移動ロボットの自己位置推定

移動ロボットの自己位置推定の基本としてオドメトリがある。本記事ではマイクロマウスのような2輪移動ロボットの直線近似及び円弧近似によるオドメトリ計算について記述した。

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

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

Jupyter labのインストール

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

ミサイルの誘導法対決

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

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

はじめに こんにちは、こうへいです. 昨日の記事でトランジスタインバータ回路の応答が遅れる事に触れたんですが,それ以上追求しませんでした. blog.rikei-tawamure.com Twitterでもつぶやきましたが,今日はそれについて,少し考察できたので,話したいと…

転がり抵抗測定(2)

はじめに こんにちは、こうへいです。 前回、転がり抵抗を測ってみたのですが,何種類かの重量を用意して垂直荷重の変化に応じた転がり抵抗を計測しようと思います. blog.rikei-tawamure.com はじめに 転がり抵抗の推定 運動方程式とつりあいの方程式 並進…

転がり抵抗測定

はじめに 電流フィードバックの記事で転がり抵抗を知りたくなったので,測る方法を考えて,測ってみました. kouhei-no-homepage.hatenablog.com 測り方 スロープを用意して,タイヤを両端に付けた軸を初速0から転がして,転がりに要した時間を計測します.…

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

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…

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

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