前一个星期搭建了Ubuntu16.04 以及机器人平台Kinetic for ROS。这周开始利用IntelRealSense ZR300深度相机进行物体识别,并利用到新的点云来检测。好了下面来记载一下自己踩得坑。

关于搭建Ubuntu Kinetic 和ROS:http://wiki.ros.org/cn WIki百科 反正我没怎么看

ROS Robot Programming(EN)/ ROS机器人编程(CN)  非常重要的一本书,博主完全按照这本书学ROS 搭建环境 学编程 以及了解机械臂等https://share.weiyun.com/970694619c000c4fef50344d3b3defd8 超级棒的一本书!!!


1.在Intel官网就有安装该款相机的教程。接下来依照该教程展开。

https://software.intel.com/zh-cn/realsense/zr300/get-started

2.设定时间,博主虽然是双系统,但基本都不用windows10,所以系统时间可设可不设。建议用网络时间设置。

网络时间设置
$ sudo apt update
$ sudo apt install chrony ntpdate
$ sudo ntpdate ntp.ubuntu.com
 
手动时间设置
$ sudo date -s "16:47 1/23/2017"

3.设定储存库

将英特尔® 实感™ 软件储存库添加至 Ubuntu* 设备的 package manager(程序包管理器),以便设备知道何处下载额外软件。

$ echo 'deb "http://realsense-alm-public.s3.amazonaws.com/apt-repo" xenial main' | sudo tee /etc/apt/sources.list.d/realsense-latest.list
$ sudo apt-key adv --keyserver keys.gnupg.net --recv-key D6FB2970
$ sudo apt update

4.安装英特尔® 实感™ 摄像头访问实用程序,获得高级摄像头控制,如反差和曝光设置。

$ sudo apt install librealsense-utils
$ cpp-capture

效果如下所示,注意摄像头的盖子要打开,而且ZR300一定要插在USB3.0口。正常应该是有6个画面。

5.安装运行时和样本,此安装允许运行所有 librealsense 中间件样本。

安装运行时后,就应能看到摄像头输出,并可运行英特尔® 实感™ 中间件样本,例如人体跟踪、对象库及同时定位和地图绘制 (SLAM)。如果在安装运行时和样本时,摄像头已插入,需将其拔出并插回,以确保所有设置均被应用。

$ sudo apt install librealsense-samples beignet-opencl-icd

6.安装开发工具,此步骤安装物体识别、人体跟踪和 SLAM 库至设备。

$ sudo apt install build-essentials git cmake libjpeg-dev libopencv-dev
$ git clone http://github.com/IntelRealSense/realsense_samples
$ cd realsense_samples
$ mkdir build
$ cd build
$ cmake
$ make

博主在此处出现了问题,在realsense_samples例子里面的realsense_ros_camera里launch文件,用跑demo_zr300_camera.launch跑不通,问题如下图。(我是在build文件夹创建之后并不能正常cmake)

Error:catkin_make Coule not  find a package configuration file provided by "OpenCV"with anyof the follwoing names:OpenCVConfig.cmakeopencv-config.cmake


首先排查原因有没有单独运行一个终端运行roscore(一定要注意运行ros前一定要运行roscore)。接着运行$rosnode list查看运行中的节点信息。

7.$cd catkin_ws/进入该文件夹进行cmake,$catkin_make。这里显示找不到opencv的路径(找不到OpenCVConfig.cmake)

是不是之前自己装ROS没有装opencv呢,其实ros的SDK会自动帮安装opencv3.3.1,所以问题不在这里,大家可以直接跳到下一步。不过自己还是踩了坑重新安装了opencv

https://blog.csdn.net/u011511601/article/details/79395713

注意pip和pip3的区别。

这里要提一句,下载git进行clone真的超级慢,上周开始用翻墙下载就缩短了两倍以上的时间。需要在ubuntu里面安装proxychain。这里就不展开,等以后总结了这个内容再贴链接过来。

8.发现python3进入以后,import cv2,依然会显示错误。依然是那个路径的问题,这是因为ubuntu运行默认之前的opencv2.7,所以安装了3.3.2import cv会出错误。注意,不要尝试卸载操作,卸了之前的或者最新的3.3.1再重新来一遍,步骤太多。

另外,要把catkin文件夹内不相关的文件夹移出去(比如我移走了my_first_ros_pkg   realsense_samples open_manipulator).有的在上述的截图问题中无法编译也有一部分原因是不相关的文件夹导致,移走会少一部分错误。接着找到那两个文件的位置:

$sudo find / -name openCVConfig.cmake

如图4所示为自己的文件位置。

9.进入目录$cd /usr/share/OpenCV.可以看到该文件在这,但是系统在cmake的时候就找不到了,这就是因为python的原因导致系统找不到OpenCVConfig.cmake文件。

接着$sudo gedit OpenCVConfig.cmake

如图5所示:

利用ctrl+f进行搜索找到CONFIG语句,博主已经将该行程序注释掉,去掉CATHE语句,并改为下面一行程序。保存文件。

https://blog.csdn.net/qq_40313712/article/details/80642553(参考的是这篇文章的Q2)

这样就会把下面的错误解决。同时python3中import cv2错误也解决了。

 CMake Error in src/CMakeLists.txt:
  Imported target "opencv_viz" includes non-existent path
 
    "/usr/local/include/opencv"
  
 * The path was deleted, renamed, or moved to another location.
 
  * An install or uninstall procedure did not complete successfully.
 
  * The installation package was faulty and references files it does not
  provide.

10.返回到catkin_ws

$cd ~/catkin_ws 

重新进行编译,敲上$cm即可(其实就是catkin_make,ROS基础配置中有很多这种内容的定义需要自己配置,来简化时间)。结果如图6所示

 

11.可以通过输入命令$rostopic list来查看当前运行的话题信息。接着,

$roslaunch realsense_ros_camera camera_zr300.test

$rviz

即可在rviz中看到Intel RealSense ZR300的输出结果。如图6:

另外也可以用rqt查看二维的图像,不过对于点云来说当然不可以。

12.在rviz中,点Add增加PointCloud2,将话题修改为/camera/points。另外,将Fixed Frame 改为camera_depth_frame即可显示。

接下来自己会实际进行降噪等处理,之后进行物体识别,目标识别出一个杯子,并控制机械臂实际抓取杯子,还有要依据PCL库为基础进行杯子的目标识别。加油ヾ(◍°∇°◍)ノ゙第一次写csdn的博文,记录一下日常采坑。

--------------------------------------------------更新2019.7.19--------------------------------------------------------------

因为最近半年都在准备发论文以及准备雅思,所以都没有登csdn回复。希望8.24雅思顺利,继续努力把。之后准备好雅思及申请好后,会总结一下今年前两个半月paper做的3D 物体识别、6D位姿估计以及重叠物体的检测等内容。

另外,有很多人通过邮箱联系到了我我也给出了我的解答。如有问题请发邮件到: 1701210376@pku.edu.cn 最近依然不会回复csdn。

如果有人感兴趣想加入的话,自动化所招实习生啦!!!

【自动化所类脑中心-类脑机器人实习生招聘】
类脑认知机器人算法及应用实习生:主要负责基于ROS的认知机器人开发,要求自动控制及相关专业(或个人十分感兴趣),具有机器人ROS开发经验/python编程基础者优先,最好能实习6个月以上。我们将提供Baxter机器人、Robotnik机器底盘、NAO机器人等作为硬件支撑实习生的研究。
有意者请联系tielin.zhang@ia.ac.cn

--------------------------------------------------------7.19--------------------------------------------------------------------------------------

-------------------------------------------------------------------------------2020.3.2更新-------------------------------------------------------------

最近在准备面试,有问题可以联系上面的邮箱。最终的文章代码链接以及原文、实现步骤已经在系列终结篇给出。

另外本人画的场景设计画在站酷上,欢迎交流www.zcool.com.cn/u/20178144