视觉学习笔记

1 ros驱动相机(kinect、xtion、webcam)
首先需要安装驱动。
对于kinect和xtion:
$ sudo apt-get install ros-indigo-openni-* ros-indigo-openni2-* ros-indigo-freenect-*
$ rospack profile
对于webcam,需要安装usb_cam驱动:
cd ~/catkin_ws/src
git clone https://github.com/bosch-ros-pkg/usb_cam.git
cd ~/catkin_ws
catkin_make
rospack profile
随后驱动相机:
对于kinect:
$ roslaunch freenect_launch freenect-registered-xyzrgb.launch
对于xtion:
$ roslaunch openni2_launch openni2.launch depth_registration:=true
对于webcam:
$ roslaunch rbx1_vision usb_cam.launch video_device:=/dev/video0
(这里的/dev/video0是摄像头的设备号,一般自带相机的笔记本是0,外接的是1,具体可以使用下面的命令查看:
查看摄像头设备: ls -ltrh /dev/video*)
最后查看图像。
可以先用 rostopic list查看发布了哪些话题。查看图像有多种方法,可以用image_view订阅话题查看:
$ rosrun image_view image_view image:=/camera/rgb/image_raw
也可以用rviz查看:
$ rosrun rviz rviz

2 如何使用公开数据集
以TUM的数据集为例:
网站中对各个数据集都有相应解释,包括所用传感器等。以RGBD数据集 fr1/xyz 为例,下载并解压后,会看到以下文件:
rgb.txt和depth.txt记录了各文件采集时间和对应的文件名
rgb/和depth/ 目录存放着采集到的PNG格式的图像文件,彩色图像为8位3通道,深度图像位16位单通道,文件名及采集时间。
groundtruth.txt为外部运动捕捉系统采集到的相机位姿,格式为:timestamp tx ty tz qx qy qz qw,我们可以把他看成标准轨迹。
这里需要注意的是,彩色图、深度图、标准轨迹的采集都是独立的,轨迹的采集频率比图像高很多,。在使用数据之前,需要根据采集时间对数据进行一次时间上的对齐,以便对彩色图和深度图进行匹配。TUM提供了一个python脚本 “associate.py”,在useful tools里:
下载这个脚本并放到数据集目录下,运行:
python associate.py rgb.txt depth.txt > associate.txt
输出后的文件associate.txt 中含有配对后的两幅图像的时间、文件名信息,作为后续处理的来源。
在高博的书14讲中,给出了一个简单的VO的例子,里面有关于如何使用数据集的部分代码,可以参考:



猜你喜欢

转载自blog.csdn.net/qintianhaohao/article/details/80704112