EurekaMoments

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

ロボットを制御するためのモデル化の基礎と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%に
なる部分がちらほら見られ、実際の
試合とはまだまだギャップがある
状態です。
この計算精度を上げるべく、今回は
ベイズ推定による確率の推定を検討
してみたので紹介します。

続きを読む

Dockerコンテナ上のPythonスクリプトから出力したmatplotlibのグラフをホストPC側で表示する方法

試して学ぶ Dockerコンテナ開発

試して学ぶ Dockerコンテナ開発

目次

  • 目次
  • 背景・目的
  • 1. ホストPC側にVcXsrvをインストールする
  • 2. コンテナ作成の準備をする
  • 3. コンテナからXサーバへの接続設定をする
  • 4. Xサーバ側の接続許可設定をする
  • 5. イメージをビルドしてコンテナを作成する
  • 6. コンテナに接続してサンプルコードを実行する

背景・目的

DockerコンテナのPythonを
インタプリタにスクリプトを
実行する環境を構築できる
ようになったのですが、

www.eureka-moments-blog.com

input関数によるキー入力操作や、
matplotlibによるグラフ表示といった
GUI関連の処理が全然動かない
問題にぶつかりました。
いろいろハマりながらもなんとか
解決する事が出来たので、今回は
その方法について紹介します。

続きを読む

PyCharmとDockerコンテナを接続してPythonスクリプトを実行するまでの手順

Kubernetes完全ガイド impress top gearシリーズ

Kubernetes完全ガイド impress top gearシリーズ

  • 作者:青山 真也
  • 出版社/メーカー: インプレス
  • 発売日: 2018/09/21
  • メディア: Kindle版

目次

  • 目次
  • 背景・目的
  • コンテナ側のPythonを使うメリット
  • PyCharmとDockerコンテナの接続手順
    • 1. DockerデーモンとのTCP/IP接続を有効にする
      • TCP/IPについて
      • デーモンについて
      • TLSについて
    • 2. プロジェクトを作成する
    • 3. Dockerfileを作成する
    • 4. docker-compose.ymlファイルを作成する
    • 5. ビルドしてコンテナを起動させる
    • 6. コンテナの作成・起動を確認する
    • 7. Dockerサーバとの接続を設定する
    • 8. インタプリタを設定する
    • 9. コンテナに接続する
    • 10. Pythonスクリプトを作成・実行する

背景・目的

前回まで取り組みを通じて、
Dockerfileからのイメージの
ビルド、コンテナの作成と
起動を出来るようになりました。

www.eureka-moments-blog.com

今度はここから、PyCharmと
コンテナを接続して、プロジェクト
のインタプリタにコンテナ側の
Pythonを使えるようにしようと
したのですが、またいろいろ
と知識不足で躓いたところが
ありました。

qiita.com

今回は、上記について調べた
事をメモしつつ、PyCharmと
Dockerコンテナを接続して、
コンテナ側のPythonを
インタプリタとして使える
ようにする方法を紹介して
いきます。

続きを読む

UbuntuとAnacondaを自動インストールしてPython環境を構築するDockerfile

Docker

Docker

  • 作者:Adrian Mouat
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2016/08/17
  • メディア: 単行本(ソフトカバー)

目次

  • 目次
  • 背景・目的
  • Dcokerfileに記述したい内容
  • 作成するための環境
  • 1. Ubuntu18.04のベースイメージを取得
  • 2. 「wget」, 「sudo」コマンドをインストール
  • 3. Anaconda(Python3.7)をインストール
  • 4. 別途必要なPythonのライブラリをインストールする
  • GitHub
  • 参考資料

背景・目的

前回の記事では、Dockerの基本的な
コマンドを学びながら、イメージや
コンテナの作成・起動などを実行
出来るようになりました。

www.eureka-moments-blog.com

前回は「docker commit」コマンド
でコンテナからイメージを作成する
方法を行いましたが、今回はもう
一つの方法である、「docker build」
コマンドで「Dockerfile」から
イメージを作成する方法を学んで
いきます。

続きを読む

Dockerの基本操作を学びながらUbuntu+Python 3.7の環境を構築した手順のメモ

Docker/Kubernetes 実践コンテナ開発入門

Docker/Kubernetes 実践コンテナ開発入門

  • 作者:山田 明憲
  • 出版社/メーカー: 技術評論社
  • 発売日: 2018/08/25
  • メディア: 単行本(ソフトカバー)

目次

  • 目次
  • 背景・目的
  • 参考資料
  • 既存のDockerイメージの確認
  • Ubuntuイメージをダウンロード
  • コンテナの一覧を確認
  • コンテナを作成
  • Pythonをインストールしようとしたら
  • wgetが無いと怒られた
  • 今度こそPythonをインストール
  • 2種類のログイン方法
  • コンテナを起動・停止したいだけの時
  • Ubuntu+Pythonイメージを作成
  • 不要なコンテナの削除
  • まとめ

背景・目的

こちらの記事で書いたように、つまらない事で
ハマりながらもWindows 10にDockerを
インストールしました。 www.eureka-moments-blog.com

今回は次のステップとして、イメージ作成や
コンテナ起動などの基本操作を試しながら
Linux環境の構築に取り組んでみたので、
そのメモを残しておきます。

続きを読む