编译没有sse的OpenCV用于ROS

时间:2013-03-06 00:46:44

标签: opencv sse ros

所以我遇到了一个问题,似乎与在不支持SSE的处理器上在ROS中使用OpenCV有关。具体来说,只要尝试使用OpenNI或freenect与Xbox Kinect进行交互,就会出现问题。每当我尝试启动任何一个时,我都会收到“非法指令”错误。根据我的阅读,这个问题可以追溯到opencv,它使用SSE,我的处理器不支持SSE(Roboard RB100上的Vortex86DX)。我已经找到了如何从源代码编译OpenCV并使用标志在没有SSE的情况下编译的说明,但是无法弄清楚如何在ROS中使用它。有人知道如何在ROS中使用自定义编译版本的OpenCV来缓解这个问题吗?

谢谢!

如果您需要任何进一步的信息,请询问。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

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