zoukankan      html  css  js  c++  java
  • ubuntu12.04+fuerte 下跑通lsd-slam——使用usb摄像头

    上一篇介绍了如何使用数据集跑lsd-slam,这篇介绍如何用一个普通的usb摄像头跑lsd-slam,默认ubuntu12.04,fuerte已经安装好,workspace也已设置,如果没有,请参考上一篇数据集下跑lsd-slam的博文。

    我使用的摄像头是罗技c310 usb摄像头,其他的usb摄像头应该也没什么问题。

    1.测试摄像头好坏。安装cheese,执行

    $ sudo apt-get install cheese
    

      运行cheese,执行

    $ cheese
    

      确认摄像头是否能在ubuntu下正常工作

    2.安装ros下对应的驱动。执行

    $ sudo apt-get install ros-fuerte-camera-umd
    

      接着执行

    $ roscd uvc_camera
    

      如果现在在uvc_camera文件夹,说明安装成功。

    3.查找摄像头对应的设备号。执行

    $ ls /dev/video*
    

      如果只有一个摄像头,看到的应该是 /dev/video0

    4.更改launch文件。进入uvc_camera下的launch文件夹,打开camera_node.launch文件,更改为

    <launch><arg name="device" default="/dev/video0"/>
       <node pkg="uvc_camera" type="camera_node" name="uvc_camera" output="screen">
        <param name="width" type="int" value="640" />
        <param name="height" type="int" value="480" />
        <param name="fps" type="int" value="30" />
        <param name="frame" type="string" value="wide_stereo" />
        <param name="device" type="string" value="/dev/video0" />
      </node>
    </launch>
    

      不放心的话可以将原文件备份一份, 其中/dev/video0这个要和自己上一步查询到的对应

    5.执行

    $ roscore
    

      如果已经有一个shell在执行这个命令,再次执行会报错,只允许执行一个roscore

    6.打开一个新的终端,执行

    $rosrun lsd_slam_viewer viewer

    出现point cloud viewer

    7.打开一个新的终端,执行

    $ roslaunch uvc_camera camera_node.launch
    

      可能中间会有错误提示,不用管。此时,如果摄像头有工作指示灯,指示灯应该是亮的

    8.打开一个新的终端。执行

    $ rosrun lsd_slam_core live_slam /image:=<yourstreamtopic> _calib:=<calibration_file>
    

      其中 yourstreamtopic我也不是很懂,calibration_file是校正文件,我直接用了数据集中的校正文件(可能原理上有问题,但是可以跑通)。我的

    $ rosrun lsd_slam_core live_slam /image:=image_raw _calib:=/home/xtl/fuerte_workspace/sandbox/LSD_room_images/LSD_room/cameraCalibration.cfg
    

      结果

      point cloud viewer中显示点云:

    原创文章,转载请注明出处

  • 相关阅读:
    我的书单
    说说IUnitOfWork~Linq to Sql与EntityFrameworks中的SubmtChanges()发生了什么事
    说说IUnitOfWork~认识IUnitOfWork,为什么要出现IUnitOfWork接口
    LINQtoSQL那点事~关于延时加载的性能,微软给出了不错的解决方案
    数据结构~站点地图其实是一颗树
    说说IUnitOfWork~方法完整性与统一提交不冲突
    递归 解剖
    Java Socket一对一聊天
    转:浅谈c++容器
    Java JList 使用
  • 原文地址:https://www.cnblogs.com/xtl9/p/4694881.html
Copyright © 2011-2022 走看看