• 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中显示点云:

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

  • 相关阅读:
    对于java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误解决
    attempted to assign id from null one-to-one
    The class has no identifier property
    javax.servlet.ServletException: com.microsoft.jdbc.base.BaseDatabaseMetaData.supportsGetGeneratedKeys()Z
    final和static
    hibernate事务
    log4j:WARN Please initialize the log4j system properly.解决
    用最有效率的方法算出2乘以8等於几
    char型变量中能存贮一个中文汉字
    基本数据类型范围
  • 原文地址:https://www.cnblogs.com/xtl9/p/4694881.html
Copyright © 2020-2023  润新知