描述
<div class="document">
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">* 1、项目功能介绍</h3>
<p> 本项目旨在解决传统搬运机器人识别能力弱、导航精度低、运动不灵活的问题,打造一个真正智能化的自主搬运系统。</p>
<p> 我们设计的机器人通过三大核心技术实现突破:首先,采用OpenArt mini AI摄像头,运行神经网络模型,能自动识别四种不同物体,无需按键输入,解决了识别僵化、依赖预设的难题。其次,创新融合ICM20602惯性导航单元(IMU)与摄像头循迹。通过互补滤波算法解算姿态角,实现角度闭环控制,即使在黑线模糊时也能精准完成90°、180°等转弯,极大提升了复杂环境下的导航鲁棒性。最后,采用四驱麦克纳姆轮底盘,每个电机均配备编码器,结合PID算法实现四路闭环控制,确保机器人能精准定距移动、定点启停。</p>
<p> 该机器人成功实现了从装载、AI识别、循迹配送、终点等待卸载,再到自主返回起点的全流程自动化循环。它不仅满足了竞赛要求,更通过AI视觉、多传感器融合与全向运动控制的深度结合,为智能物流、仓储分拣等场景提供了一个高性能、高可靠性的解决方案原型,充分展现了智能机器人技术的应用潜力。 </p>
<p> </p>
<h3>*2、项目属性</h3>
<h3>项目为原创且首次公开,未在其他比赛中获奖但在学校参加过答辩。</h3>
<p> </p>
<h3>* 3、开源协议</h3>
<p>GPL3.0开源协议</p>
<p> </p>
<h3>*4、硬件部分</h3>
<p>一、关键实现原理与机制:如图1关键实现流程图所示.</p>
<p>1、闭环控制:这是系统的核心。电机编码器产生的脉冲信号被STM32的定时器捕获,计算出实际转速和转过的角度。这个值与设定的目标值进行比较,产生误差。PID算法根据误差计算出新的PWM占空比,反馈给电机驱动器,不断调整电机转速,最终使实际值趋近于目标值,实现精准的速度和位置控制。</p>
<p>2、多传感器融合:系统结合了红外循迹(视觉路径引导)和IMU(姿态角测量)。在软件层面,通过算法(如互补滤波)将两者的数据进行融合,使得即使在光线变化或黑线模糊的情况下,也能依靠IMU的姿态信息进行精确的角度控制,大大提高了导航的鲁棒性和精度。</p>
<p><img style="margin-left:auto;margin-right:auto;" src="//image.lceda.cn/pullimage/YMCq27N1GmkLGQtYpBPrear2dPRCNfl9L9ZzvX0h.png" alt="60190591c232c45f9b091ae7eddda92f"></p>
<p style="text-align:center;">图1 关键实现流程图</p>
<p>二、原理图</p>
<p>本项目硬件系统围绕 STM32F103ZET6 主控芯片构建,通过精心设计的电路连接各个功能模块,实现了从感知到执行的完整闭环控制。如图2 EDA原理图、图3 PCB原理图所示。</p>
<p><img style="margin-left:auto;margin-right:auto;" src="//image.lceda.cn/pullimage/5aopfrEjM5fO1AhKnDdE1fpfSWrNr8dw116SB2Ma.png" alt="0be4adc6267870244989cc8da3939352"></p>
<p style="text-align:center;">图2 EDA原理图</p>
<p><img style="margin-left:auto;margin-right:auto;" src="//image.lceda.cn/pullimage/7TRbuVuYGp3k9IYyvZXIWrLISBdtR9DjKWT4ZxE7.png" alt="48592554645964a79fb1ec81558b9e54"></p>
<p style="text-align:center;">图3 PCB原理图</p>
<p>三、系统架构与核心组件详解</p>
<p>1、核心控制器 (如图3 STM32F103ZET6所示)</p>
<p>(1)核心特性:STM32F103ZET6 属于ARM Cortex-M3架构的 32 位微控制器,具备以下核心性能:主频高达72MHz,可满足中高速嵌入式应用的运算需求;内置512KB Flash用于程序存储,64KB SRAM用于数据缓存,支持复杂算法与多任务逻辑的运行;集成丰富的外设接口,为硬件扩展与功能实现提供充足支持。</p>
<p>(2)引脚与接口资源:核心板通过双 60 引脚接口(U1、U2)实现 I/O 扩展,涵盖多种功能引脚:</p>
<p>A.电源引脚:支持 + 5V、+3.3V 供电输入与 GND 接地,满足不同外设的电源适配需求;</p>
<p>B.GPIO 引脚:如 PB15、PD9、PG3、PA10、PC10(U1 侧),PB11、PE15、PB0、PA6(U2 侧)等通用输入输出引脚,可用于按键、LED、传感器等外设的数字信号交互;</p>
<p>C.功能外设引脚:包含串口(SERIAL 标识)、定时器、ADC 等外设的专用引脚,支持串口通信、脉冲捕获、模拟信号采集等功能。</p>
<p>(3)作用:</p>
<p>A.电源分配与管理:作为机器人内部电源的 “分流中心”,将电源管理模块输出的 + 5V、+3.3V 电源分配至循迹传感器、STM32 主控、无线通信模块等不同子系统,实现单电源输入下的多模块电能按需供给,简化系统布线复杂度;</p>
<p>B.模块化扩展支撑:标准化排针接口为机器人的功能扩展(如新增视觉识别模块、额外传感器)提供了即插即用的电源接入能力,无需对原有电源架构进行大规模改动,提升项目的可扩展性与迭代效率;</p>
<p>C. 调试与维护便利性:清晰的电源引脚定义便于在调试阶段快速排查各模块的供电故障(如某传感器不工作时,可通过排针接口直接测量电压判断电源问题),降低运维成本。</p>
<p><img style="margin-left:auto;margin-right:auto;" src="//image.lceda.cn/pullimage/kpWDZMemvQRztfonUabXacdZAtR3gwXJNrQY2miO.png" alt="356dbce03e224f1fafb010f0b56c3fb7"></p>
<p style="text-align:center;">图3 STM32F103ZET6核心板原理图</p>
<p>2、感知与输入模块:红外循迹传感器 (如图4 5路数字循迹 4所示)</p>
<p>(1)硬件架构与性能:</p>
<p>A.传感器阵列设计:模块包含 4 组独立的 5 路数字循迹传感器(P1-P4 接口),每路传感器可输出数字电平信号(高 / 低电平对应 “非轨迹”/“轨迹” 状态),支持对地面轨迹(如黑色引导线)的实时识别;</p>
<p>B.电源与信号接口:采用 + 5V 供电与 GND 接地,传感器信号引脚(如 PE11、PE10、PC6 等)可直接与 STM32 ZET6 核心板的 GPIO 引脚连接,实现数字信号的快速采集与处理;</p>
<p>C.多组扩展能力:4 组传感器可灵活部署于机器人底盘的不同方位(如前向、侧向),支持多轨迹识别、交叉路口判断、轨迹偏移修正等复杂场景的感知需求。</p>
<p>(2)作用:</p>
<p>A.高精度路径跟踪:通过多组传感器对轨迹的 “点阵式” 识别,可精确判断机器人相对于轨迹的偏移量(如左偏、右偏),为 STM32 主控提供实时偏移数据,进而驱动电机执行差速转向,实现毫米级精度的轨迹跟随,保障搬运过程中货物的平稳运输;</p>
<p>B.复杂场景适配:在仓库、车间等多岔路、多轨迹的搬运环境中,4 组传感器可协同识别轨迹的分支、合并等特征,为机器人的路径决策(如选择搬运路径 A 或 B)提供可靠的感知依据;</p>
<p>C.鲁棒性增强:多通道冗余设计可有效应对轨迹污染(如灰尘覆盖)、环境光干扰等问题,某一路传感器故障时,其余通道仍可维持基本的循迹功能,保障搬运任务的连续性。</p>
<p><img style="margin-left:auto;margin-right:auto;" src="//image.lceda.cn/pullimage/2jaRmxuBXBw4p9vL5mTpCoZwJPF7NxDQ6AHpRVka.png" alt="312586ff75dcf47d0c316e819f50df96"></p>
<p style="text-align:center;">图4 5路数字循迹 4原理图</p>
<ol>
<li>运动执行模块:电机驱动 (如图5步进电机驱动器 & 外置NMOS所示)</li>
</ol>
<p>(1)硬件架构与功能:</p>
<p>A.接口设计:每路接口(CN1-CN4)采用 6 针定义,明确区分 + 12V(动力电源)、GND(接地)、+3.3V(逻辑电源)与控制引脚(如 PA6、PA0 等),可直接对接步进电机驱动器,实现 “电源供给 + 信号控制” 的一体化连接;</p>
<p>B.多电机控制:4 路独立接口支持同时驱动多台步进电机(如机器人底盘的左右行走电机、货叉的升降电机等),满足搬运机器人多自由度运动的动力需求;</p>
<p>C.电气兼容性:+12V 适配步进电机的动力供电,+3.3V 匹配 STM32 主控的逻辑电平,保障控制信号的可靠传输。</p>
<p>(2)作用:</p>
<p>A.精准运动控制:步进电机通过 “脉冲 - 角度” 的线性对应关系,可实现毫米级、角度级的精准运动(如底盘行走的精确位移、货叉升降的精准定位),通过 PA6、PA0 等控制引脚输出脉冲与方向信号,配合 STM32 的定时器外设,可实现电机的速度、位置闭环控制,保障货物搬运过程中的定位精度与运动平稳性;</p>
<p>B.多机构协同驱动:4 路接口可分别驱动底盘行走电机(实现机器人的前进、转向)、货叉升降电机(实现货物的拾放)、辅助机构电机(如舵机联动的抓取装置),通过多电机的协同控制,完成 “移动 - 定位 - 抓取 - 搬运 - 释放” 的全流程搬运动作;</p>
<p>C.动力冗余与扩展:预留的接口可支持后续功能扩展(如新增分拣机构的驱动电机),为机器人的功能迭代提供硬件基础。</p>
<p><img style="margin-left:auto;margin-right:auto;" src="//image.lceda.cn/pullimage/HMrzboF6Lc0Nj0hp2d8qyDKM4meDmYTWIbpwv979.png" alt="028ddc1547d19dbafb09d4f96e2a27a6"></p>
<p style="text-align:center;">图 5 步进电机驱动器 & 外置NMOS</p>
<p>4、人机交互模块:5个串口 舵机+扫码+屏幕+openmv+6050(如图6所示)</p>
<p>(1)硬件架构与功能:</p>
<p>A.串口接口设计:每路串口均采用 4 针接口,明确区分 TX(发送)、RX(接收)、+5V 电源与 GND,可直接对接各功能模块的串口通信引脚,实现 “一模块一串口” 的独立数据传输;</p>
<p>B.多设备兼容:支持不同通信速率、数据格式的设备接入(如舵机的控制指令、扫码模块的条码数据、OPENMV 的视觉识别结果等),通过 STM32 ZET6 主控的多串口外设(如 USART1~USART5)实现并行数据收发;</p>
<p>C.电源与信号集成:每路串口的 + 5V 电源引脚为外设提供供电支持,无需额外电源布线,简化系统硬件架构。</p>
<p>(2)作用:</p>
<p>A.多设备协同控制:</p>
<p>舵机串口:实现机械臂(如搬运机器人的货物抓取机构)的角度控制,完成货物的 “抓取 - 搬运 - 释放” 动作;</p>
<p>扫码串口:读取货物条码信息,实现 “货物身份识别 - 目标位置匹配” 的自动化搬运调度;</p>
<p>屏幕串口:实时显示机器人状态(如当前位置、剩余电量、搬运任务进度),便于运维与调试;</p>
<p>OPENMV 串口:传输视觉识别结果(如货物位置、形状信息),为机器人的自主导航与分拣提供决策依据;</p>
<p>ICM6050 串口:获取惯性姿态数据(如机器人倾斜角、角速度),辅助运动控制与稳定性监测。</p>
<p>B.数据并行处理:通过 5 路独立串口,STM32 主控可同时收发多路设备的数据,避免通信阻塞,保障搬运任务的实时性(如在抓取货物的同时,同步更新屏幕显示、监测姿态变化)。</p>
<p>C.功能扩展性:每路串口均为标准化接口,未来可根据需求扩展新设备(如新增无线通信模块实现远程监控),无需改动原有通信架构。</p>
<p><img style="margin-left:auto;margin-right:auto;" src="//image.lceda.cn/pullimage/8YZQdQiKh37p3lqVuFqjl0c8o911I5IxDlBWLxzp.png" alt="e34766dbf7f177d509ecf678367e6ee0"></p>
<p style="text-align:center;">图6 5个串口 舵机+扫码+屏幕+openmv+6050</p>
<ol>
<li>OpenMV 摄像头模块:如图7所示</li>
</ol>
<p>(1)硬件架构与功能</p>
<p>A.OPENMV4 插座(U1):提供完整的引脚适配,涵盖电源(VIN、3.3V、GND)、控制(RST、BOOT)、通信(TX、RX)及通用 IO(P0-P9),可直接对接 OPENMV4 视觉模块,实现视觉数据的采集与模块控制;</p>
<p>B.通信接口(CN1):采用 XH2.54-4P 卧插接口,明确区分 GND、RX、TX、VIN,与 OPENMV4 的串口通信引脚(P4 TX、P5 RX)对应,可实现视觉模块与 STM32 主控的串口数据交互;</p>
<p>C.机械固定设计:U2-U5 的 M3 固定孔为 OPENMV4 模块提供稳定的机械安装支撑,确保视觉模块在机器人运动过程中(如加速、转向)的位置稳定性,保障视觉识别的精度。</p>
<p><img style="margin-left:auto;margin-right:auto;" src="//image.lceda.cn/pullimage/rvAkeByl2mZPgxB5N2zgUuh5GA3KA1GqH3OkRmv3.png" alt="0bd5af772e690f06fc536322c1109fd1"></p>
<p style="text-align:center;">图7 OpenMV4官方插座</p>
<p>6、电源与接口模块:如图8所示</p>
<p>(1)硬件架构与功能:</p>
<p>A.电源接口设计:S1 采用 T 型头接口,支持外部 + 12V 电源的快速接入,“+”“-” 极清晰区分,可直接对接锂电池、开关电源等能源设备,保障电能稳定输入;</p>
<p>B.开关控制单元:SW1 为多路开关器件,可实现 + 12V 电源的通断控制,通过物理开关操作即可开启或关闭机器人的能源供应,操作简单且可靠性高;</p>
<p>C.电气安全性:电源输入与开关的电路设计符合低压电气安全规范,有效避免电源反接、短路等风险,保障机器人硬件系统的用电安全。</p>
<p>(2)作用:</p>
<p>A.能源管理入口:作为机器人与外部电源的连接节点,该模块是整个系统电能输入的 “第一道闸门”,可适配 + 12V 锂电池(如用于移动搬运场景)或车间 + 12V 工业电源(如固定工位搬运场景),满足不同部署环境的能源接入需求;</p>
<p>B.系统启停控制:SW1 开关为机器人提供物理层面的启停控制,在设备调试、维护或紧急情况下,可快速切断电源,保障人员与设备安全;同时,开关的通断状态可作为系统初始化的触发信号,配合 STM32 主控实现开机自检、电源状态监测等功能;</p>
<p>C.兼容性与扩展性:T 型头接口的通用性可支持多种 + 12V 电源的替换与升级(如高容量锂电池),为机器人的续航能力扩展提供硬件基础。</p>
<p><img style="margin-left:auto;margin-right:auto;" src="//image.lceda.cn/pullimage/VQazBK7FyjD2ReJHOPltoIUOnjEbtPAaExoB6jhr.png" alt="5cde7beaf4898f1a3b9ef3057f441e25"></p>
<p style="text-align:center;">图8 电源输入&开关</p>
<p>7、电源输出排针 (P5):如图9所示</p>
<p>(1)硬件架构与性能:</p>
<p>A.接口设计:采用 2×5P 排针母座(P5),明确区分 + 5V(引脚 2、3)、+3.3V(引脚 4、5)与 GND(引脚 6、7、8、9、10),接口定义清晰,便于与传感器、执行器等外设的电源引脚快速对接;</p>
<p>B.电源输出能力:可同时为多路外设提供 + 5V、+3.3V 电源,满足搬运机器人多模块(如循迹传感器、电机驱动、通信模块等)的并行供电需求,且排针的电气连接可靠性高,能承受长期插拔与工业环境的振动干扰;</p>
<p>C.电气安全性:多组 GND 引脚设计保障了电源回路的低阻抗接地,有效抑制电源噪声,提升各模块的供电稳定性。</p>
<p>(2)作用:</p>
<p>A.电源分配与管理:作为机器人内部电源的 “分流中心”,将电源管理模块输出的 + 5V、+3.3V 电源分配至循迹传感器、STM32 主控、无线通信模块等不同子系统,实现单电源输入下的多模块电能按需供给,简化系统布线复杂度;</p>
<p>B.模块化扩展支撑:标准化排针接口为机器人的功能扩展(如新增视觉识别模块、额外传感器)提供了即插即用的电源接入能力,无需对原有电源架构进行大规模改动,提升项目的可扩展性与迭代效率;</p>
<p>C.调试与维护便利性:清晰的电源引脚定义便于在调试阶段快速排查各模块的供电故障(如某传感器不工作时,可通过排针接口直接测量电压判断电源问题),降低运维成本</p>
<p><img style="margin-left:auto;margin-right:auto;" src="//image.lceda.cn/pullimage/qecC2ecyvh9OR61F6rb7uFqREDONgrudExCcoloz.png" alt="2f3b58fac8f52b9ed4f86b2997e52091"></p>
<p style="text-align:center;">图9 电源供出排针</p>
<p>8、电源管理电路:如图10所示</p>
<p>(1)硬件架构与性能:</p>
<p>A.双路稳压设计:上层采用 DC-DC 降压电路(U7 为核心器件),将输入 + 12V 转换为 + 5V,搭配 L1(33uH 电感)、C1(330uF 电容)、C2(120uF 电容)组成滤波网络,可实现大电流(适配电机驱动等功率模块)、低纹波的 + 5V 供电;下层采用线性稳压芯片 AMS1117-1.8(U8),将 + 5V 转换为 + 3.3V,通过 C3、C4、C5、C6 组成的电容阵列进一步滤除纹波,为 STM32 主控、数字传感器等对电源精度要求高的模块供电;</p>
<p>B.电源状态指示:LED1(+5V 供电指示)、LED2(+3.3V 供电指示)可直观反馈电源工作状态,便于系统调试与故障排查;</p>
<p>C.电磁兼容性优化:电感、电容的组合设计有效抑制电源回路的电磁干扰(EMI),保障机器人在工业环境(如电机电磁辐射、设备电磁噪声)下的电源稳定性。</p>
<p>(2)作用:</p>
<p>A.多电压域适配:搬运机器人的不同模块(如 + 12V 电机驱动、+5V 传感器、+3.3V 主控)需不同电压供电,该模块通过 “+12V→+5V→+3.3V” 的分级稳压,实现单电源输入下的多电压输出,简化机器人供电架构;</p>
<p>B.供电可靠性保障:大容量电容(如 C1、C2)具备储能功能,可在电源瞬间波动(如电机启动时的电压跌落)时维持输出电压稳定,避免主控、传感器因欠压出现工作异常,保障搬运任务的连续性;</p>
<p>C.功耗与效率平衡:DC-DC 电路(U7)具备较高转换效率(适配大电流场景),线性稳压(U8)则在小电流、高精度场景下保障电源纯净度,两者结合实现 “功率模块高效供电 + 敏感模块精准供电” 的功耗优化。</p>
<p><img style="margin-left:auto;margin-right:auto;" src="//image.lceda.cn/pullimage/Nt0hbe4LQaM108VKUgK8CpxT8guSd4FQxrm9ogHp.png" alt="8c14b2ba554dfa5fa85f1b9c5062ca80"></p>
<p style="text-align:center;">图10 电源管理电路</p>
<p>三、重要注意事项</p>
<p>1、电源隔离与滤波:电机驱动会产生很大的电磁干扰(EMI)。必须确保电机驱动电源(+12V)与敏感的模拟/数字电路(+5V/+3.3V)之间有良好的去耦电容(如C1, C2)和必要的物理隔离,防止噪声窜入主控。</p>
<p>接地策略:采用单点接地或星型接地,避免形成接地环路,减少噪声。</p>
<p>2、信号线布局:高速信号线(如PWM、编码器、I2C/SPI)应尽量短、直,远离大电流走线(如电机电源线),并考虑包地。</p>
<p>3、散热:电机驱动器(特别是外置NMOS)在满负荷工作时会产生大量热量,需加装散热片或采取风冷措施。</p>
<p>4、编码器连接:确保编码器A/B相信号正确连接至STM32的定时器输入捕获通道,并配置正确的模式(如上升沿/下降沿触发)。</p>
<p>5、安全保护:可在电机驱动器的输入端增加保险丝,防止短路烧毁。</p>
<p>四、调试与测试方法</p>
<p>1、分步调试:</p>
<p>A.电源测试:首先上电,使用万用表测量各路输出电压(+12V, +5V, +3.3V, +1.8V)是否稳定在规定范围内。</p>
<p>B.传感器测试:使用示波器或逻辑分析仪检查红外循迹传感器的输出信号是否随环境变化而跳变。检查红外对管的信号是否能正确反映物体的存在。</p>
<p>C.电机驱动测试:单独给电机驱动器供电,通过编程让STM32输出不同占空比的PWM信号,观察电机转速是否可调;改变方向信号,观察电机是否能正反转。</p>
<p>D.编码器测试:手动旋转电机,观察STM32是否能正确计数编码器脉冲。</p>
<p>E.通信测试:如果连接了OpenArt mini,使用串口助手查看其输出的识别结果是否正确。</p>
<p>F.显示测试:编写简单程序,让OLED显示文字或图形,验证显示功能正常。</p>
<p>2、系统联调与测试:</p>
<p>A.PID参数整定:先关闭闭环,让小车以固定PWM运行。然后开启闭环,通过调整比例(P)、积分(I)、微分(D)参数,找到能使小车稳定运行、无超调、响应快的最优组合。</p>
<p>B.直线行驶测试:让小车沿直线轨道行驶,观察其是否能保持直线,有无左右摆动。调整PID参数直至稳定。</p>
<p>C.转弯测试:让小车执行90度、180度转弯指令,通过IMU读数或目视判断其准确性。</p>
<p>D.全流程测试:在真实赛道上,模拟从起点装载、AI识别、循迹配送、终点等待、返回起点的全过程,观察所有环节是否流畅衔接,OLED和RGB灯状态是否正确。</p>
<p>通过严谨的硬件设计、细致的分步调试和全面的系统测试,确保了智能搬运机器人的各项功能能够稳定可靠地运行。</p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">*5、软件部分</h3>
<p>1、软件流程图,如图11所示</p>
<p><img style="margin-left:auto;margin-right:auto;" src="//image.lceda.cn/pullimage/JW95LozIeiDB4N5vXFJcl1GqC2l5BfUf4qhH1FyK.png" alt="4af168909025b331f337203f386b50e7"></p>
<p style="text-align:center;">图11 软件流程图</p>
<p>2、功能模块框图</p>
<p><img style="margin-left:auto;margin-right:auto;" src="//image.lceda.cn/pullimage/h5SpdKTM2J1O9t3sHqyvk8EgsKmCG4PRKSabFDCs.png" alt="06e8fdda463bb5c9d3272435714dd091"></p>
<p style="text-align:center;">图12 功能模块框图</p>
<ol>
<li>相关算法解释:</li>
</ol>
<p>(1)互补滤波</p>
<p>A.原理:</p>
<p>一种简单有效的传感器融合算法,用于融合陀螺仪(高精度短期,但有漂移)和加速度计(长期稳定,但受震动影响大)的数据,以得到更准确的姿态角。</p>
<p>B.在代码中的体现:</p>
<p>// Pitch (俯仰角) 计算</p>
<p>angle[0] = R*(angle_last[0]+increase[0]) + (1-R)*RadtoDeg*atan(acc_vector.x/acc_vector.z);</p>
<p>C、解释:</p>
<p>R*(angle_last[0]+increase[0]):这是陀螺仪积分项,利用角速度 gyro_vector.x 乘以时间 dt 得到角度增量,再累加到上一次的角度上。它对快速变化的响应好。</p>
<p>(1-R)*RadtoDeg*atan(acc_vector.x/acc_vector.z):这是加速度计参考项,通过重力在X轴和Z轴的分量计算出相对于水平面的倾斜角(atan)。它在静态时非常准确。</p>
<p>R 是一个介于0和1之间的滤波系数(通常0.95-0.98)。它决定了我们更相信哪一部分数据。R 越大,越相信陀螺仪,响应越快但漂移越严重;R 越小,越相信加速度计,越稳定但动态响应慢。通过加权平均,实现了“取长补短”。</p>
<p>(2)PID 控制算法</p>
<p>A.原理:一种经典的闭环控制算法,广泛应用于运动控制。它通过计算“设定值”与“实际值”之间的误差,利用比例(P)、积分(I)、微分(D)三项的线性组合来生成控制量。在项目中用于位置闭环控制。例如,motol_Settarget_point_move(0,distance,100); 设定了目标距离,编码器反馈当前实际移动的距离,PID算法计算出需要输出的PWM值,驱动电机,直到实际距离等于目标距离。</p>
<p>B.在代码中的体现:</p>
<p>// 1. 获取编码器反馈值</p>
<p>L_SE = LowPassFilter_apply(&low_filter_L_S, (encoder_vector[0].L_S+...)/3);</p>
<p>// 2. 计算偏差并应用PID</p>
<p>L_S = Position_PID_bias(&left_front_pid, L_SE);</p>
<p>C.解释:</p>
<p>P (比例):控制量与当前误差成正比。误差越大,纠正动作越强。但纯P控制会有稳态误差。</p>
<p>I (积分):控制量与误差的累积值成正比。用于消除稳态误差。</p>
<p>D (微分):控制量与误差的变化率成正比。用于预测未来的误差趋势,起到阻尼作用,减少超调和振荡。</p>
<p>(3)惯性导航</p>
<p>A.原理:不依赖外部信号,仅依靠内部的IMU(陀螺仪和加速度计)来推算物体的位置、速度和姿态。陀螺仪提供角速度,积分得到角度;加速度计提供加速度,减去重力分量后,积分一次得到速度,再积分一次得到位置。</p>
<p>B.在代码中的体现:</p>
<p>// 位置积分</p>
<p>position_point.x_point += average*sinf(angle_PI);</p>
<p>position_point.y_point += average*cosf(angle_PI);</p>
<p>C、解释:</p>
<p>average 是四个轮子编码器读数的平均值,代表了小车在dt时间内的移动距离。</p>
<p>angle_PI 是从IMU解算出的偏航角(Yaw)。</p>
<p>通过三角函数,将小车自身的移动距离分解到全局的X轴和Y轴上,从而更新小车的全局坐标。这是实现“无GPS”室内定位的关键。</p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">*6、BOM清单</h3>
<p><img style="margin-left:auto;margin-right:auto;" src="//image.lceda.cn/pullimage/tXuNsSTkSv6f6MtFAqrBKigZTQ6JXUyhHUnQgx5o.png" alt="tXuNsSTkSv6f6MtFAqrBKigZTQ6JXUyhHUnQgx5o.png"> </p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">*7、大赛LOGO验证</h3>
<p><img style="margin-left:auto;margin-right:auto;" src="//image.lceda.cn/pullimage/7TRbuVuYGp3k9IYyvZXIWrLISBdtR9DjKWT4ZxE7.png" alt="8a6e805c34fc02a6c649723fe0635cb0"> </p>
<h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">* 8、演示您的项目并录制成视频上传</h3>
<hr class="horizontal-splitline normal-bold-2">
<p style="line-height:1.8;"><img style="margin-left:auto;margin-right:auto;" src="//image.lceda.cn/pullimage/mtN3Mg9wbGcHP07FwAQ6rVAUN4k98zl4DSF50mW3.png" alt="智能搬运机器人实物图" width="807" height="1032"><a title="立创电赛:智能搬运机器人-机器人识别与运动" href="https://d.dolota.top/h5_preview/h5/video?short=rMFEzs&domain=www.duoleta.com/qrcode/api&sign=&chainId=432165&isAuthority=0" target="_blank">视频链接:https://d.dolota.top/h5_preview/h5/video?short=rMFEzs&domain=www.duoleta.com/qrcode/api&sign=&chainId=432165&isAuthority=0</a></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><span style="font-size:14px;"><a href="/posts/42551e8f2f2548cabc1c36626a42da94" target="_blank">前往查看更多详情 ></a></span></p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p>
</div>
评论(0)