Bundle Adjustment のためのcvsbaをROS (catkin)で使うために
はじめに
SfM(Structure from Motion)とかいう単眼カメラを用いた三次元形状復元+自己位置推定手法を実装するためには,
Bundle Adjustmentという多画像からパラメータ,3次元形状を推定する工程を実装する必要があるようです[1].
自己実装は面倒なので,OpenCVを用いて実装されたcvsba[2]というライブラリがあるのでそれを使います.
インストール
Ubuntuへのインストールは公式サイト[2]見ればいいので省略します.
ROS(catkin)で使用するためCMakeLists.txtには,以下の様に書けば動作するようです[3].
cmake_minimum_required(VERSION 2.8.3) project(local_test) find_package(catkin REQUIRED COMPONENTS roscpp ) find_package(OpenCV REQUIRED) LINK_LIBRARIES(cvsba) catkin_package( # INCLUDE_DIRS include # LIBRARIES local_test # CATKIN_DEPENDS roscpp rospy # DEPENDS system_lib ) include_directories( ${catkin_INCLUDE_DIRS} ${OpenCV_iNCLUDE_DIRS} ) add_executable(cvsba_test src/cvsba_test.cpp) target_link_libraries(cvsba_test ${catkin_LIBRARIES} ${OpenCV_LIBRARIES} )
OpenCV関係に加えて
LINK_LIBRARIES(cvsba)
の一文を加えれば良いようです.