最近发现其实真正的仿真的时候,用到激光的雷达的情况是很少的,主要还是使用的是深度相机,所以我们来学习一下深度相机仿真的使用.
https://github.com/nilseuropa/realsense_ros_gazebo
这是gazebo中使用深度相机的示例,我们直接使用最新的D435即可,此时的相机配置在我们的xacro上:
<xacro:include filename="$(find realsense_ros_gazebo)/xacro/depthcam.xacro"/>
<xacro:realsense_d435 sensor_name="d435" parent_link="base_link" rate="10">
<origin rpy="0 0 0 " xyz="0 0 0.5"/>
</xacro:realsense_d435>
打开仿真,获得对应的图像信息:


这里面的相机其实发布了四个话题,这里我们具体看一下代表的是什么内容的.
在 ROS 中,/camera/color/、/camera/depth/、/camera/infra1/*、/camera/infra2/*通常是由深度相机发布的话题,下图展示了这四种图像的image的效果,以下是对这些话题的具体介绍:

/camera/color/*
含义:通常用于发布彩色图像相关的数据。彩色图像由相机的彩色图像传感器输出,通过光电二极管和滤光片阵列将光信号转换为电信号,并经过图像处理生成彩色图像。
常见话题举例:如/camera/color/image_raw,发布的是未经处理的原始彩色图像数据,消息类型一般为sensor_msgs/Image;/camera/color/camera_info,发布的是彩色相机的内参信息,包括焦距、主点位置、畸变系数等,消息类型为sensor_msgs/CameraInfo。
/camera/depth/*
含义:用于发布深度相关的数据。深度图是深度相机视野内所有点的深度数据构成的一个 16bit 位深的单通道矩阵,深度图中的单个像素值是空间中物体的某个点到垂直于左单色镜头光轴并通过镜头光心平面的垂直距离,深度数据单位为毫米。
常见话题举例:如/camera/depth/image_raw,发布原始的深度图像数据,消息类型为sensor_msgs/Image;/camera/depth/camera_info,发布深度相机的内参信息,用于将深度数据转换为三维坐标等,消息类型为sensor_msgs/CameraInfo;/camera/depth/points,发布的是点云数据,点云图是深度相机视野内所有点的点云信息构成的数据矩阵,每个点的点云信息为三维坐标(x,y,z),消息类型一般为sensor_msgs/PointCloud2。
/camera/infra1/*
含义:通常与相机的第一个红外摄像头相关,用于发布该红外摄像头捕获的图像数据等信息。
常见话题举例:如/camera/infra1/image_rect_raw,发布的是经过校正的第一路红外摄像头捕获的原始图像数据,消息类型一般为sensor_msgs/Image。
/camera/infra2/*
含义:与相机的第二个红外摄像头相关,用于发布第二个红外摄像头的图像数据等信息。
常见话题举例:如/camera/infra2/image_rect_raw,发布的是经过校正的第二路红外摄像头捕获的原始图像数据,消息类型一般为sensor_msgs/Image。

726

被折叠的 条评论
为什么被折叠?



