MyEnigma

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

ユニットテストカバレッジ可視化入門

目次

  • 目次
  • はじめに
  • PythonプロジェクトをTravis CI上でテストして、Coverallsでカバレッジを可視化する
  • JuliaのプロジェクトをTravis CI上でテストして、Coverallsでカバレッジを可視化する
  • 参考資料
  • MyEnigma Supporters

はじめに

近年、プログラミングをする上で、

テストを書き、そのテストを継続的に実行する

継続的インテグレーション(CI)を利用することは当たり前になってきました。

myenigma.hatenablog.com

myenigma.hatenablog.com

 

CIを実現する上で、

オンプレミスでは、Jenkins

myenigma.hatenablog.com

クラウドで、OSがLinux, Mac OSの場合は、Travis-CIや

Travis CI - Test and Deploy Your Code with Confidence

Circle-CI、

Continuous Integration and Delivery - CircleCI

Windowsの場合は、AppVeyorがあります。

myenigma.hatenablog.com

 

最近は、ユニットテストを実行するだけでなく、

ユニットテストがカバーしているコードの割合を表示するのも

よく実施されます。

今回は、Coverallsというテストカバレッジ可視化サービスを使う方法をまとめておきます。

coveralls.io

 

Coverallsを使うと、下記の画像のように、

テストカバレッジの結果を

GitHubのREADMEなどに表示することができます。

f:id:meison_amsl:20181111205140p:plain

 

続きを読む

Graph based SLAMの概要とPythonサンプルコード

https://github.com/AtsushiSakai/PythonRobotics/raw/master/SLAM/GraphBasedSLAM/animation.gif

目次

  • 目次
  • はじめに
  • Graph based SLAM
  • Pythonサンプルコード
  • 参考資料
  • MyEnigma Supporters

はじめに

以前、SLAMの技術として、

EKF SLAMやFast SLAMなどを紹介しましたが、

myenigma.hatenablog.com

myenigma.hatenablog.com

これらのSLAMのアルゴリズムは、

オンラインSLAMと呼ばれるSLAMのアルゴリズムです。

このようなオンラインSLAMのアルゴリズムは、

地図の情報を使って、今の位置や姿勢を補正することができますが、

過去の位置や姿勢は補正することができません。

 

そこで今回は、過去の位置や姿勢も含めて補正することができる

Full SLAMと呼ばれるアルゴリズム群の中で、

有名なアルゴリズムであるGraph based SLAMの概要と

Pythonサンプルコードを紹介したいと思います。

続きを読む

Ubuntu初期設定まとめ

目次

  • 目次
  • はじめに
  • Chromeのインストール
  • Fn keyを押さずにFn keyを使いたい (デフォルトをメディアボタンにしない)
  • トラックパットのスクロールの方向をMacと合わせる
  • フォルダを英語名にする
  • Caps LockをCtrlにする
  • Macのようにキーボードの"変換"キーを日本語入力、"無変換"を英語入力にする
  • File Exploreでファイルの種類や、変更時刻の行を設定する
  • GitHubにssh keyを設定する
  • ターミナル系の設定
  • クリップボード管理アプリのインストール
  • Launcherキーバインドの設定
  • スクリーンショットの設定
  • スクリーンレコーダーアプリのインストール
  • CPUやメモリの使用率をメニューバーに表示するアプリのインストール
  • vimの設定
  • ターミナルアプリterminatorのインストール
  • Logicoolの多ボタンマウスを設定する
  • Dockerのインストール
  • Pythonのインストール
  • juliaのインストール
  • Jetbrains Toolboxのインストール
  • その他のOSの設定
  • 参考資料
  • MyEnigma Supporters

はじめに

個人的なUbuntu設定メモです。

続きを読む

スタンフォード大学の学生が学ぶ制約付き非線形最小二乗法とその応用

目次

  • 目次
  • はじめに
  • 制約付き非線形最小二乗法
  • 制約付き非線形最小二乗法の解法1: ペナルティ法
  • 制約付き非線形最小二乗法の解法2: 拡張ラグランジュ法
  • 制約付き非線形最小二乗法の応用例1: 自動車の非線形制御
  • 制約付き非線形最小二乗法の応用例2: 後処理軌跡推定
  • 参考資料
  • MyEnigma Supporters

はじめに

スタンフォード大学には

機械学習を学ぶ上での第一歩として、

Introduction to Matrix Methods (EE103)という授業があります。

 

今回の記事では、

この授業の教科書である

Introduction to Applied Linear Algebraを

読んだ際の技術メモです。

 

この教科書は下記のリンクのページから

pdfをダウンロードすることができます。

 

本記事では、

上記の教科書の非線形最小二乗法の部分のみのメモです。

他の部分に関しては、下記の記事を参照下さい。

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

続きを読む

Windows OS上で自動ビルド&テストを実行できるクラウドCIサービスAppVeyor入門

目次

  • 目次
  • はじめに
  • クラウドのWindows OS上のCIサービス: AppVeyor
  • AppVeyorの設定でハマったところ
    • 1. "The build phase is set to "MSBuild" mode (default), but no Visual Studio project or solution files were found"というエラー
    • 2. WarningでCIが失敗してしまう。
    • 3. JuliaでCIの設定をしたいときは
  • 参考資料
  • MyEnigma Supporters

はじめに

近年、プログラミングをする上で、

テストを書き、そのテストを継続的に実行する

継続的インテグレーション(CI)を利用することは当たり前になってきました。

 

CIを実現する上で、

オンプレミスでは、Jenkins

myenigma.hatenablog.com

クラウドで、OSがLinux, Mac OSの場合は、Travis-CIや

Travis CI - Test and Deploy Your Code with Confidence

Circle-CIがあります。

Continuous Integration and Delivery - CircleCI

 

今回は、クラウド上でWindows OS上のCIサービスである

AppVeyorを紹介したいと思います。

 

最近、自分のOSSプロジェクトでも

Travis-ciに加えて、AppVeyorでのCIも追加しました。

github.com

 

今回はAppVeyorの概要と、自分がハマったところを紹介しておきます。

続きを読む

スタンフォード大学の学生が学ぶ非線形最小二乗法とその応用2:レーベンバーグ・マーカート法編

目次

  • 目次
  • はじめに
  • 非線形最小二乗法の解法2: レーベンバーグ・マーカート法
    • レーベンバーグ・マーカート法の概要
    • Juliaによるレーベンバーグ・マーカート法による非線形最小二乗法
  • 応用例1: 非線形最小二乗法による等距離地点探索
  • 応用例2: 非線形フィッティング
  • GitHubリポジトリ
  • 参考資料
  • MyEnigma Supporters

 

はじめに

スタンフォード大学には

機械学習を学ぶ上での第一歩として、

Introduction to Matrix Methods (EE103)という授業があります。

 

今回の記事では、

この授業の教科書である

Introduction to Applied Linear Algebraを

読んだ際の技術メモです。

 

この教科書は下記のリンクのページから

pdfをダウンロードすることができます。

 

本記事では、

上記の教科書の非線形最小二乗法の部分のみのメモです。

他の部分に関しては、下記の記事を参照下さい。

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

 

続きを読む

ROS利用への道の第一歩を支える本『実用ロボット開発のためのROSプログラミング』

目次

  • 目次
  • はじめに
  • ROS利用への道の第一歩を支える本
  • メモ
  • 参考資料
  • MyEnigma Supporters

はじめに

幸いなことに、

冒頭の書籍を、著者の方から献本して頂いたので、

簡単に書評させていただきます。

初めて献本頂きました😀。著書の皆様ありがとうございます。これから読んで書評させてきただきます。

続きを読む

スタンフォード大学の学生が学ぶ、非線形最小二乗法とその応用1:ガウス・ニュートン法編

目次

  • 目次
  • はじめに
  • 非線形最小二乗法
  • 非線形最小二乗法の解法1: ガウス・ニュートン法
  • Juliaによるガウス・ニュートン法のサンプルコード
  • 参考資料
  • MyEnigma Supporters

 

はじめに

スタンフォード大学には

機械学習を学ぶ上での第一歩として、

Introduction to Matrix Methods (EE103)という授業があります。

 

今回の記事では、

この授業の教科書である

Introduction to Applied Linear Algebraを

読んだ際の技術メモです。

 

この教科書は下記のリンクのページから

pdfをダウンロードすることができます。

 

本記事は、

上記の教科書の非線形最小二乗法の一部分のみのメモです。

他の部分に関しては、下記の記事を参照下さい。

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

 

続きを読む

ロボットエンジニアのためのOSSライセンス入門

目次

  • 目次
  • はじめに
  • OSSのライセンスを学ぶ上で、まず読むべき資料
  • OSSのライセンスで初めに心に止めておくべきこと
  • 各OSSライセンスの比較表
  • 代表的なOSSのライセンスで共通していること
    • 商用利用可能
    • 個人利用可能
    • 作者にOSSに関する責任を追わせること
  • ロボット関連でよく使われそうなOSS
    • 一覧表
    • ROS
    • Eigen
    • tensorflow
  • OSSに関する素朴な疑問
    • Q1: OSSを配布し、中のスクリプトなどで他のOSSをネットから直接インストールしてもらう場合もライセンスを気にする必要はあるのか?
    • Q2: 自分のOSSにライセンスを正しく設定するにはどうすればいいのか?
    • Q.3 他のOSSを利用する時の、ライセンスと著作権の表示はどうすればいいのか?
    • Q.4. MPLは特許に関して、どのような規定をしているのか?
  • Q.5 GPLで公開すべきこものはなにか?
  • 最後に
  • 参考資料
  • MyEnigma Supporters

はじめに

現代において、

ソフトウェア開発にOSSは欠かせません。

 

OSSを正しく利用するためには、

自ずと、OSSのライセンスに関する知識も重要になります。

今回、冒頭の本を読んだことを皮切りに、

OSSのライセンスについて、

ロボットへ応用することを念頭において色々調べてみたので、

共有したいと思います。

 

続きを読む

FastSLAM1.0とFastSLAM2.0によるSLAMのためのPythonサンプルプログラム

https://github.com/AtsushiSakai/PythonRobotics/raw/master/SLAM/FastSLAM2/animation.gif

目次

  • 目次
  • はじめに
  • FastSLAMアルゴリズムの概要
  • FastSLAM1.0によるSLAMのためのPythonサンプルプログラム
  • FastSLAM2.0によるSLAMのためのPythonサンプルプログラム
  • 参考資料
  • MyEnigma Supporters

はじめに

先日、拡張カルマンフィルタ(EKF)による

SLAMのサンプルコードを公開しましたが、

d.hatena.ne.jp

同じくベイズフィルタの一種であるParticle Filterを使った

FastSLAMというSLAMのアルゴリズムがあります。

myenigma.hatenablog.com

 

今回はFastSLAMを使用したSLAMの

簡単なPythonサンプルプログラムを紹介したいと思います。

 

続きを読む