• Ubuntu下ROS&&Kinect&&ORB-SLAM环境搭建


    首先了解一下什么是ORB-SLAM

    https://blog.csdn.net/u010128736/article/details/53157605

    有空看看源码,感觉还是有点意思的

    实验室给了个intel nuc,i5的核

    系统是ubuntu 14.04(好老)

    opencv的版本是2.4.9(好老)

    emmmmm估计是台服役了挺久的老机子

    目前是需要在这个nuc上装好ros,kinect驱动,还有个orb-slam2的环境

    给机子update&upgrade了一下,应该是已经换了清华源,速度很好

    装ros,没啥好说的,因为是14.04版本,只能装ros-indigo了

    https://blog.csdn.net/softimite_zifeng/article/details/78630548

    https://blog.csdn.net/weixin_41015581/article/details/80028576

    两个教程差不多,我推荐装完之后按照第一个教程里的操作里面玩一玩乌龟,真的很好玩(什么玩意

    下面开始安装kinect的驱动

    把数据集拷过来了,放在下载文件夹下的data文件夹内

    下面开始安装kinect2的驱动

    https://www.cnblogs.com/hitcm/p/5118196.html

    https://www.cnblogs.com/yuanlibin/p/8549970.html

    一顿操作之后成功cmake+make+make install

    中间遇到的一个主要问题是cmake过不了,原因是需要的libusb版本要求>=1.0.20,而apt-get到的为1.0.0,所以下了源码编译安装,安装完后就能cmake过了

    编译安装完毕,运行demo时能够正常启动kinect,但是发现摄像头图像没法弹出来,检查了一下发现是vaapi安装有问题,导致没法正常显示图像

    报错信息如下:

    [Error]  [VaapiRgbPacketProcessorImpl] vaDisplayIsValid(display) failed
    

    这个东西找了几个教程还是没有找到靠谱的安装方法,鉴于不是什么太要命的问题(?

    先把ros的接口给安装了

    然后果然又出幺蛾子

    报错:

    No module  catkin_dkg.package
    

    解决:

      conda install setuptools
      pip install -U       rosdep rosinstall_generator wstool rosinstall six vcstools
    

    Iai-kinect2安装完后

    直接运行

    roslaunch  kinect2_bridge kinect2_bridge.launch
    

    会报错找不到launch文件

    需要在~/catin_ws下面执行source devel/setup.bash

    launch完这个线程之后去开rosrun的时候同样需要执行source,而且设定上每次都要,当然也可以直接修改ubuntu启动文件~/.bashrc

    这样这边的环境安装算是搞定了,但是问题还是没法弹出图像窗口来,不用想都知道是上面一步留的坑

    OK,目前这个是最烦人,最有待解决的问题了

    [Error]  [VaapiRgbPacketProcessorImpl] vaDisplayIsValid(display) failed
    
    

    慢慢查怎么搞吧

    最烦的是这个问题在网上并不能搜索到什么结果,stackoverflow上面也没有

    最惨的是我找到唯一一个相关的问答下,做这个的人快乐的选择了……..quit????

    虽然表象上来说是vaapi出的问题,但是我总觉得根源上是别的东西有麻烦,毕竟我安装得时候基本就是按照正常得步骤去装的

    开始安装orb-slam

    http://www.luyixian.cn/news_show_3614.aspx

    装高版本的Pangolin出了一堆bug,所以换个低点的版本来装

    最后装ORB_SLAM2的时候在运行build.sh时会报几个usleep未定义的错

    一个一个找到之后把unistd.h给include进去就行了,也不知道为啥会有这么傻逼的问题

    基本上就操作完毕了

    https://blog.csdn.net/myarrow/article/details/53045405

    回头可以跑跑demo玩

  • 相关阅读:
    tornado之获取参数
    tornado中命名路由及反向解析使用
    options模块介绍
    服务的启动
    redis操作
    python中使用redis模块, 设置过期时间
    LaTeX
    word 摘要
    常用命令
    机器学习的建议
  • 原文地址:https://www.cnblogs.com/sasasatori/p/11618847.html
Copyright © 2020-2023  润新知