ROS 视觉 3 | 基于HSV巡线行驶

注意!该教程对应ROS套件用户
opencv应用有很多demo,这里拿HSV颜色模型来实现巡线行驶。为什么选HSV,因为HSV色彩空间是当前最常用的,HSV可用到道路、红绿灯、车牌识别等场合

HSV简介

HSV色彩空间将颜色信息存储在 RGB 色点的圆柱表示中。它试图描绘人眼所感知的颜色。下面介绍HSV各个分量的取值范围:

  • 色调H:0°~360°(opencv是0°~180°)
    用角度度量,从红色开始按逆时针方向计算,红色为0°,绿色为120°, 蓝色为240°。

  • 饱和度S: 0-255
    饱和度S表示颜色接近光谱色的程度。一种颜色,可以看成是某种光谱色与白色混合的结果。其中光谱色所占的比例愈大,颜色接近光谱色的程度就愈高,颜色的饱和度也就愈高。饱和度高,颜色则深而艳。光谱色的白光成分为0,饱和度达到最高。通常取值范围为0%~100%,值越大,颜色越饱和。

  • 亮度V: 0-255
    明度表示颜色明亮的程度,对于光源色,明度值与发光体的光亮度有关;对于物体色,此值和物体的透射比或反射比有关。通常取值范围为0%(黑)到100%(白),它主要用于颜色分割目的。

巡线检测与行驶

这里直接开始巡线与检测目标的测试

  1. 在主控端启动灵遨基础驱动
    roslaunch lingao_bringup robot.launch
    
  2. 在主控端启动寻线节点
    roslaunch lingao_follower lingao_line_follow.launch
    
  3. 在远程端打开image_view图像查看
    rosrun rqt_image_view rqt_image_view
    

    选择图片节点/lingao_line_follow_node/hsv_detection

  4. 在远程端打开rqt_reconfigure动态调参

    rosrun rqt_reconfigure rqt_reconfigure
    


    这里可看到Line Detect表示检测到目标

接下来点击robot_run机器人开始跟随线行驶,可设置跟随速度speed

HSV调参

这里介绍使用Opencv的HSV节点调整参数

  1. 启动上面巡线检测节点

  2. 启动Opencv的hsv节点

    roslaunch lingao_opencv lingao_hsv_color_filter.launch 
    
  3. 在本地端启动图像查看
    rosrun rqt_image_view rqt_image_view
    

    选择图片节点/hsv_color_filter/image

  4. 使用reconfigure调参

    rosrun rqt_reconfigure rqt_reconfigure
    

比如下面调整三种颜色

  • 黄色检测

  • 红色检测

  • 蓝色检测

这里有个HSV的Opencv分量表,是通过实验计算的模糊范围,可作为参考,实际h值要乘以2

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。
电子工坊 » ROS 视觉 3 | 基于HSV巡线行驶

发表评论

提供最优质的资源集合

立即查看 了解详情