4.2冰达机器人:视觉实例-机器人视觉循线、视觉实例-调整循线颜色

4.2.10a视觉实例-机器人视觉循线

本节内容演示一个机器人视觉的视觉循线实例

准备工作:布置一块区域作为循线场所,如下图所示。用蓝色胶带在地面贴一条路线(机器人极限转弯半径0.5m,不要贴得过于曲折),将机器人摄像头调整为倾向地面30度左右,机器人放置到路线上。

机器人端启动摄像头roslaunch robot_vision robot_camera.launch

机器人端启动视觉循线roslaunch robot_vision line_follow.launch

PC用两个终端打开两个rqt_image_view工具,分别订阅/image_raw/compressed和/result_image/compressed

左侧图像是循线的结果,红色点是机器人定位到线的中心位置,右侧为正常摄像头图像。

在右侧窗口改为订阅/mask_image/compressed就可以显示机器人找到的线的位置

机器人端启动底盘roslaunch base_control base_control.launch

机器人就会自动开始沿着线走到线的末端。

4.2.10b视觉实例-调整循线颜色

本节内容介绍循线颜色的调整,在上一节中演示了一个机器人视觉的视觉循线实例,在例程中默认使用的是蓝色线条。接下来介绍如果想用其他颜色的线要如何调整。

首先在蓝色线旁边布置一条其他颜色的线,这里以红色为例

机器人端启动摄像头roslaunch robot_vision robot_camera.launch

机器人端启动循线节点并传入test_mode参数:

roslaunch robot_vision line_follow.launch test_mode:=true

PC端用两个终端打开两个rqt_image_view工具,分别订阅/mask_image/compressed和/result_image/compressed

可以看到左侧图像有一个红色准心,这是整个图像的中心。而右侧图像就是机器人找到的蓝色线。

在启动循线时我们传入了test_mode参数,这个参数会让不断输出左侧图像中红色准心处的HSV色彩空间值。例如现在显示的就是地面的HSV值。

将机器人的位置移动一下,让准心对准红色路线,此时信息已经变成红色线路的HSV值。

PC启动动态调参工具rosrun rqt_reconfigure rqt_reconfigure

HSV参数的上限必须严格限制在检测到的参数范围,因为我这里使用的红线上面还带有白色log,所以下限适当放宽提高获取图像的效果。可以看到现在/mask_image/compressed话题输出的图像就只显示处红色线条的位置了。

因为动态调参的结果是一次性的,只在这一次应用中有效,如果想要持续生效需要直接修改机器人端的launch文件。

roscd robot_vision/launch

vim line_follow.launch

将line_follow.launch文件中的HSV值直接改成红色线路的值

机器人端启动摄像头roslaunch robot_vision robot_camera.launch

机器人端启动视觉循线roslaunch robot_vision line_follow.launch

PC用两个终端打开两个rqt_image_view工具,分别订阅/mask_image/compressed和/result_image/compresse

这里重新循线后就只显示红色线路了。我这里因为光线变化,显示效果受到影响,大家自己操作的时候遇到了可以重新修改参数调节。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/636936.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode8- 二叉树展开为链表

给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。 示例 1&#xf…

【ETAS CP AUTOSAR工具链】基本概念与开发流程

基于CP AUTOSAR进行控制器软件开发已渐渐成为业界的主流。CP领域中除了VECTOR,ETAS,EB,Mentor等外资公司,还有诸如普华,东软,恒润,华为等国产基础软件公司。 ETAS是在2015年推出的AUTOSAR量产版…

react09 hooks(useState)

react-09 hooks(useState) hooks组件(函数组件动态化) 其本质就是函数组件,引用一些hooks方法,用来在函数组件中进行例如状态管理,模拟类组件的生命周期等,只能运用到函数组件中 ho…

VMD变分编码器

ref:【变分模态分解(VMD)及其Python实现-哔哩哔哩】 https://b23.tv/bB9zPX1 注意看幅值 分别是1.0 0.25 1/16 画一张图上 蓝色:低频 绿色:高频信号 频谱看不懂 应用实例2

Linux实验一:NAT、桥接方式的验证

实验名称:在虚拟机中安装RHEL7,验证NAT、桥接上网方式 实验结果: 创建虚拟机 NAT模式 自动获取IP 手动配置IP 桥接模式 自动获取IP 手动配置IP 总结和分析:

深入解析K折交叉验证:原理、应用及优化策略(python实现 代码详解)

目录 一、K折交叉验证介绍 二、K折交叉验证的作用 三、在K折交叉验证中,每次模型的训练都是独立于上一次的 四、K折交叉验证用于比较不同模型的性能(python实现) 五、K折交叉验证用于超参数调优 六、K折交叉验证用于选择最优训练集和验证集,从而训练…

盲盒一番赏小程序:打开未知的惊喜之旅

在快节奏的生活中,人们总是渴望寻找一份属于自己的小确幸。盲盒一番赏小程序,正是这样一个为你带来无尽惊喜与乐趣的平台。我们精心打造这一小程序,让每一次点击都成为一次全新的探索,让每一次选择都充满无限可能。 盲盒一番赏小…

【Linux文件系统开发】认知篇

【Linux文件系统开发】认知篇 文章目录 【Linux文件系统开发】认知篇一、文件系统的概念二、文件系统的种类(文件管理系统的方法)三、分区四、文件系统目录结构五、虚拟文件系统(Virtual File System)1.概念2.原因3.作用4.总结 一…

【GoWeb框架初探————XORM篇】

1. XORM xorm 是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。 1.1 特性 支持 Struct 和数据库表之间的灵活映射,并支持自动同步事务支持同时支持原始SQL语句和ORM操作的混合执行使用连写来简化调用支持使用ID, In, Where, Limit, Join, Havi…

请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx所指的数组中。

本文收录于专栏:算法之翼 https://blog.csdn.net/weixin_52908342/category_10943144.html 订阅后本专栏全部文章可见。 本文含有题目的题干、解题思路、解题思路、解题代码、代码解析。本文分别包含C语言、C++、Java、Python四种语言的解法和详细的解析。 题干 请编写一个函…

vector简单介绍

目录 学习语法,不必拘泥,重要的是要学会和理解。所有的一切,例如做题,学习、看书、各种行为都是手段,为着我们更好的运用。因为,最终都是为了更好的去理解某个东西,以便于更好的去改造这个世界…

C语言 | 自定义类型:联合和枚举

目录: ----前言 1. 联合体 1.1 联合体类型的声明 1.2 联合体的特点 1.3 相同成员的结构体和联合体对比 1.4 联合体大小的计算 1.5 联合的使用 1.6联合体的练习 2. 枚举 2.1 枚举类型的声明 2.2 枚举类型的优点 2.3 枚举类型的使用 --前言: c语言中内…