さくっとPTAMをROSで試す(1)・・・サンプルデータでPTAMを試す
PTAMについて
Parallel Tracking and Mapping for Small AR Workspaces (PTAM) - extra
カメラの映像から、カメラの動きを推定する技術。 ノンマーカーARの技術に分類され、主に拡張現実(AR)に用いられる。
この技術が使えると、普通に撮影した映像に対して、 3Dキャラクターを配置したり、3次元空間にぴったり貼り付けるように情報を表示できる。
インストール環境
- Windows10 64bit
Ubuntu14.04のイメージディスク入手
- Ubuntu 14.04.3 LTS (Trusty Tahr)
http://releases.ubuntu.com/14.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のインストール
- ja/indigo/Installation/Ubuntu - ROS Wiki http://wiki.ros.org/ja/indigo/Installation/Ubuntu
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のインストール
- ethzasl_ptam - ROS Wiki http://wiki.ros.org/ethzasl_ptam
関連パッケージをインストール。
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を動かしてみる
- ethzasl_ptam/Tutorials/using_ethzasl_ptam - ROS Wiki
http://wiki.ros.org/ethzasl_ptam/Tutorials/using_ethzasl_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ファイルの扱い方については、以下を参照。
- ja/ROS/Tutorials/Recording and playing back data - ROS Wiki
http://wiki.ros.org/ja/ROS/Tutorials/Recording%20and%20playing%20back%20data
下記コマンドで、bagファイルの中身を参照できる。
rosbag info ethzasl_ptam_desktop_sample.bag
下記コマンドで、PTAMで映像を利用する。
rosbag play ethzasl_ptam_desktop_sample.bag
これでとりあえず、ローカルのbagファイルに対して動作を確認! あとは、自分で撮影した動画データや、接続したカメラで利用する方法を探すだけ・・・