ROS 2 中(单/双目)USB相机驱动安装

1、USB_CAM

  • USB_CAM:并非传统意义上的Linux驱动,而是一个ROS(Robot Operating System,机器人操作系统)驱动。它是一个应用程序,通过V4L2接口设置摄像头并获取数据,然后利用ROS接口发布主题(Topic),供其他节点使用,V4L2是Linux内核提供给应用程序访问音视频驱动的统一接口,用于采集图片、视频和音频数据。
  • USB_CAM主要用于ROS环境中,作为连接USB摄像头和ROS系统的桥梁。它负责从摄像头捕获图像或视频数据,并转换为ROS系统可以理解的格式(如sensor_msgs::Image),然后发布到ROS主题上,供其他ROS节点订阅和使用。
  • ROS中使用摄像头的前提是,摄像头在Linux系统下是可识别的,通常来说UVC协议的USB摄像头都可以正常使用,大部分笔记本电脑自带的摄像头都是UVC协议的,所以也可以直接使用。
  • 驱动源码参考Github链接,拿来即用,只需修改部分参数适配本地相机

2、检查相机

  • 启动相机前,应该确认usb相机能够被Linux系统识别,执行指令:ls /dev/video*查看是否有相机设备被识别,输出结果如下:相机设备识别这里偶数号(/dev/video0)表示真实物理相机,而奇数号(/dev/video1)则表示虚拟相机(无法正常打开),一般来说一个镜头会有一对奇偶设备号,(如intel的RealSense相机:双目红外+可见光)但是对于一部分非标件的双目相机,如下图所示,会被识别为一个相机设备且会将双目图像水平拼接为一张图发出,所以在使用的时候可能需要通过代码将两幅图像分开使用。双目相机
  • 设备号有利于后续开发过程中有针对性的获取某个镜头设备的数据,可以通过修改相机驱动包中特定yaml配置文件实现。

3、启动相机

  • 创建工作空间:mkdir -p usb_driver/src

  • 下载驱动源码:git clone https://github.com/ros-drivers/usb_cam.git

  • 进入配置目录:cd usb_driver/src/usb_cam/config

  • 修改params_1.yaml:主要修改设备号、帧率及分辨率,其它参数根据具体相机选择性修改。
    配置文件

  • 如果需要将相机的参数发布出去,可以修改camera_info.yaml中的各项参数,启动相机驱动后会以 /camera_info为话题名发布。

  • 修改完参数后,回到usb_driver目录下,执行指令:colcon build编译源码,之后执行source install/setup.bash初始化环境变量。

  • 执行指令:ros2 run usb_cam usb_cam_node_exe --ros-args --params-file /path/to/usb_driver/src/usb_cam/config/params_1.yaml启动相机。

  • 启动相机后,执行指令:ros2 topic list查看话题名称,图像数据会以 /image_raw为话题名发布。
    图像话题

4、小结

通过源码可以有更多更灵活的方式启动相机,可以启动多个相机以及通过launch方式启动,可以参考github上的指令实现。对于设备号为什么会有奇偶之分暂时不是太明白,欢迎在评论区讨论!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值