识别色带后执行相应命令

ops/2024/10/18 17:42:39/

识别到红色和绿色色带后,会执行相应的命令以调整机器狗的行为,具体如下:

  1. 红色色带识别

    • track 模式下,当识别到红色色带时,机器人会进入 divergeright 模式,表示机器人需要在接下来的行动中向右分岔。
    • 具体代码如下:
      if (divergerColor == "red") {inRange(ZoomOutimage, colorgroup.redMin, colorgroup.redMax, frame2);  // 二值化红色number = 0;for (int i = 0; i < frame2.rows; i++) {for (int j = 0; j < frame2.cols; j++) {if (frame2.at<uchar>(i, j) == 255) {number++;}}}// 出现红色条带if (number >= 500) {mythread.mode = divergeright;cout << "recognize red" << endl;divergerColor = "null";return;}
      }
      
    • divergeright 模式下,机器人会根据 diverge2TransientProcess 的值调整目标中线均值和运动参数,以确保向右分岔行驶。
  2. 绿色色带识别

    • track 模式下,当识别到绿色色带时,机器人会进入 divergeleft 模式,表示机器人需要在接下来的行动中向左分岔。
    • 具体代码如下:
      if (divergerColor == "green") {inRange(ZoomOutimage, colorgroup.greenMin, colorgroup.greenMax, frame2);  // 二值化绿色number = 0;for (int i = 0; i < frame2.rows; i++) {for (int j = 0; j < frame2.cols; j++) {if (frame2.at<uchar>(i, j) == 255) {number++;}}}// 出现绿色条带if (number >= 500) {mythread.mode = divergeleft;cout << "recognize green" << endl;divergerColor = "null";return;}
      }
      
    • divergeleft 模式下,机器人会根据 divergeTransientProcess 的值调整目标中线均值和运动参数,以确保向左分岔行驶。

机器人状态模式和行为

机器人有多种状态模式,每种模式对应不同的行为和运动参数:

  • track:循迹模式,机器人在赛道中行驶并识别各种色带以决定后续行动。
  • divergeright:向右分岔模式,机器人根据中线均值和运动参数调整确保向右分岔行驶。
  • divergeleft:向左分岔模式,机器人根据中线均值和运动参数调整确保向左分岔行驶。
  • residencerightresidenceleft:住户区模式,机器人进入住户区并执行相应的运动和定位调整。
  • revise:位于集散区矫正自身位置,机器人通过计算中线均值和斜率调整自己的位置。

运动参数

机器狗的运动参数包括:

  • gait_type:步态类型,3表示运动,4表示停止。
  • step_height:步高。
  • stand_height:站立高度。
  • v_des[3]:期望速度向量,包含前进速度、横移速度和转向速度。
  • rpy_des[3]:期望姿态角(滚转、俯仰、偏航)。

其他功能

  • 机器人通过二值化处理图像以识别不同颜色的条带。
  • 机器人通过计算中线和赛道两侧边缘的平均值和斜率来调整其行驶路径。
  • 机器人在不同模式下根据不同的状态值(如 residenceTransientProcessdivergeTransientProcess)调整运动参数,以完成特定任务。

http://www.ppmy.cn/ops/56343.html

相关文章

Elasticsearch 建议(Suggesters):实现自动补全和拼写检查

引言 在现代搜索引擎中&#xff0c;自动补全和拼写检查功能已成为提升用户体验的重要工具。Elasticsearch&#xff0c;作为一款强大的分布式搜索和分析引擎&#xff0c;提供了多种Suggesters API来帮助开发者实现这些功能。本文将详细介绍Elasticsearch中的四种主要Suggester—…

328. 奇偶链表

https://leetcode.cn/problems/odd-even-linked-list/https://leetcode.cn/problems/odd-even-linked-list/ 解题思路&#xff1a; 把第一个和第二个节点分别作为奇数、偶数的头节点&#xff0c;当遇到奇节点&#xff0c;删除&#xff0c;并插入到奇数头节点后&#xff0c;这样…

CC7利用链分析

分析版本 Commons Collections 3.2.1 JDK 8u65 环境配置参考JAVA安全初探(三):CC1链全分析 分析过程 CC7,6,5都是在CC1 LazyMap利用链(引用)的基础上。 只是进入到LazyMap链的入口链不同。 CC7这个链有点绕&#xff0c;下面顺着分析一下利用链。 入口类是Hashtable&…

Git 操作总结

1. 安装、Git 环境配置 1.1 安装 Git 官方版本可以在 Git 官方网站下载&#xff1a;打开 https://git-scm.com/download/win&#xff0c;选择相应版本即可。 Git 安装完成后&#xff0c;可以在开始菜单中看到 Git 的三个启动图标&#xff08;Git Bash、Git CMD、Git GUI&…

Vue图片路径问题分析

问题&#xff1a;require(/assets/UTA2070Image/倒三角形.png), // 引入本地图片资源这种路径是怎么看&#xff0c;还有为什么要用require为什么要用为什么不要.. 回答 在 Vue.js 项目中&#xff0c;特别是使用 Vue CLI 创建的项目&#xff0c;路径解析与模块绑定由 Webpack 处…

头歌资源库(23)资源分配

一、 问题描述 某工业生产部门根据国家计划的安排&#xff0c;拟将某种高效率的5台机器&#xff0c;分配给所属的3个工厂A,B,C&#xff0c;各工厂在获得这种机器后&#xff0c;可以为国家盈利的情况如表1所示。问&#xff1a;这5台机器如何分配给各工厂&#xff0c;才能使国家盈…

//usr/lib/libgdal.so.20:对‘sqlite3_column_table_name’未定义的引用

//usr/lib/libgdal.so.20:对‘sqlite3_column_table_name’未定义的引用 编译安装sqlite3之后&#xff0c;会出现 “ //usr/lib/libgdal.so.20:对‘sqlite3_column_table_name’未定义的引用”的报错&#xff0c;主要是因为之前安装低版本sqlite3的时候改了系统的文件导致的 …

若依 / ruoyi-ui:执行yarn dev 报错 esnext.set.difference.v2.js in ./src/utils/index.js

一、报错信息 These dependencies were not found: * core-js/modules/esnext.set.difference.v2.js in ./src/utils/index.js * core-js/modules/esnext.set.intersection.v2.js in ./src/utils/index.js * core-js/modules/esnext.set.is-disjoint-from.v2.js in ./src/utils…