Skip to content

Instantly share code, notes, and snippets.

@0V
Last active September 2, 2022 07:55
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save 0V/a3817fa67345bd0cde6c to your computer and use it in GitHub Desktop.
Save 0V/a3817fa67345bd0cde6c to your computer and use it in GitHub Desktop.
LSD-SLAMを使える環境を作るまでのあれこれ[後輩用]

LSD-SLAM の使い方 Linux初心者編

非常に簡単な解説は書きますが、十分な情報は揃っていないかもしれませんし、少々不正確な部分があるかもしれません。
それぞれの項目について、各自納得の行くまで調べてください。気になった単語を連鎖的に調べていくことで、結果的に技術の理解へとつながります。日本語文献が少なく、英語文献頼みな点もあるでしょう。大変だとは思いますが、応援しています。

LSD-SLAM とは

LSD-SLAMはVisual-SLAM(vSLAMとも)研究の一つであり、Visual-SLAMは、SLAMをカメラを用いて行う問題のことです。
SLAM(Simultaneous Localization And Mapping)は、自己位置推定とマッピング(地図作成)を同時に行う問題のことで、もとはロボットの自律制御への利用を目的とした技術です。

LSD-SLAMは、画像から特徴点を取らず、ダイレクトに勾配情報を用いています。勾配情報が十分でない領域を無視するなどの工夫で、一般的なCPU上でのリアルタイム実行を可能にしたことや、単眼カメラ特有のスケーリングの不確かさによるドリフトの問題を解決し、机の上などの小さな環境だけでなく、屋外などの大きな環境においても実行可能にしたことなどが注目すべき点です。

LSD-SLAMはROSのパッケージとして提供されており、簡単に導入できます。

LSD-SLAMを理解するには、関連する論文

を読む必要がありますが、非常に疲れるので、アブストラクト導入結論あたりを読んだらあとは慣れるまではやめておきましょう。腰を据えて読める時に、読むと良いです。そうでないと、必要な知識が高度なので、ザッと読んだだけでは詳しいところの意味がわからないと思います。それから、所々にある専門用語は画像処理に詳しくないとわからない面もあるので気をつけましょう(気をつけようがないとは思いますが)。

Link

LSD-SLAM
LSD-SLAM on GitHub

LSD-SLAMをUbuntuで使うために最低限必要な知識

Linuxとは何か

Linux と言ったら、カーネルを指す場合と、Linuxカーネルを用いたシステムを指す場合があります。 多くの場合は後者の意味で用い、Ubuntu Linux や Arch Linux 、Gentoo Linux などの OS 全般を指します。 Linuxディストリビューションと言うときは、上にあげたOSのように、一般的な利用者が利用しやすい形にまとめてあるもののことをを指します。

Ubuntuとは何か

Ubuntu は Linuxディストリビューションの一つです。無料です。研究用途などでよく使われます。
Linux初心者にオススメのOSを聞かれればこれを選ぶ人が多いです。もし初心者にGentooとかを勧めてくる人がいたらいろんな意味でヤバイ人なので、Linuxに慣れるまでは裸足で逃げましょう。

Ubuntuのインストール方法

LSD-SLAMの推奨環境はUbuntu14.04なので、それに従いましょう。
最初は仮想マシンへのインストールで良いと思います。ただし、私は試していないので、仮想マシン上での動作の保証はできません。
Ubuntu は日本語訳版も出ています。本家にするか日本語Remix版にするかはお好みで選びましょう。

端末(terminal)の使い方

Ubuntu での作業は、端末から行えるようになると効率が良いです。
端末では、キーボードを用いてすべての操作が行えます。コマンドを覚えて使いこなしましょう。
(そもそも、ROSやLSD-SLAMの実行は端末が使えないとできません)

Ubuntuのパッケージ管理システム(apt-getとか)の使い方

apt-get update

apt-get install hogehoge

はよく使うでしょう。

よく使うLinuxコマンド

何かをインストールするときなどに、コマンドの例が示してあることが多いです。そこで出てきたものは片っ端から調べるようにしましょう。

ROSの概念・使い方

LSD-SLAM の実行確認された環境が indigo なので、indigo をインストールするようにします。
ROS Tutorials 日本語 インストール方法などは、これを順々にやりつつ調べましょう。

LSD-SLAMの概念・使い方

GitHub にすべて書いてあります。英語です。 インストールして実行するだけなら、コマンドを読むだけでなんとかなるかもしれません。 LSD-SLAM on GitHub

uvc_camera

Webカメラから動画を取得して実行する際に必要です。他にもWebカメラを使うためのパッケージはありますが、個人的に一番オススメなのがこれです。 uvc_camera

質問・誤り指摘など

Twitter で@G2U あてにリプライやDMを飛ばすか、直接聞いてください。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment