EurekaMoments

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

Juliaでの基本的なユニットテストのやり方メモ

目次

  • 目次
  • 目的
  • 公式ドキュメント
  • @testマクロによるユニットテスト
  • @test_throwsマクロによるユニットテスト
  • @testsetマクロによる複数テストのグループ化
  • @test_nowarnマクロによるユニットテスト
  • GitHub

目的

  • Juliaでユニットテストをするためのテストコードの書き方を学ぶ。
  • 実際にテストコードを書いて実行し、動作を確認してみる。
続きを読む

JuliaとMatplotlibでグラフを作る際のハマりポイントとサンプルプログラム集

目次

  • 目次
  • 目的
  • JuliaのPlotsではなくMatplotlibを使う理由
  • JuliaからMatplotlibを使えるようにするための設定手順
    • 1. Pythonのインストール
    • 2. JuliaにPyCallとMatplotlibをインストール
    • 3. エラー "could not find or load the Qt platform plugin windows"が出た時の対処法
  • サンプルプログラム集
    • JuliaプログラムからのMatplotlib呼び出し
    • 2次元線グラフ
    • 2次元点グラフ
    • 2次元アニメーション
    • アニメーションのGIFファイル作成
    • 複数グラフの重ね合わせ
    • 複数グラフを1つのFigureに並べて表示
    • 2次元散布図
    • ヒストグラム
    • 円グラフ
    • 3次元グラフのためのpyimport
    • 3次元点グラフ
    • 3次元線グラフ
  • GitHub

目的

  • プログラミング言語Juliaと、Pythonのグラフ描画ライブラリであるMatplotlibを組み合わせたグラフ作成の方法についてまとめる。
  • グラフを作成するための準備の中でハマったポイント、その対処方法についてメモしておく。
  • 基本的な各種グラフを作るためのサンプルプログラムをまとめておく。

f:id:sy4310:20200905155935p:plain

続きを読む

Juliaの開発環境構築手順と基本プログラミングのメモ

1から始める Juliaプログラミング

1から始める Juliaプログラミング

目次

  • 目次
  • 目的
  • 開発環境構築手順メモ
    • 1. Juliaをインストール
    • 2. IntelliJ IDEAのインストール
    • 3. GitHubに専用リポジトリを作成
    • 4. IntelliJを起動してリポジトリをクローン
    • 5. Juliaのプラグインの導入
    • 6. Juliaのexecutableの設定
    • 7. IntaliJのTerminalをWindows用のGit bashに変更
    • 8. Juliaの動作確認
  • 基本プログラミングメモ
    • ヘルプモード
    • パッケージモード
    • IntelliJ上での新規ファイル作成
    • Pythonの「if name == 'main'」を真似る
  • 参考資料

目的

  • プログラミング言語Juliaによるソフト開発環境を構築する。
  • 今後のために環境構築手順を整理してまとめておく。
  • Juliaによるプログラミングの基本について、よく使いそうなものをまとめておく。
続きを読む

書籍「SLAM入門」の読書録~センサフュージョンとループ閉じ込み~

SLAM入門: ロボットの自己位置推定と地図構築の技術

SLAM入門: ロボットの自己位置推定と地図構築の技術

  • 作者:友納 正裕
  • 発売日: 2018/03/03
  • メディア: 単行本(ソフトカバー)

目次

  • 目次
  • 目的
  • SLAMにおける退化とは
  • 退化を防ぐためのセンサフュージョン
  • ループ閉じ込みとは
  • ソフト設計
    • センサフュージョン
      • クラス
      • メソッド
        • 共分散による重み付き平均の計算
        • 位置と共分散の融合
    • 共分散の計算
      • クラス
      • メソッド
        • スキャンマッチングの共分散の計算
        • オドメトリの共分散の計算
    • ループ検出
      • クラス
      • メソッド
        • 現在位置と近く、現在スキャンに形状が合う場所を検出する
        • 再訪点位置の計算
  • GitHub

目的

  • 書籍「SLAM入門」を参考に、SLAMでロボット位置を推定する際のセンサフュージョンとループ閉じ込みについて理解する。
  • サンプルコードを参考に、C++での設計思想について理解する。
続きを読む

書籍「SLAM入門」の読書録~ICPによるロボット位置推定~

SLAM入門: ロボットの自己位置推定と地図構築の技術

SLAM入門: ロボットの自己位置推定と地図構築の技術

  • 作者:友納 正裕
  • 発売日: 2018/03/03
  • メディア: 単行本(ソフトカバー)

目次

  • 目次
  • 目的
  • ICPの概要
  • スキャンデータ対応付けの概要
  • 格子テーブル構造の概要
  • ロボット位置推定の概要
  • 位置最適化の概要
  • ソフト設計
    • データ対応付け
      • 基底クラス
      • 派生クラス: DataAssociatorLS
      • 派生クラス: DataAssociatorGT
    • ロボット位置推定
      • コスト関数
      • 最適化
      • ロボット位置推定
  • GitHub

目的

  • 書籍「SLAMA入門」を参考に、SLAMでスキャンマッチングをする際のロボット位置推定について理解する。
  • サンプルコードを参考に、C++での設計思想について理解する。
続きを読む

書籍「SLAM入門」の読書録~参照スキャンデータ編~

SLAM入門: ロボットの自己位置推定と地図構築の技術

SLAM入門: ロボットの自己位置推定と地図構築の技術

  • 作者:友納 正裕
  • 発売日: 2018/03/03
  • メディア: 単行本(ソフトカバー)

目次

  • 目次
  • 目的
  • 参照スキャンデータとは
  • 参照スキャン生成のソフト設計
    • 基底クラス
    • RefScanMakerBSクラスによる参照スキャン生成
    • RefScanMakerLMクラスによる参照スキャン生成
    • 参照スキャンに直前スキャンのみを使うデメリット
  • GitHub

目的

  • 書籍「SLAM入門」を参考に、SLAMでスキャンマッチングをする際の参照スキャン生成について理解する。
  • サンプルコードを参考に、C++での設計思想について理解する。
続きを読む

書籍「SLAM入門」の読書録~スキャンデータの前処理~

SLAM入門: ロボットの自己位置推定と地図構築の技術

SLAM入門: ロボットの自己位置推定と地図構築の技術

  • 作者:友納 正裕
  • 発売日: 2018/03/03
  • メディア: 単行本(ソフトカバー)

目次

  • 目次
  • 目的
  • 前処理の手法
    • スキャン点間隔の均一化
      • クラス設計
      • メソッド設計
    • スキャン点の法線の計算
      • クラス設計
      • メソッド設計
  • GitHub

目的

  • 書籍「SLAM入門」を参考に、SLAMを実行する際に効果的なスキャンデータの前処理について理解する。
  • サンプルコードを参考に、C++での設計思想について理解する。
続きを読む