-
多传感器融合与环境感知技术
通过项目实践,掌握了基于视觉的环境感知方法,包括利用 OpenCV 实现颜色阈值分割(如colorgroup.cpp中对赛道边界、蓝色标记的识别)、边缘检测与中线提取算法(judgmentLeft/judgmentRight函数)。理解了如何通过图像预处理(中值滤波、尺寸缩放)提升算法鲁棒性,解决复杂光照下的赛道识别问题。
-
运动控制与机器人动力学应用
深入实践了四足机器人的运动控制逻辑,包括基于比例控制(P 控制)的路径跟踪(v_des[2] = 0.01*(goalAverage - average))、步态参数调优(gait_type、step_height)及姿态平衡控制(rpy_des姿态角调整)。掌握了通过 LCM 通信协议实现控制指令的实时传输(lcmutil.cpp),理解了机器人底层执行与上层决策的通信机制。
-
状态机与任务调度系统设计
通过mythread.cpp中的状态机逻辑(Mode枚举与switch-case状态切换),学会了如何将复杂任务(循迹、住户任务、分叉路选择)拆解为可执行的子状态,掌握了基于超时机制和事件触发的任务切换方法,确保机器人在动态环境中自主决策。
-
二维码识别与交互技术
实践了基于 OpenCV 的二维码检测与解码(qrcode_recognize_thread.cpp),掌握了图像透视变换(getPerspectiveTransform)校正倾斜二维码的方法,理解了机器视觉与任务指令触发的结合逻辑,为机器人添加了灵活的外部交互交互能力。
- 视觉算法优化与调试
- 负责基于
colorgroup.txt的颜色阈值参数调优,针对不同光照条件下的赛道(白色边界、黑色条带)进行阈值校准,确保inRange函数能稳定提取稳定分割目标区域。
- 优化中线提取逻辑(
getAverage函数),通过递归搜索(RecursionLeft/RecursionRight)解决赛道边缘不连续问题,提升路径跟踪精度。
- 运动控制策略设计
- 调试比例控制参数(如转向系数
0.01),平衡机器人的响应速度与稳定性,避免过冲或滞后。
- 调整步态参数(
step_height、stand_height)和姿态角(rpy_des),确保机器人在直线行驶、转弯、侧倾(如residenceright状态)时的平衡。
- 状态机逻辑开发
- 设计
Mode状态切换规则,定义循迹(track)、住户任务(residenceright)、分叉路选择(divergeleft)等 14 种状态的触发条件与超时机制。
- 编写状态过渡逻辑(如
residenceTransientProcess中间过程),确保任务切换的平滑性。
- 通信与系统集成
- 基于 LCM 协议实现上层决策(视觉识别、状态机)与底层控制的通信(
robot_control_lcmt消息结构),确保控制指令(速度、步态)的实时传输。
- 集成二维码识别模块,将解码结果与状态机联动(如识别特定二维码后切换任务模式)。
- 系统联调与问题排查
- 解决实际场景中的异常情况:如赛道交叉点识别错误、二维码倾斜导致解码失败、机器人步态不稳等问题。
- 通过日志输出(如
cout << "蓝色数量:" << number << endl)定位算法瓶颈,优化代码执行效率(如缩小图像处理分辨率至 400x300)。
通过本次大赛,不仅掌握了四足机器人从视觉感知到运动控制的完整技术链,更深刻理解了 "感知 - 决策 - 执行" 闭环系统的设计思想。在解决实际问题(如光照干扰、机械抖动、路径复杂分叉)的过程中,提升了算法优化能力与工程实践能力,为复杂机器人系统的开发积累了核心经验。