温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
ESP32
机器人
设计
实现
詹书豪
16|电子制作 2023 年 3 月电子电路设计与方案0 引言随着科学技术的不断进步,机器人技术得到了快速的发展,机器人不仅促进了人类劳动的发展,而且为人类科学史作出了巨大的贡献。机器人技术被认为是对未来新兴产业发展具有重要意义的高技术之一1。仿生机器人是机器人研究的重要领域2,在反恐防暴、探索太空、抢险救灾等不适合由人来承担任务的环境中,仿生机器人有着良好的应用前景3。作为仿生机器人的典型代表,四足爬行机器人步态多样,运动灵活,对未知复杂的地形具有极强的适应性。在这样的背景下,本文设计了一种以 ESP32 为主控的四足爬行机器人。1 步态规划与运动学分析本文设计的机器人共有四条腿,每条腿的根关节、髋关节和膝关节都有一个大扭力数字舵机,一共需要 12 个舵机。1.1 步态规划步态是足式机器人的各腿之间运动的规律,步态规划,顾名思义为机器人六条腿的运动次序6。在自然界中,昆虫纲的动物一般拥有六条腿,像蚂蚁、甲虫、蝉等,这些动物在爬行时并不是六足同时前进,而是前右腿、中左腿和后右腿为一组,剩下的三条腿为一组,这两组腿分别组成两个三角形支架,前进的过程中两组腿交替运动,这种步态称为三角步态7。自然界中也有大量的四条腿的动物,四条腿能让它们不需要任何控制或调整就能够保持直立,即可以保持静态稳定。本文设计的四足机器人,静止的情况下,处于静态稳定状态,移动时,机器人每次迈步只用一条腿,同一时刻至少有三条腿在地上支撑,并且重心投影点保持在这三条支撑腿形成的三角形内。如图1所示,以机器人重心为坐标原点O建立坐标系,A、B、C 为某一时刻在地上支撑的三条腿的足尖,d1、d2、d3为机器人重心投影点到支撑足尖围成的三角形各边的距离,以 d1为例,已知 A(x1,y1),B(x2,y2)两点坐标可求直线 AB 的两点式方程:112121xxyyxxyy=重心A(x1,y1)B(x2,y2)C(x3,y3)D(x4,y4)Od1d2d3XY 图 1 稳定裕度计算化成一般式:()()211221120yyxxxyx yx y+=根据点到距离的公式可以求原点 O 到直线 AB 的距离 d1:()()21121221212x yx ydxxyy=+机器人爬行过程中的稳定裕度为 d1、d2、d3中的最小值,显然重心投影点距离三角形各边越远,稳定裕度越大,即机器人越稳定。只要机器人在爬行过程中,重心投影点一直在支撑三角形范围内,那么机器人爬行过程中是静态稳定的8。图 2 展示了一种方案9,机器人在爬行过程中,始终符合上述条件。起始时,腿 1 和腿 4 分别相对身体向外伸出,腿 2 和腿 3 相对身体向内靠拢;腿 2 向前伸出;所有腿相对身体向后移动,此时机器人的身体会向前移动;腿 4 相对身体向内靠拢;腿1向前伸出;所有腿相对身体向后移动,此时机器人的身体会向前移动;腿 3 相对身体向内靠拢,机器人回到起始位置,完成一次完整的爬行动作。1.2 单腿运动学分析本文设计的四足机器人每条腿有 3 个自由度分别位于根关节、髋关节和膝关节,为了得到步态规划后腿部各个关节的转角角度(即舵机转向角度),如图 3 所示,以机器基于 ESP32 的四足机器人的设计与实现詹书豪,陈平平,彭川(东莞理工学院 电子工程与智能化学院,广东东莞,523808)基金项目:国家级大学生创新创业训练计划项目:可编程教育机器人(202111819021)。摘要:本文设计了一种基于ESP32的四足爬行机器人,在对四足机器人步态分析的基础上,详细介绍了其设计原理,以及系统硬件及软件的设计过程与实现方法。该方案以ESP32芯片为主控制器,通过舵机控制四足机械腿的移动,同时机器人可以利用ESP32内部集成的WiFi实现小程序无线遥控功能。测试结果表明,该机器人能实现稳定第实现舵机校准、前进后退转弯、姿态自主调节等功能。关键词:四足机器人;ESP32;步态规划;WiFiDOI:10.16589/11-3571/|17电子电路设计与方案人腿根部为原点,建立空间坐标系,进行逆运动学分析。XZY(x,y,z)L1L2L3 图 3 机器人单腿模型已知条件为每条腿各部分长度 L1、L2、L3和足尖坐标(x,y,z),需要求出、和。为了方便计算,分别以 X 轴和Y 轴、直线 L1 和 Z 轴为一个二维平面,如图 4 和 5 所示。(x,y,z)XYL4 图 4 X 轴和 Y 轴平面在图 4 中,根据勾股定理可以计算出 L4的长度,根据反正切函数可以求出角度:224Lxy=+1tanxy=在图 5 中,根据三角形相关知识有如下结论:13=1290=+为了得到 和 的具体值,还需要计算出 1、2和3,先计算出 L5和 3:()22541LzLL=+1341tanzLL=由余弦定理可以求得 1和三角形各边的关系,进而通过反余弦函数求出 1:2223252512LLLL L cos=+2221253125cos2LLLL L+=同理可以求出 2的值:2221352235cos2LLLL L+=L1L2L3XYZ(x,y,z)L5132 图 5 直线 L1 和 Z 轴平面2 硬件设计基于 ESP32 的四足机器人的硬件系统如图 6 所示。本系统由主控制器 ESP32、陶瓷天线、USB 一键下载电路、电源电路、LED 灯光模块、舵机驱动模块、姿态传感器(MPU6050)等模块组成。2.1 电源电路整体系统选用锂电池供电(额定电压 7.4V),系统主控和传感器的供电电压为 3.3V,所以需要把电压转换到3.3V,而舵机直接使用电池供电。由于 DCDC 芯片的转换ABC123412341234DEF123412341234(-100,100)(-100,-100)(100,-40)(100,40)(-100,100)(-100,-100)(100,-40)(100,160)(-100,40)(-100,-160)(100,-100)(100,100)y+120y-60y+120(-100,-40)(-100,40)y+120(100,-100)(100,100)(-100,-40)(-100,160)(100,-100)(100,100)y+120(-100,-100)(-100,100)(100,-160)(100,40)y-60图 2 爬行步态示意图18|电子制作 2023 年 3 月电子电路设计与方案效率很高,能使得系统的整体发热很低,所以本系统通过TPS63070RNMR 方案为系统提供 3.3V 电压,通过查阅该芯片的技术手册可知,TPS63070RNMR 可以为系统提供高达 2A 的输出电流,输出电压和反馈电阻 R1和 R2的关系为:()1220.8outRRVR+=电源电路电池陶瓷天线舵机下载电路图 6 硬件系统框图基于 TPS63070RNMR 的 DCDC 基本电路如图 7 所示,电池电源通过三个 10F 滤波电容输入芯片的输入引脚,输出端通过一个 10F 和两个 22F 滤波电容输出 3.3V 电压。系统采用锂电池供电,需要实时监控电池电压以避免过放导致电池损坏,这里设计一个电压采集电路,通过电阻分压使单片机能采集超过 3.3V 的电压,使用运算放大器搭建电压跟随器实现阻抗匹配,尽量避免单片机受到影响。单片机采集的电压与输入电压的关系为:2500.21250batininKVVVMK=+2.2 主控主控芯片选用了乐鑫公司的 ESP32-PICO-D4 模组,这是一款集成有 WiFi 和蓝牙的高性能芯片,其采用台积电超低功耗的 40 纳米工艺,工作温度范围达到-40+125,最大时钟频率高达 240MHz。该芯片将大量器件如晶振、滤波器、Flash、射频匹配链路等集于一体,极大地简化了外围电路的设计10。21354LM3213.3VGND1M250KGNDVINADC_BAT 图 8 电压采集电路主控电路和下载电路如图 9 所示,ESP32 采用 3.3V 供电,LAN_IN 管脚外接陶瓷天线。为确保芯片上电时的供电正常,EN 管脚处需要增加 RC 延迟电路,这里选用 10k电阻和 100nF 电容构成 RC 延迟电路。EN 管脚还有复位功能,只需将其电平拉低即可触发复位。USB 转串口电路采用的方案是 CH340C 芯片,该芯片内置晶振,可以省去晶振电路。查阅技术手册可知 ESP32 有正常启动模式与下载模式两种,想要进入下载模式,需要满足:在 IO0 保持低电平的期间,EN 引脚产生一个上升沿。利用 CH340C 芯片的DTR 和 RTS 信号控制两个 S8050 三极管的通断来改 IO0 和EN 的电平,产生上述时序,最终实现自动下载功能。2.3 舵机驱动模块本系统共有 12 个舵机,需要 12 路 PWM 控制信号,故采用 PCA9685 为本系统的舵机驱动芯片。PCA9685芯片使用 I2C 协议与主控 ESP32 进行通信,该芯片支持2.35.5V 宽电压输入,可以同时输出 16 路 PWM 控制信号,每一路控制信号均可自由调节输出 PWM 波的频率(支持401000Hz)和占空比(0%100%)13。电路设计如图 10所示。2.4 姿态传感器姿态传感器采用 MPU6050,该芯片采用 I2C 通讯,集成最大可测范围为2000/s(dps)的 3 轴陀螺仪和最大可测范围为16G 的 3 轴加速度计,以及一个数字运动处理器 DMP。电路设计如图11 所示。3 软件设计 3.1 主程序设计机器人主程序流程如图 12 所示,系统上电后,进行系统初始化,12VINGND电池EN14FB5PS/SYNC1VIN12_13VSEL15L111L29FB26PG2VAUX3PGND10GND4VOUT7_8TPS63070RNMR10uF10uF10uF10K100nFGNDVIN1.5uH10uFR?470KR?150KGND100K22uF22uF3.3V图 7 TPS63070RNMR 电路|19电子电路设计与方案包括 ADC 配置、GPIO 配置、PCA9685 初始化、MPU6050 初始化和 WiFi 通信初始化,WiFi 通信采用 STA 模式,在此基础上建立一个 WebSocket 服务器用来与小程序进行通信。第一次运行机器人时,需要在小程序中对舵机的位置进行校准,校准完成后数据保存在 ESP32 的 Flash 中,下次运行时自动读取校准结果。在正常模式下,机器人保持等待接收指令状态,机器人接收到指令后,根据指令执行相应的动作。3.2 MPU6050 程序设计使用 MPU6050 可以获得机器人 x 轴 y 轴的倾角(对应欧拉角中的 pitch 和 roll),ESP32 通过I2C 协议读取到的数据是三轴加速度和三轴角速度的原始值,为了获得倾角,需要对其进行姿态解算,MPU6050 的姿态解算方法有多种,本文使用硬件 DMP解算的方式进行解算。DMP是 MPU6050 内部的数字运动处理器,可以直接输出四元数,获得四元数后可以由以下公式转成欧拉角15:GND100nF10uFGNDGND3.3V10K100nFGNDENIO0IO2IO15IO143.3VSD33.3VRX0TX0VCC16V34R23215UD+5UD-6GND1TXO2RXI3RTS14DTR13DCD12RI11DSR10CTS9CH340C3.3V100nFGNDGNDTX0200RX0RTSDTRDTRRTSS8050S8050ENIO012K12KGNDKey1KEN3.3VSD1SD0CLKCMDIO17USB_DMUSB_DPIO18IO23SENSOR_VPSENSOR_PPSENSOR_PNSENSOR_VNIO4IO13IO12IO25IO33IO27IO26IO16IO5SD2IO19IO22CPA2CPA1VDDA1LNA_IN2VDD3P33VDD3P34SENSOR_VP5SENSOR_CAPP6SENSOR_CAPN7SENSOR_VN8EN9VDET_110VDET_21132K