EurekaMoments

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

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

続きを読む

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を
インタプリタとして使える
ようにする方法を紹介して
いきます。

続きを読む