最近收到一些反馈,不多但是都非常有价值,感谢反馈的朋友们。关于ROS2的实践和应用类型课程已经开发完成,ROS1最终版Noetic也会出一版纪念版镜像配合教程,但博客更新主要集中于ROS2的相关应用。

usb_cam这是非常典型有价值的摄像头包。主要有两个:

  • ros2_usb_camera-foxy-devel
  • usb_cam-ros2

代码差异还是有不少的。

推荐使用usb_cam。

  • ros2 launch usb_cam demo_launch.py

效果如下:

这个是640*480

如果需要1280*720,需要修改如下:

usb_cam_node.cpp

  // declare paramsthis->declare_parameter("camera_name", "default_cam");this->declare_parameter("camera_info_url", "");this->declare_parameter("framerate", 10.0);this->declare_parameter("frame_id", "default_cam");this->declare_parameter("image_height", 720);this->declare_parameter("image_width", 1280);this->declare_parameter("io_method", "mmap");this->declare_parameter("pixel_format", "yuyv");this->declare_parameter("video_device", "/dev/video0");

这样就可以吗?应该是不行的,还需要的操作如下:

先看下启动文件launch

# Copyright 2018 Lucas Walter
# All rights reserved.
#
# Software License Agreement (BSD License 2.0)
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
#  * Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#  * Redistributions in binary form must reproduce the above
#    copyright notice, this list of conditions and the following
#    disclaimer in the documentation and/or other materials provided
#    with the distribution.
#  * Neither the name of Lucas Walter nor the names of its
#    contributors may be used to endorse or promote products derived
#    from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.import argparse
from launch import LaunchDescription
from launch_ros.actions import Nodeimport os
import sysfrom ament_index_python.packages import get_package_share_directorydef generate_launch_description():ld = LaunchDescription()parser = argparse.ArgumentParser(description='usb_cam demo')parser.add_argument('-n', '--node-name', dest='node_name', type=str,help='name for device', default='usb_cam')args, unknown = parser.parse_known_args(sys.argv[4:])usb_cam_dir = get_package_share_directory('usb_cam')# get path to params fileparams_path = os.path.join(usb_cam_dir,'config','params.yaml')node_name = args.node_nameprint(params_path)ld.add_action(Node(package='usb_cam', executable='usb_cam_node_exe', output='screen',name=node_name,# namespace=ns,parameters=[params_path]))ld.add_action(Node(package='usb_cam', executable='show_image.py', output='screen',# namespace=ns,# arguments=[image_manip_dir + "/data/mosaic.jpg"])# remappings=[('image_in', 'image_raw')]))return ld

注意到如下这一段:

# get path to params fileparams_path = os.path.join(usb_cam_dir,'config','params.yaml')

需要修改啦:

camera_info.yaml

image_width: 1280
image_height: 720
camera_name: test_camera
camera_matrix:rows: 3cols: 3data: [438.783367, 0.000000, 305.593336, 0.000000, 437.302876, 243.738352, 0.000000, 0.000000, 1.000000]
distortion_model: plumb_bob
distortion_coefficients:rows: 1cols: 5data: [-0.361976, 0.110510, 0.001014, 0.000505, 0.000000]
rectification_matrix:rows: 3cols: 3data: [0.999978, 0.002789, -0.006046, -0.002816, 0.999986, -0.004401, 0.006034, 0.004417, 0.999972]
projection_matrix:rows: 3cols: 4data: [393.653800, 0.000000, 322.797939, 0.000000, 0.000000, 393.653800, 241.090902, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000]

params.yaml

/**:ros__parameters:video_device: "/dev/video0"framerate: 30.0io_method: "mmap"frame_id: "camera"pixel_format: "yuyv"image_width: 1280image_height: 720camera_name: "test_camera"camera_info_url: "package://usb_cam/config/camera_info.yaml"

参数合适吗?不管,效果还是有的:


然后,就可以愉快玩耍各种图形处理算法啦,欢乐不^_^


usb_cam的ROS2甜点相关推荐

  1. 如何使用usb_cam和image_transport_plugins插件进行usb摄像头的视频获取和实时图像传输

    如何使用usb_cam和image_transport_plugins插件进行usb摄像头的视频获取和实时图像传输 前言 一.使用usb_cam驱动进行usb摄像头的图像获取 二.使用image_tr ...

  2. ROS2概述和实践入门

    ROS可以说是⽬前机器⼈相关开源社区最流⾏的项⽬之⼀,它是⼀个易⽤且完备的机器⼈开发框架.⽣态乃⾄社区,海量的机器⼈开源项⽬(涵盖感知.规划.控制.定位.SLAM和建图.可视化等⼏乎所有机器⼈领域)均 ...

  3. 它来了!ROS2从入门到精通:理论与实战

    ROS是什么? 随着人工智能技术的飞速发展与进步,机器人的智能化已经成为现代机器人发展的终极目标.机器人发展的速度在不断提升,应用范围也在不断拓展,例如自动驾驶.移动机器人.操作机器人.信息机器人等. ...

  4. 把ros2录制的bag包转换为ros1格式的bag包

    把ros2录制的bag包转换为ros1格式的bag包 1 安装ros2和ros1之间通信的库包 2 把录制的ros2的bag包转换ros1格式的bag包 2.1 启动ros2到ros1的桥 2.2 使 ...

  5. 在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等

    在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包.录制包等 1 添加密钥和ros2下载 2 更新源和安装ros-eloquent-desktop及其依赖 3 配置环境 3.1 ...

  6. 在 ubuntu 20.04 LTS 上安装 ROS2 执行 rosdep update 命令时出现的问题的解决办法

    在 ubuntu 20.04 LTS 上安装 ROS2 执行 rosdep update 命令时出现的问题的解决办法 1.sudo rosdep init 在执行 sudo rosdep init 命 ...

  7. ROS | ROS2安装(Ubuntu 16.04版本:通过Debian包安装)

    ===================================================== github:https://github.com/MichaelBeechan CSDN: ...

  8. 安装Ubuntu 20.04.1 LTS (Focal Fossa)到U盘并安装ros2

    安装Ubuntu 20.04.1 LTS (Focal Fossa)到U盘并安装ros2 下载iso 将系统安装到U盘 Ubuntu ROS2 Foxy安装教程 PS:通过搜索各位大佬的博客,一套下来 ...

  9. 古月居ros课件_【古月居】ROS2探索总结系列

    ROS2探索总结(一)--ROS成长记 http://www.guyuehome.com/772 ROS2探索总结(二)--走近ROS2.0时代 http://www.guyuehome.com/80 ...

最新文章

  1. Windows上通过VLC播放器搭建rtsp流媒体测试地址操作步骤
  2. mybatis mysql crud_Mybatis的CRUD操作
  3. 数字签名和数字证书详解
  4. The connected J-Link is defective,Proper operation cannot be guaranteed......的解决办法
  5. 一个软件项目的总纲性的测试计划叫什么?
  6. POI以SAX方式解析Excel2007大文件(包含空单元格的处理) Java生成CSV文件实例详解...
  7. 微信第三方平台相关的转发
  8. OA系统:规避选型误区
  9. php 二进制 十六进制转换,php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码...
  10. linux 文件可视化工具下载,Linux 可视化管理工具
  11. Scrum板与Kanban如何抉择?kxqmoznsc板与按照rlooie
  12. 房屋租赁合同法律规定是怎样的
  13. 物联网系统网关开发与实现
  14. bps、Bps、pps的概念和区别
  15. 教师基本功训练计算机,教师教学基本功培训方案
  16. SMAA算法详解 - SearchTex
  17. 水果忍者(数学 叉积)
  18. python3 实现自动生成入账记录表
  19. EOS智能合约开发系列(四)
  20. Linux命令--wget

热门文章

  1. NSIS 之初体验 制作打印机i5100windows安装程序
  2. 位运算符之无符号右移(十进制整数)
  3. windows下开发PHP扩展(无需Cygwin)
  4. java远程唤醒_远程开机 .java
  5. SQL Server 2012 离线安装包
  6. html写的迷宫游戏,网页开发游戏,js实现游戏
  7. 使用Tensorflow构建属于自己的图片分类器
  8. 微服务构架 esb总线_好的微服务架构=企业服务总线(ESB)的灭亡?
  9. 长尾词组合,常见的3种长尾词组合方法
  10. siris 显著性排序网络代码解读(training过程)Inferring Attention Shift Ranks of Objects for Image Saliency