sabo laboratory

備忘録的な技術系ブログです。組み込み、ガジェットなどなどについて書いていきます。

さくっとPTAMをROSで試す(1)・・・サンプルデータでPTAMを試す

PTAMについて


Parallel Tracking and Mapping for Small AR Workspaces (PTAM) - extra

カメラの映像から、カメラの動きを推定する技術。 ノンマーカーARの技術に分類され、主に拡張現実(AR)に用いられる。

この技術が使えると、普通に撮影した映像に対して、 3Dキャラクターを配置したり、3次元空間にぴったり貼り付けるように情報を表示できる。

インストール環境

  • Windows10 64bit

Ubuntu14.04のイメージディスク入手

VirtualBoxのインストール

  • Downloads – Oracle VM VirtualBox
    https://www.virtualbox.org/wiki/Downloads

  • メモリは多めに確保。大体4GB

  • HDD容量も多めに。デフォルト8GBだと、ROSがインストールできない。大体20GB以上。

  • CPUコア数は必ず2以上にする。コア数が1の場合、ROSなどのコンパイルでつまずくことがある。

  • コア数はVirtualBox仮想マシン一覧画面で、対象のUbuntuを選択して、”システム→プロセッサー”から変更

  • ubuntuをインストールする。このとき、最新のアップデートを適用する。

ROSのインストール

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get install ros-indigo-desktop-full
sudo apt-get install ros-indigo-desktop
sudo apt-get install ros-indigo-ros-base
sudo rosdep init
rosdep update
echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt-get install python-rosinstall

パーミッションの変更

sudo chown -R [user名] ~/.ros
mkdir -r ~/catkin_ws/src
catkin_ws_init

ここでなぜかcatkin_ws_initコマンドが見つからない問題が発生。 とりあえず、ゲストOSと共にホストOSのWindowsも併せて再起動させたところ解決。 おそらく、VirtualBox自体をインストールした後、再起動させていなかったので、それが原因?

PTAM-ROSのインストール

関連パッケージをインストール。

sudo apt-get install git freeglut3-dev liblapacke-dev liblapack-dev liblapack3 libopenblas-base libopenblas-dev
cd ~/catkin_ws/src
git clone https://github.com/ethz-asl/ethzasl_ptam
cd ..
catkin_make
cd ~/catkin_ws
source devel/setup.sh

もし一度でうまくmakeが通らないようであれば、何回か試行することで成功することがある。 このとき、VirtualBoxで動かしている仮想OSへのCPUコア数の割り当てが1の場合、makeが失敗する。

PTAMを動かしてみる

ROSで新しいターミナルで作業する場合には、以下の操作が毎回必要。

cd ~/catkin_ws
source devel/setup.sh

PTAMを起動する。 それぞれ別のターミナルで起動する。

roslaunch ptam ptam.launch 
rosrun rqt_reconfigure rqt_reconfigure 

ROSで起動されたノードの一覧を確認する。

rosrun rqt_graph rqt_graph

チュートリアルで提供されているサンプル動画とカメラファイルを使って動作をテストする。 ethzasl_ptam/Tutorials/using_ethzasl_ptamで、サンプルのdatasetをダウンロードする。 解凍したZIP内のパラメータファイルをコピーする。

unzip ethzasl_ptam_desktop_sample.zip
cd ~/catkin_ws/src/ethzasl_ptam/ptam/
mv PtamFixParams.yaml PtamFixParams-old.yaml
mv (解凍したZIPファイル内の)PtamFixParams.yaml .

梱包されていたbagファイルを利用して、映像をPTAMで利用する。 bagファイルの扱い方については、以下を参照。

下記コマンドで、bagファイルの中身を参照できる。

rosbag info ethzasl_ptam_desktop_sample.bag

下記コマンドで、PTAMで映像を利用する。

rosbag play ethzasl_ptam_desktop_sample.bag

f:id:sabo_321:20160116130428p:plain

これでとりあえず、ローカルのbagファイルに対して動作を確認! あとは、自分で撮影した動画データや、接続したカメラで利用する方法を探すだけ・・・

次の記事

sabo.hatenablog.com