EurekaMoments

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

書籍「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図以外の使い道もある
ようです。

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

続きを読む

JetBrains製IDEとMarkdown + PlantUMLでドキュメント作成する方法とVSCodeとの比較

独習UML 第4版

独習UML 第4版

目次

  • 目次
  • 背景・目的
  • 前提条件
  • 環境構築手順
  • Markdownでドキュメントを書く
    • プレビュー表示について
    • 目次の作成について
    • 画像の貼り付けについて
  • PlantUMLでUML図を描く
    • 新規ファイルを作成
    • UML図の画像保存について
  • 他にも出来たらいいと思う事

背景・目的

以前こちらの記事にて、VSCode+PlantUMLによる
ソフト設計について書きましたが、最近になって
PyCharmのようなJetBrains製IDEを使い始めました。

www.eureka-moments-blog.com

MarkdownとPlantUMLでドキュメント作成する
のもPyCharmで行うようになったのですが、
VSCode時と違いはあるものの、これもなかなか
快適だと思ったので紹介します。

続きを読む

Tリーグの試合データをスクレイピング+CSV保存するために調べた事のメモ

目次

  • 目次
  • 背景・目的
  • 参考資料
  • Pythonプログラム
    • チーム間、選手間の対戦成績 + 各試合の得点推移
    • 各選手のシーズン通してのスタッツ
  • Requestsライブラリの使い方
  • response.textか.contentか
  • SSLサーバ証明書の警告エラーを無視
  • 文字コードをShift-JISにしてCSV保存

背景・目的

以前から卓球のデータ分析をやりたいと思って
ので、Tリーグの試合データを公式サイトから
Webスクレイピングしてみました。

その際に、スクレイピングするプログラムを
Pythonで作ったのですが、いろいろ分からない
事が見つかり調べたので、それらをメモして
おきます。

続きを読む

状態空間モデルから伝達関数モデルへの変換の基礎とPythonプログラム

目次

  • 目次
  • 背景・目的
  • 伝達関数とは
  • 時間領域とs領域
  • 時間領域からs領域への変換
  • Pythonサンプルプログラム
  • GitHubリポジトリ
  • 参考資料

背景・目的

今までに書いてきたこれらの記事では、
ロボットの制御モデルを状態空間モデル
という形式で表現していましたが、

www.eureka-moments-blog.com

www.eureka-moments-blog.com

もう一つの形式として伝達関数モデルが
あります。これまでに大学の授業などで
伝達関数については触れた事もありますが、
それが結局何の役に立つのかが全然分かって
いませんでした。

今回改めて勉強し直したので、それについて
メモしておきます。

続きを読む

ロボット制御モデルの可制御・可観測判定の基礎とPythonプログラム

演習で学ぶ基礎制御工学

演習で学ぶ基礎制御工学

  • 作者:森 泰親
  • 発売日: 2014/10/04
  • メディア: 単行本(ソフトカバー)

目次

  • 目次
  • 背景・目的
  • 判定対象とするモデル
  • 事前知識
  • 可制御の判定とサンプルプログラム
  • 可観測の判定とサンプルプログラム
  • GitHubリポジトリ
  • 参考資料

背景・目的

以前の記事にて2輪型ロボットの制御モデルについて
書きました。

www.eureka-moments-blog.com

こうやってモデル化されたシステムが、ある入力に
よってある状態に持っていけるものである事を
可制御、何かしらの方法でどういう状態である事を
可観測といい、これらを判定する事は重要です。

今回は、可制御・可観測の判定手法を勉強したので、
その手法と、それを実行するPythonサンプルサンプル
プログラムについて紹介します。

f:id:sy4310:20200418180034p:plain

続きを読む