2013年6月8日土曜日

rgbdSLAMについて

rgbdslamをダウンロードするフォルダに注意する(catkin_ws以下であれば大丈夫)
別のフォルダにしたければ.bashrcにパスを通す


$ rosdep install rgbdslam_freiburg
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
rgbdslam: Missing resource octomap_server
ROS path [0]=/opt/ros/groovy/share/ros
ROS path [1]=/home/user/catkin_ws/src
ROS path [2]=/opt/ros/groovy/share
ROS path [3]=/opt/ros/groovy/stacks
のようなエラーが出たので、
http://answers.ros.org/question/45964/rgbdslam-on-fuerte/
を参考にして
$ sudo apt-get install ros-DISTRO-octomap-mapping
してみたらrosdepできた

○しかし、エラー
$ rosrun rgbdslam rgbdslam
[rosrun] Couldn't find executable named rgbdslam below /home/user/catkin_ws/src/rgbdslam_freiburg/rgbdslam
[rosrun] Found the following, but they're either not files,
[rosrun] or not executable:
[rosrun]   /home/user/catkin_ws/src/rgbdslam_freiburg/rgbdslam
[rosrun]   /home/user/catkin_ws/src/rgbdslam_freiburg/rgbdslam/build/catkin_generated/stamps/rgbdslam

○catkin化されてないのが原因か?

●roslaunchでやってみた

user@ubuntu:~$ roslaunch rgbdslam rgbdslam.launch
...
...
...
ERROR: cannot launch node of type [rgbdslam/rgbdslam]: can't locate node [rgbdslam] in package [rgbdslam]
No processes to monitor
shutting down processing monitor...
... shutting down processing monitor complete

○エラーに対する返答
Have you compiled it? It's not a binary download. See the wiki page for how to do it.
http://answers.ros.org/question/62405/rgbdslam_freiburg-node-not-found-on-groovy/

○コンパイルしてみてのエラー
user@ubuntu:~/catkin_ws$ rosmake rgbdslam_freiburg
...
...
...
  g++ -o ../../../build/siftgpu/SiftGPU.o ../src/SiftGPU/SiftGPU.cpp -g -O2 -I../include -fPIC -L/usr/lib64 -L/usr/lib -L./bin -Wall -Wno-deprecated -pthread   -march=native -mfpmath=sse -c
  ../src/SiftGPU/SiftGPU.cpp: メンバ関数 ‘void SiftGPU::LoadImageList(char*)’ 内:
  ../src/SiftGPU/SiftGPU.cpp:1181:18: エラー: ‘chdir’ was not declared in this scope
  make[1]: *** [../../../build/siftgpu/SiftGPU.o] エラー 1
  make[1]: ディレクトリ `/home/user/catkin_ws/src/rgbdslam_freiburg/rgbdslam/external/siftgpu/linux' から出ます
 
  ------------------------------------------------------------------
 
  CMake Error at CMakeLists.txt:123 (MESSAGE):
    SiftGPU cannot be compiled.  Returned: 2
 
 
  -- Configuring incomplete, errors occurred!
...
...
...

○グラボが原因?調べてみたがそうでもなさそう
○やはり、catkin化しなければならないのか?

‘chdir’ was not declared in this scope
をググったら
http://stackoverflow.com/questions/13340270/chdir-not-declared-compilation-error-g
が出てきた

Add #include <unistd.h>, as per the chdir manual.

してみたら、
...
...
...
[ rosmake ] Last 40 linesbdslam: 483.7 sec ]         [ 1 Active 62/63 Complete ]
{-------------------------------------------------------------------------------
                   from /home/user/catkin_ws/src/rgbdslam_freiburg/rgbdslam/build/src/moc_openni_listener.cxx:10:
  /opt/ros/groovy/include/octomap_ros/OctomapROS.h:55:163: 備考: #pragma message: DEPRECATION WARNING: OctomapROS.h is deprecated and will disappear soon. Use the OctoMap library and octomap_ros/conversions.h directly instead.
  [100%] Building CXX object CMakeFiles/rgbdslam.dir/src/moc_ros_service_ui.cxx.o
  Linking CXX executable ../bin/rgbdslam
  /home/user/catkin_ws/src/rgbdslam_freiburg/rgbdslam/src/node.cpp:1404: error: undefined reference to 'GOMP_sections_next'
  /home/user/catkin_ws/src/rgbdslam_freiburg/rgbdslam/src/node.cpp:1404: error: undefined reference to 'GOMP_sections_end_nowait'
  /home/user/catkin_ws/src/rgbdslam_freiburg/rgbdslam/src/node.cpp:1404: error: undefined reference to 'GOMP_atomic_start'
  /home/user/catkin_ws/src/rgbdslam_freiburg/rgbdslam/src/node.cpp:1404: error: undefined reference to 'GOMP_atomic_end'
  /home/user/catkin_ws/src/rgbdslam_freiburg/rgbdslam/src/node.cpp:1415: error: undefined reference to 'GOMP_sections_next'
  /home/user/catkin_ws/src/rgbdslam_freiburg/rgbdslam/src/node.cpp:1404: error: undefined reference to 'GOMP_parallel_sections_start'
  /home/user/catkin_ws/src/rgbdslam_freiburg/rgbdslam/src/node.cpp:1404: error: undefined reference to 'GOMP_parallel_end'
  /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h:94: error: undefined reference to 'omp_get_thread_num'
  /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h:95: error: undefined reference to 'omp_get_num_threads'
  /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h:135: error: undefined reference to 'omp_get_num_threads'
  /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h:135: error: undefined reference to 'omp_get_thread_num'
  /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h:135: error: undefined reference to 'omp_get_num_threads'
  /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h:135: error: undefined reference to 'omp_get_thread_num'
  /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h:135: error: undefined reference to 'omp_get_num_threads'
  /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h:135: error: undefined reference to 'omp_get_thread_num'
  /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h:149: error: undefined reference to 'GOMP_parallel_start'
  /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h:149: error: undefined reference to 'GOMP_parallel_end'
  /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h:49: error: undefined reference to 'omp_get_max_threads'
  /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h:149: error: undefined reference to 'GOMP_parallel_start'
  /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h:149: error: undefined reference to 'GOMP_parallel_end'
  /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h:49: error: undefined reference to 'omp_get_max_threads'
  /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h:149: error: undefined reference to 'GOMP_parallel_start'
  /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h:149: error: undefined reference to 'GOMP_parallel_end'
  /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h:49: error: undefined reference to 'omp_get_max_threads'
  /home/user/catkin_ws/src/rgbdslam_freiburg/rgbdslam/src/misc.cpp:863: error: undefined reference to 'GOMP_atomic_start'
  /home/user/catkin_ws/src/rgbdslam_freiburg/rgbdslam/src/misc.cpp:863: error: undefined reference to 'GOMP_atomic_end'
  /home/user/catkin_ws/src/rgbdslam_freiburg/rgbdslam/src/misc.cpp:863: error: undefined reference to 'GOMP_parallel_start'
  /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h:49: error: undefined reference to 'omp_get_max_threads'
  collect2: エラー: ld はステータス 1 で終了しました
  make[3]: *** [../bin/rgbdslam] エラー 1
  make[3]: ディレクトリ `/home/user/catkin_ws/src/rgbdslam_freiburg/rgbdslam/build' から出ます
  make[2]: *** [CMakeFiles/rgbdslam.dir/all] エラー 2
  make[2]: ディレクトリ `/home/user/catkin_ws/src/rgbdslam_freiburg/rgbdslam/build' から出ます
  make[1]: *** [all] エラー 2
  make[1]: ディレクトリ `/home/user/catkin_ws/src/rgbdslam_freiburg/rgbdslam/build' から出ます
-------------------------------------------------------------------------------}
[ rosmake ] Output from build of package rgbdslam written to:ve 62/63 Complete ]
[ rosmake ]    /home/user/.ros/rosmake/rosmake_output-20130603-121542/rgbdslam/build_output.log
[rosmake-2] Finished <<< rgbdslam [FAIL] [ 483.86 seconds ]                    
[ rosmake ] Halting due to failure in package rgbdslam.
[ rosmake ] Waiting for other threads to complete.
[ rosmake ] Results:                                                           
[ rosmake ] Built 63 packages with 1 failures.                                 
[ rosmake ] Summary output to directory                                        
[ rosmake ] /home/user/.ros/rosmake/rosmake_output-20130603-121542
...
...
...

エラー吐きまくった

0 件のコメント:

コメントを投稿