找回密码
 立即注册
查看: 565|回复: 0

中级教程--小车视觉巡线

[复制链接]

140

主题

15

回帖

816

积分

管理员

积分
816
发表于 2023-4-23 17:22:26 | 显示全部楼层 |阅读模式
巡线功能主要是使 ROS 机器人根据特定颜色的轨迹进行运动, 添加了雷达避障的节点, 巡线运动过程中若遇到障碍时会停止运动, 若视野内无选定颜色轨迹时, 小车也会停止运动。

注意:请把小车相机角度调节为斜向下,尽量看到最近的线路。

快捷方式:



常规方式:
roslaunch simple_follower line_follower.launch




弹窗的作用是选择小车要跟随运动的轨迹的颜色, 这里我们以红色为例, 将滑块通过鼠标点击的方式放置在 0处, 根据弹窗提示 0 对应颜色为红色



使用图传功能查看时, 我们可以在左上角选择对应的 RGB 话题, 此时可以看到小车面前是有一条红色的线, 而弹窗中白色部分的出现也意味着摄像头信息处理后已经提取到了红色信息, 小车将会沿着红线进行运动。 白色部分只有一小段是因为在我们的源码中仅截取了视野范围内最靠近小车的一小段进行处理。




常见问题:


1、小车放置到线路上,停止不动
解决方法:
环境光线以及跑道颜色色差会影响相机识别能力。默认的HSV颜色参数可以适应大部分场景,但有些场景,比如光线很暗、跑道色差严重等,会导致识别不到,或者识别效果差。此时可以通过调节源码中的HSV值来解决。
示例如下,比如需要识别黄色跑道:
1、在小车启动的前提下,启动hsv调节脚本,会弹出3个窗口,依次为原始相机窗口、最终识别窗口、HSV调节窗口





2、在HSV调节窗口中,先参考下面的常用颜色值,把滑动条调节到对应值
参数格式:(H-LOW,S-LOW,V-LOW,H-Hight,S-Hight,V-Hight)

black = (0,0,0,180,255,46)
red = (0,136,38,203,255,255)
blue = (90,90,90,110,255,255)
green= (65,70,70,85,255,255)
yellow = (26,43,46,34,255,255)

3、然后逐步微调每个滑动条,直到识别输出窗口只识别黄色跑道即可。


4、然后把对应的值保存到巡线脚本中,方便下次启动后直接就识别。




2、如何多台小车同时进行识别线路
解决方法
1、联网时需要为每个小车分配一个ID,用于区分不同的小车话题,可以参考高级教程--(多机器人)基础设置
2、修改line_follow.py源码中小车监听的话题,这里用id为robot_01的小车为例


3、如果有多个小车,可以在脚本中通过传入小车ID方式启动对应的小车。或者最简单的方法是复制多份py文件,然后修改每个源码文件加上对应小车id,并直接在命令行通过python3 xxx.py的方式启动。














本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

浩克机器人

GMT+8, 2025-5-10 04:31 , Processed in 0.082041 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表