2013-03-06 82 views
3

所以我遇到了一個問題,似乎與在不支持SSE的處理器的ROS中使用OpenCV有關。特別是,每當嘗試使用OpenNI或freenect與Xbox Kinect進行交互時都會出現問題。任何時候我嘗試啓動其中一個,我會得到一個「非法指令」錯誤。從我讀過的內容來看,這個問題可以追溯到opencv,並且它使用了我的處理器(Roboard RB100上的Vortex86DX)不支持的SSE。我已經找到了關於如何從源代碼編譯OpenCV和使用標記來編譯沒有SSE的指令,但是無法弄清楚如何在ROS中使用它。有人知道如何在ROS中使用自定義編譯版本的OpenCV來緩解這個問題嗎?編譯OpenCV沒有sse用於ROS

謝謝!

如果您需要更多信息,請詢問。

回答

0

我遇到了類似的問題。 檢查舊版庫不在ROS庫路徑中,例如/opt/ros/groovy/lib

您也可以更新您的環境變量,以確保新的庫在之前被加載。

1

如果您在嘗試在舊CPU上使用opencv和ROS時發生「非法指令」錯誤,請嘗試構建不帶SSE3的opencv庫,然後將它們複製到ROS版本上。

例如,這樣的事情:

$ cd ~/opencv-2.4.9 
$ mkdir build && cd build && cmake -DENABLE_SSE3=OFF .. && make && sudo make install 
$ sudo cp `ls /usr/local/lib/libopencv*.2.4.9` /opt/ros/hydro/lib 

然後看看它的工作:

$ python 
> import cv