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