使用ROS2 Launch启动多个usb相机

一、摘要

  • usb相机驱动的获取及配置可以参考上一篇博客:ROS 2 中(单/双目)USB相机驱动安装
    目录结构

  • 多个相机需要连接不同的usb端口,如果将多个usb相机使用扩展坞(Hub)连接电脑的一个usb端口,只能启动一个相机并出现如下错误:
    报错输出

  • 正常识别设备启动后,终端会有如下输出:
    正常输出

  • 源码包中的launch文件有点麻烦,这里提供一个简单的版本, 可以加载源码包中config目录内的yaml配置文件,可以在这里对多个相机进行不同的配置。
    配置文件

  • 在launch目录下创建camera.launch.py文件之后使用colcon build指令编译相机驱动源码,将launch文件复制到install目录下。
    启动文件

二、Launch文件

import os
import sys
from pathlib import Path  # noqa: E402
from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription  
from launch_ros.actions import Node  


dir_path = os.path.dirname(os.path.realpath(__file__))
sys.path.append(dir_path)

USB_CAM_DIR = get_package_share_directory('usb_cam')

config_path_camera_1=Path(USB_CAM_DIR, 'config', 'params_1.yaml')   # auto get camera_1 config dir
config_path_camera_2=Path(USB_CAM_DIR, 'config', 'params_2.yaml')   # auto get camera_2 config dir
  
def generate_launch_description():  

    camera1_node = Node(  
        package='usb_cam',                   # 相机节点的ROS包名  
        executable='usb_cam_node_exe',       # 相机节点的可执行文件名  
        name='camera_01',                    # 节点名  
        namespace='camera1_ns',              # 节点的命名空间  
        parameters=[  
            config_path_camera_1             # 相机配置文件
        ],  
        output='screen'                      # 将节点的输出打印到屏幕
    )  
    camera2_node = Node(  
        package='usb_cam',  
        executable='usb_cam_node_exe',  
        name='camera_02',  
        namespace='camera2_ns',  
        parameters=[  
            config_path_camera_2 
        ],  
        output='screen'  
    )  
  
    # 返回包含两个相机节点的launch描述  
    return LaunchDescription([  
        camera1_node,  
        camera2_node  
    ])

小结

以上是关于ros2中使用usb相机的简单分享,如果有相关错误欢迎在评论区讨论,谢谢!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值