USB图像采集

功能介绍

为实现环境感知能力,机器人产品中通常会搭载摄像头以获取图像信息。USB摄像头易于获取,使用方便,通用性好,TogetheROS.Bot添加了对USB摄像头的支持,支持ROS2标准图像消息。

代码仓库:https://github.com/HorizonRDK/hobot_sensors

支持平台

平台 运行方式
地平线RDK Ubuntu 20.04
X86 Ubuntu 20.04

准备工作

地平线RDK平台

  1. 确认手中USB摄像头工作正常,将USB摄像头接入地平线RDKUSB插槽

  2. 地平线RDK已烧录好地平线提供的Ubuntu 20.04系统镜像

  3. 地平线RDK已成功安装tros.b

  4. 确认PC机能够通过网络访问地平线RDK

X86平台

  1. 确认手中USB摄像头工作正常,将USB摄像头接入PC或服务器USB插槽

  2. 确认X86平台系统为Ubuntu 20.04,且已成功安装tros.b

使用方式

地平线RDK和X86平台使用方式相同,其中以地平线RDK平台为例:

  1. 通过SSH登录地平线RDK,确认USB摄像头设备名称,这里以/dev/video8为例

  2. 并通过下述命令启动USB摄像头

    # 配置 tros.b 环境:
    source /opt/tros/local_setup.bash
    # launch方式启动:
    ros2 launch hobot_usb_cam hobot_usb_cam.launch.py usb_video_device:=/dev/video8
    
  3. 如程序输出如下信息,说明节点已成功启动

    [ERROR] [1662017254.558565200] [hobot_usb_cam]: Camera calibration file:  not exist!
    [WARN] [1662017254.559233995] [hobot_usb_cam]: get camera calibration parameters failed
    [INFO] [1662017254.773617972] [hobot_usb_cam]: Set resolution to 640x480
    
    [INFO] [1662017254.803259017] [hobot_usb_cam]: Set framerate to be 30
    
    [WARN] [1662017255.036681491] [hobot_usb_cam]: Unable to publish camera info.
    
    [INFO] [1662017255.037049326] [hobot_usb_cam]: publish image 640x480 encoding:2 size:98583
    
    [WARN] [1662017255.072076018] [hobot_usb_cam]: Unable to publish camera info.
    
    [INFO] [1662017255.072359603] [hobot_usb_cam]: publish image 640x480 encoding:2 size:98562
    
    [WARN] [1662017255.103836613] [hobot_usb_cam]: Unable to publish camera info.
    
    [INFO] [1662017255.104098489] [hobot_usb_cam]: publish image 640x480 encoding:2 size:98643
    ...
    
  4. Web端查看USB摄像头图像,另起一个终端:

    # 配置 tros.b 环境:
    source /opt/tros/local_setup.bash
    # 启动websocket
    ros2 launch websocket websocket.launch.py websocket_image_topic:=/image websocket_only_show_image:=true
    
  5. PC打开浏览器(chrome/firefox/edge)输入http://IP:8000(IP为地平线RDK IP地址),点击左上方Web端展示即可查看USB摄像头实时画面 image-usb-camera

注意事项

  1. USB摄像头需要进行标定,并设置相机标定文件的读取路径,否则无法发布相机内参,但不影响其它功能

  2. 设置相机标定文件读取路径,具体步骤如下:

    # 配置 tros.b 环境:
    source /opt/tros/local_setup.bash
    # launch 方式启动
    ros2 launch hobot_usb_cam hobot_usb_cam.launch.py usb_camera_calibration_file_path:=(实际标定文件绝对路径)