上一篇介紹了如何使用數據集跑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中顯示點雲:

原創文章,轉載請注明出處
