ROSkinetict仿真
kinetic传感器??
3D深度相机
RGBD深度摄像头简介
深度相机就是可以获取场景中物体距离摄像头物理距离的相机
目前RGBD深度摄像头获取深度图像的方法主要有立体视觉,激光雷达测距和结构光三大类。
立体视觉
立体视觉。获取深度信息,指的是通过获取同一场景不同视角的多张图像,利用图像的匹配和一定的三维重建算法来计算场景对象的深度信息,如利用处同一轴线上的两个摄像头获取场景对象的两张视差图以及相机的内参和外参数计算深度信息的双目摄像头。
双目立体视觉法的原理和人眼类似,通过计算空间中同一个物体在两个相机成像的视差就可以根据如下三角关系计算得到物体离相机的距离。
激光雷达测距
激光雷达测距则采用TOF 技术(Timeof flight,飞行时间),它通过记录光源投射到每个像素点的光线发射与反射间的相位变化来计算光线飞行时间,进而计算光源到每个像素点的距离飞行时间是从Time of Flight直译过来的,简称TOF。其测距原理是通过连续发射经过调制的特定频率的光脉冲(一般为不可见光)到被观测物体上,然后接收从物体反射回去的光脉冲,通过探测光脉冲的飞行(往返)时间来计算被测物体离相机的距离。
激光雷达测距原理图
结构光
结构光法就是使用提前设计好的具有特殊结构的图案(比如离散光斑、条纹光、编码结构光等),将图案投影到三维空间物体表面上,使用另外一个相机观察在三维物理表面成像的畸变情况。如果结构光图案投影在该物体表面是一个平面,那么观察到的成像中结构光的图案就和投影的图案类似,没有变形,只是根据距离远近产生一定的尺度变化。但是,如果物体表面不是平面,那么观察到的结构光图案就会因为物体表面不同的几何形状而产生不同的扭曲变形,而且根据距离的不同而不同,根据已知的结构光图案及观察到的变形,就能根据算法计算被测物的三维形状及深度信息
kinetic传感器仿真实验
1.1 新建 Xacro 文件,配置 kinetic传感器信息
2 19 27 行
t
<robot name="my_sensors" xmlns:xacro="http://wiki.ros.org/xacro">
<gazebo reference="kinect link名称">
<sensor type="depth" name="camera">
<always_on>true</always_on>
<update_rate>20.0</update_rate>
<camera>
<horizontal_fov>${60.0*PI/180.0}</horizontal_fov>