EurekaMoments

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

書籍「SLAM入門」の読書録~スキャンマッチング編~

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

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

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

f:id:sy4310:20200710213422p:plain

目次

  • 目次
  • 目的
  • スキャンデータの構造
  • ロボットとスキャンレーザの座標系
  • スキャンの歪み補正
  • スキャンマッチングの処理の流れ
    • 0. 全体
    • 1. 初期地図の生成
    • 2. ロボットの予測位置の計算
    • 3. 参照スキャンの生成
    • 4. ロボットの位置の推定
    • 5. センサフュージョン
    • 6. 地図の更新
  • GitHub

目的

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

書籍「SLAM入門」の読書録~バックエンド編~

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

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

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

f:id:sy4310:20200706221325p:plain

目次

  • 目次
  • 目的
  • クラス設計
  • メソッド設計
    • SlamFrontEndクラスからの呼び出し
    • ポーズ調整
    • 地図修正
  • GitHub

目的

  • 書籍「SLAM入門」を参考に、SLAMシステムにおけるバックエンド部分について理解する。
  • サンプルコードを参考に、C++での設計思想について理解する。
続きを読む

書籍「SLAM入門」の読書録~フロントエンド編~

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

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

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

f:id:sy4310:20200704203737p:plain

目次

  • 目次
  • 目的
  • フロントエンド部分が担う機能
    • スキャンデータによる地図生成と管理
    • スキャンマッチングによるロボット位置推定
    • ポーズグラフの生成
    • ループ検出
  • メイン処理の流れ
    • 1. 初期化
    • 2. スキャンマッチング
    • 3. ポーズグラフの生成
    • 4. 格子テーブルによる地図生成
    • 5. ループ検出
  • GitHub

目的

  • 書籍「SLAM入門」を参考に、SLAMシステムにおけるフロントエンド部分について理解する。
  • サンプルコードを参考に、C++での設計思想について理解する。
続きを読む

書籍「SLAM入門」の読書録~継承を利用したフレームワーク~

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

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

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

f:id:sy4310:20200629223934p:plain

目次

  • 目次
  • 目的
  • オブジェクト指向フレームワークの採用
  • 仮想関数の基礎
  • 抽象クラスと具象クラス
  • フレームワークを用いるクラス
    • RefScanMakerクラス
    • CostFunctionクラス
    • PoseOptimizerクラス
    • DataAssociatorクラス
    • PointCloudMapクラス
    • LoopDetectorクラス
  • 参考資料
  • GitHub

目的

  • C++における継承と仮想関数の基本について理解する。
  • 継承と仮想関数を利用したオブジェクト指向フレームワークについて理解する。
続きを読む

書籍「SLAM入門」の読書録~SLAM起動部分編~

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

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

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

f:id:sy4310:20200627213415p:plain

目次

  • 目次
  • 目的
  • SLAM実行を統括するクラス: SlamLauncher
    • クラス設計
      • MyUtilクラス
      • Pose2Dクラス
      • LPoint2Dクラス
      • Scan2Dクラス
      • SensorDataReaderクラス
      • PointCloudMapクラス
      • SlamFrontEndクラス
      • MapDrawerクラス
      • FrameworkCustomizerクラス
    • メソッド設計
      • コンストラクタ・デストラクタ
      • setStartN
      • setOdometryOnly
      • run
      • showScans
      • mapByOdometry
      • setFilename
      • skipData
      • customizeFramework
  • 参考記事
  • GitHub

目的

  • 書籍「SLAM入門」を参考に、SLAMシステムを起動するソフトウェア全体の設計について理解する。
続きを読む

書籍「SLAM入門」の読書録~システム概要編~

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

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

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

目次

  • 目次
  • 目的
  • 関連記事
  • SLAM問題
  • SLAM問題における不確かさ
  • SLAMにおける2種類のアプローチ
    • ベイズフィルタを用いるSLAM
      • カルマンフィルタによるSLAM
      • パーティクルフィルタによるSLAM
    • 最適化手法によるSLAM
  • グラフベースSLAM
    • フロントエンド
    • バックエンド
    • 参考資料
  • サンプルプログラムの概要
    • 全体のクラス構成
    • Main関数の処理フロー
    • SLAM実行部分
  • GitHub

目的

  • 書籍「SLAM入門」を参考に、SLAMシステムの全体構成について理解する。
  • サンプルコードを参考に、C++での設計思想について理解する
続きを読む

PlantUMLでソフトウェア開発のガントチャートを作る方法

目次

  • 目次
  • 背景・目的
  • 従来のガントチャート作成方法の問題点
    • エクセルで作る場合
    • 専用ツールやクラウドサービスで作る場合
  • PlantUMLによるガントチャート作成
    • 今回作ってみたガントチャート
    • ソースコード
    • 日付を入れる
    • 休みの日を入れる
    • タスクを入れる
    • タスクの開始日を設定する
    • マイルストーンを設定する
    • タスクのグループ分けを設定する

背景・目的

PlantUMLは基本的にソフト設計の
UML図を描くためのものと思って
いましたが、マインドマップや
ガントチャートのような
UML図以外の使い道もある
ようです。

その中で、ガントチャートを
作成する機能を試してみたら
割と好感触だったので紹介します。

続きを読む