JetRacer ROS AI Kit 教程三、ROS OpenCV

来自Waveshare Wiki
跳转至: 导航搜索

JetRacer ROS AI Kit 进阶教程目录

前言

  • 由于机器人不方便显示图像,OpenCV如下程序均在虚拟机端运行。机器人启动摄像头节采集图像并压缩传输,虚拟机接收压缩图像并处理。
  • 在机器人端运行如下命令启动摄像头节点。
roslaunch jetracer csi_camera.launch   #启动摄像头节点
JetRacer ROS 38.png
  • 【注意:运行OpenCV程序前必须保证机器人摄像头节点正常启动,否则程序运行没响应或者出错】

步骤1、使用CV Brige将ROS图像话题转为OpenCV图像

  • 通过cv brige 将ros 图像话题转为opencv图像,并将图像转为灰度图再发布ROS图像话题
roslaunch jetracer cv_video.launch
J15.png

步骤2、图像校准

  • 通过camera_info相机信息话题数据校准摄像头图像,运行此程序前需要先校准摄像头
roslaunch jetracer calibration.launch   #摄像头校准
J16.1.png
  • 摄像头图像形变得到修复

步骤3、轮廓检测

  • 寻找原始图像的轮廓并显示,最后为轮廓添加彩色动感效果
roslaunch jetracer contours.launch
J17.png

步骤4、颜色识别

  • 程序运行后将检测图像中的蓝色,并将蓝色图像单独过滤显示
roslaunch jetracer color_tracking.launch
J18.png
  • 程序默认检查的颜色为蓝色,也可以通过鼠标框选图像中色彩来设置识别的颜色。
  • 【注意:选择鲜艳的颜色容易识别;框选中的范围必须是单色,框选多种颜色会导致HSV范围太宽而不能正常识别】
J19.png
  • 框选颜色后也可以通过动态参数调整HSV范围来微调颜色。运行如下命令启动动态参数调节界面,选择color_tracking
  • 优先调节色调H的范围确定颜色类型,然后在调节饱和度S 和明度V的范围,使识别效果更佳
 rosrun rqt_reconfigure rqt_reconfigure
J20.png

步骤5、运动检测

  • 输入以下命令启动运动检测节点
roslaunch jetracer motion_detect.launch
  • 启动程序后,在图像中将会检测运动的物体并把它框出来,右边图像显示运动物体的残影
J21.png

步骤6、物体追踪

  • 输入以下命令启动物体追踪节点
roslaunch jetracer object_tracking.launch
  • 启动程序后,在图像窗口中拖动速度选择要追踪的物体,创建追踪对象后左上角将显示追踪算法类型,移动物体后,蓝色框也将跟随物体移动
J22.png
  • 注意:选择图像复杂的物体更容易追踪,移动速度过快容易丢失追踪对象
  • 程序支持['BOOSTING', 'MIL', 'KCF', 'TLD', 'MEDIANFLOW', 'GOTURN', 'MOSSE', 'CSRT']等八种追踪算法,默认使用的MOSSE算法,此算法速度快,但是准确率低。选择KCF准确度会更高,但是此算法对网络传输速度要求更高,网络传输速度慢时容易导致图像延迟卡顿
  • 输入以下命令采用KCF追踪算法
roslaunch jetracer object_tracking.launch tracker_type:="KCF"


步骤7、AR视觉

  • 输入以下命令启动AR视觉节点
roslaunch jetracer pose.launch
  • 程序运行后将检测棋盘纸,并在棋盘纸上显示一个立方体,棋盘纸移动立方体也跟着移动
J23.png

步骤8、人脸检测

  • 输入以下命令启动人脸检测节点
roslaunch jetracer face_detect.launch
  • 程序运行后将在图像中检测人脸,当检测到人脸后将用绿色方框显示出人脸位置
J24.png

步骤9、视觉巡线

  • 注意:视觉巡线需要启动摄像头节点和机器人底盘节点,如果摄像头节点已启动不需要重复启动。
roslaunch jetracer jetracer.launch      #启动底盘节点 
roslaunch jetracer csi_camera.launch  #启动摄像头节点
  • 输入以下命令启动视觉巡线节点
roslaunch jetracer line_follow.launch
  • 程序启动后,拖动鼠标框选线选择颜色,左边为识别的图像,右边为巡线效果。
  • + 表示识别图像的中心位置,然后根据图中蓝线斜率调节机器人角速度实现巡线效果
J25.png
  • 程序同时也启动了动态参数调试界面,如果没有显示line_follow可以点击 Refresh 更新一下。
  • 你可通过动态参数调整HSV范围来微调颜色。优先调节色调H的范围确定颜色类型,然后在调节饱和度S 和明度V的范围,使识别效果更佳
J26.png
  • 其中:
    • linear为设置小车线速度
    • kp,kd为电机速度PID参数
    • test为机器人启动开关
  • 选择好颜色后,可以勾选test启动机器人开始选择寻迹线,当识别到线时机器人沿线运动,冲出线外或者没识别到线时机器人停止
  • 初次启动linear的值设置小一点,速度慢一点防止冲出线外。
  • 调节Kp,Kd值实现更换的巡线效果,先调节比例参数Kp,然后再调节积分参数kd。【你可以启动电机波形显示来观察改变Kp、Kd后响应结果】