lz的系統是ubuntu4.04+indigo+kinect v1.
首先rgbd-slam需要很多的依賴項,如下:
rgbdslamv2 is based on the open source projects, ros, opencv, opengl, pcl, octomap, siftgpu, g2o, and more
這裡lz假設ros已經成功安裝了,下面建立新的工作空間,lz因為已經建立過了,為了便於管理沒有建立新的工作空間,小夥伴們各取所需
#prepare workspace
source /opt/ros/indigo/setup.bash
mkdir -p ~/rgbdslam_catkin_ws/src
cd ~/rgbdslam_catkin_ws/src
catkin_init_workspace
cd ~/rgbdslam_catkin_ws/
catkin_make
source devel/setup.bash
#get rgbdslam
cd ~/rgbdslam_catkin_ws/src
wget -q
unzip -q indigo.zip
cd ~/rgbdslam_catkin_ws/
#install
rosdep update
rosdep install rgbdslam
catkin_make
這個是readme.md裡面直接copy過來的,也是最理想的情況,但是現實是
error!
一、關於-lsiftgpu的問題
/usr/bin/ld: 找不到 -lsiftgpu
collect2: error: ld returned 1 exit status
make[2]: *** [/home/ros/downloads/catkin_ws/devel/lib/rgbdslam/rgbdslam] 錯誤 1
make[1]: *** [rgbdslam_v2/cmakefiles/rgbdslam.dir/all] 錯誤 2
make: *** [all] 錯誤 2
invoking "make -j4 -l4" failed
首先會碰到找不到-lsiftgpu這個問題。筆記本上lz編譯過兩次rgbdslam,一次順利通過,一次卡在這個問題上。
mkdir build
cd build
cmake ..
make
然後在進行編譯就行了
二、關於g2o的問題
由於系統中會進行圖優化,使用的是g2o,網上也充斥著各種版本的g2o,如果版本不正確很容易出現undeference的錯誤,各種未定義
解決方案:解除安裝原有g2o,
執行命令
sudo apt-get install ros-indigo
-libg2o
一步到位!
三、opencv版本的問題
會報cv::vector之類的問題
**中使用的都是opencv2版本的介面, lz有兩個版本的opencv,所以修改cmakelists.txt
set(opencv_dir /usr/share/opencv)
#or set it directly here, e.g.
#set(opencv_dir /home/endres/ros_indigo/opencv2/build/)
#then activate the following definition
#add_definitions(-dcv_nonfree)
if (not "$"
equal
"") message("using opencv from "
$)endif (not "$"
equal
"")find_package(opencv 2.4 required)
include_directories($)
link_directories($)
最後編譯通過了執行
roslaunch rgbdslam openni+rgbdslam.launch
還是會報錯,要安裝
sudo apt-get install ros-indigo
-openni
-camera
sudo apt-get install ros-indigo
-openni
-launch
再次執行,又會出現:
no devices connected.... waiting for devices to be connected.
這個請參考
安裝對應的驅動,一條條刷指令就行了,這差不多是rgbdslam v2編譯中碰到的各種高頻問題了,lz很幸運都碰到了一遍^_^
最後附張圖吧,不然該說lz瞎忽悠了半天
還是有挺多缺點的,lz本來是想orbslam進行自主壁障導航,但是如果直接把關鍵幀對應的點雲進行拼接,效果不是很好(高博有一版,會出現很多outliers),rgbdslam相對建圖方面還是比較準確的,有稠密地圖,但是如果使用sift話速度肯定是不行的,後續還有很多改進的空間o(∩_∩)o哈!
獲取安卓應用的版本
獲取安卓應用的版本 在清單檔案androidmanifest.xml中設定程式的版本 android versionname 1.0.1 有時候我們須要在 中獲取到這個版本。1.獲取當前應用的版本號名 public string versionname try catch exception e r...
電源的安規設計(2)
1 安規電容的定義 安規電容器是行業對抑制電源電磁干擾用固定電容器的俗稱,因為該類電容符合安全規範 且通過安全規範測試認證,同時其本體印刷有多個國家的安全認證logo標誌,故而稱為安規電容器。此類電容在實際應用中的 安規 表現在 即使電容器失效後,也不會導致 電擊,不危及人身安全 此外,它採用阻燃材...
cocos2dx編譯安卓版本號檢視C 錯誤
首先,在mac以下相關軟體路徑,開啟 終端 然後輸入 pico bash profile 回車 export cocos2dx root users bpmacmini01 documents cocos2d 2.1rc0 x 2.1.2 export ndk root users bpmacmin...