折腾了一星期,换了两台电脑终于把ZED配置成功了,博主现在用的系统是ubuntu14.04.5,ROS已经安装好,不多说先上一张效果图。

笔记本双显卡架构 笔记本的双显卡_g++

看起来还行,毕竟还没用它跑过代码=_=话不多说直接开始。
Step 1:装cuda
(装cuda 是很折腾的,尤其是双显卡笔记本装cuda,网上解决安装时出现error问题教程看过很多,几乎都没什么用,遇到错误建议直接换版本。如果和我一样,错误实在是不能绕过,那么就请参考我的第三篇博客,专门写如何折腾cuda。)
A. 下载cuda(尽量确保你的系统是新安装的,否则有可能会出现循环登录)
cuda8.0下载链接:https://developer.nvidia.com/cuda-downloadscuda7.5以及之前的各个版本下载链接:https://developer.nvidia.com/cuda-toolkit-archive建议下载 *.run格式的文件,这样至少你还能知道你每一步的进展,可以自己选择装某一个部分,而且最重要的是卸载方便(至于具体怎么方便,详细阅读上述下载链接各版本对应的official文档:Installstion Guide for  Linux)。
至于装哪个版本的,一个个尝试吧,博主比较奇葩,用cuda8.0的run包只装了nvidia的驱动,然后用cuda7.5的run包装了剩下所有的。毕竟cuda8.0和opencv3.1也冲突,调试太的费神。

B.制作blcaklist,直接贴上述official 文档里的了(一般刚装完机,ubuntu系统不会安装intel集显,也不会安装nvidia的官方显卡,而是安装nouveau显卡驱动,至于他到底是什么,请自行百度,这里要做的就是把它加入黑名单,否则再装完nvidia的显卡,两个显卡打架,会让你循环登陆的)

笔记本双显卡架构 笔记本的双显卡_ci_02


C. Ctrl+Alt+F2进入终端,首先登录进去,然后
          

1 sudo service lightdm stop  //关闭X  
2 cd  <dir where *.run you put>  
3 sudo sh  *.run

然后按照提示安装吧,一般opengl的库,咱么选择不装,原因详见official 文档。

 

1 sudo service lightdm start  //开启X,回到桌面,若没有回到桌面Ctrl+Alt+F7回到桌面

 

D. 测试(这样测试比较快,当然以也可以按照official 文档里的方法测试)
     

1 cd /usr/local/cuda-7.5/samples/1_Utilities/deviceQuery  
2 sudo make   // 如果出错可能是没安装g++,用sudo apt-get install g++解决  
3 ./deviceQuery

 

如果程序运行成功,那恭喜,你已经成功60%了。

Step2. 安装opecv3.1.0
参见官方教程 docs.opencv.org/3.1.0/d7/d9f/tutorial_linux_install.html或者一些靠谱的博客也可以,但是cuda8.0和opencv3.1有点冲突,网上有些解决方法,可以尝试,cuda7.5和opencv3.1一次成功。
其中的cmake命令尽量按照官方的这么写,否则可能下面编译时找不到:
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
还有make -j4 可以加速,可以四核并行运算

Step3. 安装合适的ZED的SDK
我是在这找了一个1.1.0的版本,至于为什么下面说,总之都是折腾出来的。https://www.stereolabs.com/developers/release/archives/
Step4. 构建zed_wrapper_node
还是官方链接:https://github.com/stereolabs/zed-ros-wrapper按照上面的走一般不会错,当然我遇到过opencv的库找找不到等等。。很多问题

这里说主要提一件事,看一下我修改后的src/zed-ros-wrapper/CMakeLists.txt

笔记本双显卡架构 笔记本的双显卡_SLAM_03

主要改了一下两点:
1.find_package(ZED 1.1 REQUIRED)    --->find_package(ZED 1.0 REQUIRED)  
2.倒数第三行的SET(CUDA_VERSION  “8.0”) --->SET(CUDA_VERSION  “7.5”)
注意这些都是按照你具体安装的版本来定的,不是必须要改的!,ZED SDK的版本如果是1.1.0以下的,就需要修改第一项。
如果zed_wrapper_node构建成功,那么你已经成功99%了,这个node在/devel/lib/zed_wrapper下面。
赶快source 一下,roslaunch试试吧!

reference:
http://wiki.ros.org/zed-ros-wrapperhttps://github.com/stereolabs/zed-ros-wrapper

https://www.stereolabs.com/getstarted/

 

AutoRobot实验室:葛振华