3

所以我遇到了一个似乎与在不支持 SSE 的处理器上使用 ROS 中的 OpenCV 相关的问题。具体来说,每当尝试使用 OpenNI 或 freenect 与 Xbox Kinect 交互时,就会出现此问题。每当我尝试启动其中任何一个时,都会收到“非法指令”错误。根据我的阅读,这个问题可以追溯到 opencv 并且它使用 SSE,这在我的处理器上不受支持(Roboard RB100 上的 Vortex86DX)。我找到了有关如何从源代码编译 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 回答
0

我遇到了类似的问题。检查旧库是否不在 ROS 库路径中,例如/opt/ros/groovy/lib.

您还可以更新环境变量以确保之前加载了新的库。

于 2013-11-02T16:17:50.750 回答