传感器之相机介绍和使用

文章介绍了机器人系统中相机作为重要传感器的角色,包括单目相机、双目相机和深度相机的工作原理和应用。单目相机无法直接获取深度信息,而双目相机通过两个相机的视角差计算深度。深度相机,如RGB-D相机,利用结构光或ToF技术测量物体深度。文章还提供了在树莓派上配置和测试USB摄像头的步骤,涉及ROS和相关软件的安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相机是机器人系统中另一比较重要的传感器,与雷达类似的,相机也是机器人感知外界环境的重要手段之一,并且随着机器视觉、无人驾驶等技术的兴起,相机在物体识别、行为识别、SLAM中等都有着广泛的应用。

根据工作原理的差异可以将相机大致划分成三类:单目相机、双目相机与深度相机。

1.单目相机

单目相机是将三维世界二维化,它是将拍摄场景在相机的成像平面上留下一个投影,静止状态下是无法通过单目相机确定深度信息。向如下动图展示的一样,在二维图形中,甚至不能根据图片中物体的大小来判断物体距离。

2.双目相机

识破上面的“骗局”只需要移动单目相机,再换一个角度拍摄一张照片即可,当角度切换后,可以将两张照片组合还原为一个立体的三维世界。

双目相机的原理也是如此,双目相机是由两个单目相机组成的,即便在静止状态下,也可以生成两张图片,两个单目相机之间存在一定的距离也称之为基线,通过这个基线以及两个单目项目分别生成的图片,可以来估算每个象素的空间位置。

3.深度相机

深度相机也称之为RGB-D相机,顾名思义,深度相机也可以用于获取物体深度信息。深度相机一般基于结构光或ToF(Time-of-Flight)原理实现测距。

前者是通过近红外激光器,将具有一定结构特征的光线投射到被拍摄物体上,再由专门的红外摄像头进行采集。光线照射到不同深度的物体上时,会采集到不同的图像相位信息,然后通过运算单元将这种结构的变化换算成深度信息,后者实现则类似于激光雷达,也是根据光线的往返时间来计算深度信息。

使用流程如下:

  1. 硬件准备;

  1. 软件安装;

  1. 启动并测试。

1.硬件准备

当前直接连接树莓派即可,如果连接的是虚拟机,注意VirtualBox或VMware的相关设置。

2.软件准备

安装USB摄像头软件包,命令如下:

sudo apt-get install ros-ROS版本-usb-cam

或者也可以从 github 直接下载源码:

git clone https://github.com/ros-drivers/usb_cam.git
3.测试
1.launch文件准备

在软件包中内置了测试用的launch文件,内容如下:

<launch>
  <node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" >
    <param name="video_device" value="/dev/video0" />
    <param name="image_width" value="640" />
    <param name="image_height" value="480" />
    <param name="pixel_format" value="yuyv" />
    <param name="camera_frame_id" value="usb_cam" />
    <param name="io_method" value="mmap"/>
  </node>
  <node name="image_view" pkg="image_view" type="image_view" respawn="false" output="screen">
    <remap from="image" to="/usb_cam/image_raw"/>
    <param name="autosize" value="true" />
  </node>
</launch>

节点 usb_cam 用于启动相机,节点 image_view 以图形化窗口的方式显示图像数据,需要查看相机的端口并修改 usb_cam 中的 video_device 参数,并且如果将摄像头连接到了树莓派,且通过 ssh 远程访问树莓派的话,需要注释 image_view 节点,因为在终端中无法显示图形化界面。

2.启动launch文件
roslaunch usb_cam usb_cam-test.launch
3.rviz显示

启动 rviz,添加 LaserScan 插件:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值