3

そのため、SSE をサポートしていないプロセッサ上の ROS で OpenCV を使用することに関連していると思われる問題に遭遇しました。具体的には、OpenNI または freenect を使用して Xbox Kinect と接続しようとするたびに、この問題が発生します。いずれかを起動しようとすると、「Illegal Instruction」エラーが発生します。私が読んだことから、この問題はopencvにまでさかのぼることができ、それは私のプロセッサ(Roboard RB100のVortex86DX)ではサポートされていないSSEを使用しています。ソースから OpenCV をコンパイルする方法とフラグを使用して SSE なしでコンパイルする方法についての説明を見つけましたが、ROS でこれを使用する方法がわかりません。この問題を軽減するために、ROS で OpenCV のカスタム コンパイル バージョンを使用する方法を知っている人はいますか?

ありがとう!

さらに詳しい情報が必要な場合は、お問い合わせください。

4

2 に答える 2

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
于 2014-10-23T21:20:23.333 に答える