理系的な戯れ

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

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

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

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

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

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ボタンを押しながら接続することで外付けドラ…

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

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

S.BUSプロトコル

ドローンを含めロボットを遠隔操作に広く普及しているS.BUS通信ですが、S.BUS信号のデコードやエンコードの必要が出るため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モータの制御をこれまで取り扱う事が多かったんですが 同じ事を何度も繰り返しているので、一度整理して見たくなりました。 これまでの記事と確実に重複しますが、それを承…

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

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

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

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

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

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

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

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

STM32でシリアル通信

はじめに 今回の記事は、 STM32マイコンでシリアル通信をして モータの回転数情報を得るプログラムを構築するにはどうしたら良いのかを説明します。 前回までで、モータの実験をするのを目標にして、 MacBookにSTM32の開発環境を構築して、Lチカができるよう…

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)ルンゲ・クッタ関数

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

初級者用マウス2式のサンプルプログラムの解説

初級者用マウス2式と本記事について 初級者用マウス2式 は福井大学のI.Sys 所属の岸本氏が開発されたものです。 マイクロマウス北陸同好会では初心者が初めて取り扱うマイクロマウスとして奨励しています。 sites.google.com 本投稿記事ではサンプルプログ…