EurekaMoments

ロボットや自動車の自律移動に関する知識や技術、プログラミング、ソフトウェア開発について勉強したことをメモするブログ

状態空間モデルから伝達関数モデルへの変換の基礎とPythonプログラム

目次

  • 目次
  • 背景・目的
  • 伝達関数とは
  • 時間領域とs領域
  • 時間領域からs領域への変換
  • Pythonサンプルプログラム
  • GitHubリポジトリ
  • 参考資料

背景・目的

今までに書いてきたこれらの記事では、
ロボットの制御モデルを状態空間モデル
という形式で表現していましたが、

www.eureka-moments-blog.com

www.eureka-moments-blog.com

もう一つの形式として伝達関数モデルが
あります。これまでに大学の授業などで
伝達関数については触れた事もありますが、
それが結局何の役に立つのかが全然分かって
いませんでした。

今回改めて勉強し直したので、それについて
メモしておきます。

続きを読む

ロボット制御モデルの可制御・可観測判定の基礎とPythonプログラム

演習で学ぶ基礎制御工学

演習で学ぶ基礎制御工学

  • 作者:森 泰親
  • 発売日: 2014/10/04
  • メディア: 単行本(ソフトカバー)

目次

  • 目次
  • 背景・目的
  • 判定対象とするモデル
  • 事前知識
  • 可制御の判定とサンプルプログラム
  • 可観測の判定とサンプルプログラム
  • GitHubリポジトリ
  • 参考資料

背景・目的

以前の記事にて2輪型ロボットの制御モデルについて
書きました。

www.eureka-moments-blog.com

こうやってモデル化されたシステムが、ある入力に
よってある状態に持っていけるものである事を
可制御、何かしらの方法でどういう状態である事を
可観測といい、これらを判定する事は重要です。

今回は、可制御・可観測の判定手法を勉強したので、
その手法と、それを実行するPythonサンプルサンプル
プログラムについて紹介します。

f:id:sy4310:20200418180034p:plain

続きを読む

GitHubで管理するコードの質を高めるために取り入れた各種クラウドサービスのまとめ

目次

  • 目次
  • 背景・目的
  • CodeFactor
  • LGTM
  • Travis CI
  • Coveralls
  • Appveyor

背景・目的

こちらのOSSプロジェクトを始めるにあたり、
コードの品質を高めるために良く使われている
各種クラウドサービスをいろいろ調べ、

github.com

とりあえず、コードレビューや自動テスト、
カバレッジ計測といった必要最低限の事が
一通り出来るようになりました。

f:id:sy4310:20200411113405p:plain

今回は、取り入れた各サービスの特徴や、使える
ようにするまでにハマった事について紹介します。

続きを読む

GitHub上のコードを自動レビューしてくれるクラウドサービスCodeFactorの使い方

目次

  • 目次
  • 背景・目的
  • CodeFactorとは
  • アカウント登録
  • 利用プラン
  • 対応言語
  • 基本画面
  • レビュー結果
  • 指摘箇所の修正
  • READMEへのバッジ貼り付け

背景・目的

最近こちらのOSS開発を始めたので、
これを機会にCI/CDやコードレビュー
などをやってくれる各種サービスを
利用して、自分のコードの質を高める
ようにしようと考えました。

github.com

そこでまずは、GitHubと連携して
自動でコードレビューをしてくれる
サービスである、CodeFactorを利用
し始めたので紹介します。

続きを読む

ロボットを制御するためのモデル化の基礎とPythonプログラム

Pythonによる制御工学入門

Pythonによる制御工学入門

  • 作者:裕樹, 南
  • 発売日: 2019/05/22
  • メディア: 単行本

目次

  • 目次
  • 背景・目的
  • 対向2輪型ロボット
  • モデル化
    • 前提条件
    • 状態変数の定義
    • 入力の定義
    • 出力の定義
  • Pythonプログラム
  • GitHubリポジトリ
  • 参考資料

背景・目的

ここ最近、制御工学を勉強したい熱が高まって
きたので早速取り組み始めました。主に、
ロボットの自律移動や車の自動運転のための
制御を学んでいきます。
今回は記念すべき第1回。移動ロボットとして
一般的な、対向2輪型ロボットを制御するための
運動モデルの定義と、その動作を学ぶための
Pythonサンプルプログラムについて書きます。

f:id:sy4310:20200420212343g:plain

続きを読む

GROOVE Xが開発したLOVOTの記事を読んだ感想と気になったとこのメモ

目次

  • 目次
  • 背景・目的
  • 読んだ感想
  • ROSのPub/sub通信のオーバーヘッド
  • MongoDBとMariaDB
  • PythonからMongoDBを利用するpymongo
  • PythonからC++の関数やクラスを呼び出すためのpybind11
  • Go言語の使い道
  • GCP, AWSによるクラウド管理
  • TrioによるPythonの並行処理

背景・目的

最近リリースされたこちらの記事にて、
GROOVE Xが開発した家庭向けロボット
「LOVOT」で活用されている技術に
ついての紹介を読みました。

xtech.nikkei.com

かなり読み応えのある内容でとても
面白かったので、読んだ感想と興味
深かったところについて調べたメモ
を残しておきます。

続きを読む

卓球の試合における得点確率のベイズ推定を考える

目次

  • 目次
  • 背景・目的
  • スポーツにおけるベイズ推定
  • 卓球の試合で予測したい確率とは
  • 得点率を予測する一連の流れ
    • 0. 戦術の分類を定義する
    • 1. 相手が各戦術を取る事前確率を定義する
    • 2. 相手が各戦術を取った場合の得点率を定義する
    • 3. 相手のトータルでの得点確率を定義する
    • 4. 相手が各戦術を取る確率を更新する
    • 5. 各戦術における自分の得点確率を事前定義する
    • 6. 自分の得失点時に各戦術を取った確率を定義する
    • 7. 自分がトータルで各戦術を取った確率を定義する
    • 8. 各戦術を取った場合の得点確率を推定する
  • 今後の取り組み

背景・目的

以前、こちらの記事で紹介したように、
卓球の試合の勝率の推移をシミュレート
するPythonプログラムを作りました。

www.eureka-moments-blog.com

なんとなくそれっぽくなっていますが、
計算された勝率が100%あるいは0%に
なる部分がちらほら見られ、実際の
試合とはまだまだギャップがある
状態です。
この計算精度を上げるべく、今回は
ベイズ推定による確率の推定を検討
してみたので紹介します。

続きを読む