1、信息与电脑2023年第10 期Information&Computer算法语言基于单片机的差速驱动机器人运动建模与定位算法曹冬梅1王灿田(1.江苏农牧科技职业学院,江苏泰州225300;2.江苏联合职业技术学院南京分院,江苏南京2 10 0 0 0)摘要:近年来,随着机器人智能化进程的不断推进,越来越多的智能路径规划机器人被运用于电力巡检、扫地机器人、自动售卖车等领域。运动建模以及绝对坐标定位是路径规划的基础,也是决定路径规划效果的重要因素之一。但是,由于里程计存在累计误差,因此如何降低累计误差成为提高机器人控制效果的关键。基于此,文章提出一个可准确计算小车位置的定位算法。关键词:嵌入式;运动
2、建模;单片机;运动状态中图分类号:TP242Motion Modeling and Localization Algorithm of Differential Drive Robot Based文献标识码:A文章编号:10 0 3-9 7 6 7(2 0 2 3)10-0 6 7-0 3on MicrocontrollersCAO Dongmeil,WANG Cantian2*(1.Jiangsu Agri-animal Husbandry Vocational College,Taizhou Jiangsu 225300,China;2.Nanjing Branch of Jiangsu
3、UnionTechnical Institute,Nanjing Jiangsu 210000,China)Abstract:In recent years,with the continuous advancement of robot intelligence,more and more intelligent path planningrobots have been applied in fields such as power inspection,sweeping robots,and automatic sales vehicles.Motion modelingand abso
4、lute coordinate positioning are the foundation of path planning and one of the important factors determining theeffectiveness of path planning.However,due to the accumulated error of the odometer,how to reduce the accumulated error hasbecome the key to improving the control effect of the robot.Based
5、 on this,the article proposes a positioning algorithm that canaccurately calculate the position of the car.Keywords:embedded device;motion modeling;microcontrollers;motion state0引言智能设备能够正常运行的基础是必须进行路径规划,而路径规划的前提是智能设备能准确地获取当前的位置1-3。传统方法是通过全球定位系统(GlobalPositioningSystem,G PS)获取绝对位置坐标,从而实现路径规划,但是对于室内的智
6、能设备却无法通过GPS收稿日期:2 0 2 3-0 3-10基金项目:江苏农牧科技职业学院立项课题(项目编号:JYYB202319);江苏联合职业技术学院立项课题(项目编号:B/2020/10/008);伊犁州职业教育课题(项目编号:YLZJ202251)。作者简介:曹冬梅(19 8 9 一),女,江苏南京人,硕士研究生,助教。研究方向:移动应用开发技术。通信作者:王灿田(19 8 7 一),男,江苏南京人,硕士研究生,讲师。研究方向:物联网技术与应用。E-mail:。获取当前的位置,因此需要采用运动坐标,通过获取当前轮子的转速,从而确定当前的位置信息4。文章提出一个可准确计算小车位置的定位算
7、法,利用STM32F1系列单片机进行采样,可计算出小车的绝对位置1系统架构文章采用STM32F1单片机作为主控制器,通过控67信息与电脑算法语言Information&Computer制局域网(ControllerAreaNetwork,CA N)总线和48 5总线分别获取电机编码器信息和惯性测量单元(InertialMeasurementUnit,I M U)的航向角信息,将传感器信号融合计算后,得到绝对坐标位置,然后再打包,并通过串口发送给网口模块,通过用户数据报协议(UserDatagramProtocol,U D P)输送给外界。利用输人输出(In p u t/O u t p u t,
8、I/O)口可以控制驱动器,从而控制当前小车的前进路线。系统架构如图1所示。编码器CANMCUIMU485图1系统架构2硬件设计2.1CAN总线CAN总线电路如图2 所示。由于CAN总线是差分信号,不能将电信号直接接入单片机,因此需要通过电平转换芯片转换过后接入单片机。U1CAN TXDGNDIGNDCANH3.3VVCCCANLCAN RXRsn65hvd230图2 CAN总线电路2.2485总线485总线电路如图3所示。与CAN总线类似,48 5总线也是差分信号,因此不能直接接人单片机。由于SSP485芯片是开漏输出,因此需要在总线上外挂上下拉电阻,提高其驱动能力,并通过瞬态抑制二极管防止静
9、电等因素损坏48 5芯片。2023年第10 期3.3VNDC11U7RXD31ROVCC27C0603-0.1ufREBPB13DETXD34DISP485EEN-LTR图348 5总线电路驱动器2.3电源电路电源电路如图4所示。为了实现宽电压输人,设计串口网口R1R0603-10KRsCANCANLVrefR158R0603-10KCarB6CarAA5GNDGND3.3V时采用开关电源输入,将输入电压调制到3.3V后输出给外设。系统采用了平芯微的PW2312A芯片,较小的封装和较高的电流输出能力使其具有较高的实用价值。2.4单片机系统使用了STM32F103系列单片机,如图5所示。单片机的
10、工作主频为7 2 MHz,外设提供晶振、滤波电容、复位上拉电阻以及烧录接口等。3运动建模及定位算法两轮差速小车的运动过程如图6 所示。GND小车的实时姿态由两轮的转速控制,左右轮转速的差值决定了小车的运行姿态和方向。因此,当前小车的前进速度和前进方向均可由左右轮的速度运算得到。假设当前小车的前进速度为ve,左右轮转速分别为VL、VR,可得(+vR)V.=2同时,可以根据两轮速度得到当前车辆的旋转角速度,计算公式为(vi+VR)Q=dob式中:dob为小车轮间距,m。R16(1)(2)C224VCO603-0.1uFU51C5:C6R6R0603-100K4R9焊3.3VL14.7uh65BST
11、SW3VINFB2ENGNDPW2312ALRSR0603-150K001-60904R8R0603-47K+C4C7C8GND图4电源电路68信息与电脑2023年第10 期Information&Computer算法语言U63.3VHRESET10PC1.ADC123_IN11PC2ADC123IN12PC3.ADCi23_IN33.37CAND.P13.3SWDIOC91SWCLK2m43.3VGNDY1X2CaD联立式(1)、式(2)得到小车前进速度v。后,借助航向角即可得到当前小车在地图上的位置X、Y,表达式为X=J v.cos O.Atd,Y=J v,sin O.A td,WICR图
12、6 两轮差速小车的运动过程4实验结果分析实验前,小车分别以10 0 Hz的频率对编码器采样,改进前的运行结果如表1所示。表1改进前的运行结果测试距离/mX轴/mm12.0022.00120.0081.56从表1可以看出,在10 0 m的测试距离中,累计偏差量达到2.2 5%。对于同时定位与建图(SimultaneousLocalization andMapping,SLA M)定位算法来说,该定位误差较高,无法作为判断依据。因此,提高了采样频率,以2 50 Hz的频率对编码器进行采样,改进后的运行结果如表2 所示。2VB.AT3PC13/ANT14PC14OSC32PC15.CSC32SPDO
13、OSCIN6PDLOSCOUTNRST89PCO.ADC123_IN1OVSSAVDDA14PAO.VKUP.ADC123_INOTD5_CHIC10PA1TD2XD213CaD:103.37Header4CDR11RESETX13.3VHR0603-1KXTAL-3脚VDD64VSsPB9.TDN4_CH4PB8TIN4.CHBBOOTO60PB7.I2CI_SDAUSART1_RXTIM4_CHD39RXDIRO603-1KPB6I2CI_SCLUSARTI.TX.T4_CH138TXDTPB5.I2CT_SABA.SPIBMOSL12S3_SDPB3.JTDO.SP13,SCK1253-
14、CKPBAJNTRST:SPIB_AISOPD2TLGETRUSRXPC12US_TXPCI1.UA_RXUS.ART3RXPC1O.UA_TX.USART3_TX13PA1ADC123_NLTIACS_CHD16PA2U2_TX.ADC123_IN2TDAL5_CH3PA3.U2_RX.ADC123_IN3.TIAS_CH4PA4.SPI1_NSS.ADC12IN421PA5.SPI1_SCKPA6SPIiAISOADC12.JNG:TIAB_CHIPA7.SPI1NOSIADC12IN7.TDAB_CH224PC4/ADC12.IN4PC5.ADC12INT5PBO.ADC12.INB.T
15、DAB_CH3PB12PBIADC12INO.TDG_CH43060B-1KXD3229PB2BOOT1PB1012C2SCLU3_TXEXD330PB11.I2C2SDAUSRXCAND:333.37VDD5tm32103rct6图5单片机最小系统测试距离/m12.00120.00(3)通过实验结果可知,无论控制小车为直线运动还是(4)绕圈运动,使用文章提出的算法依旧能够保证较高的定位准确度,误差范围在0.4%左右,说明该算法具有一定的应用价值。5结语为准确计算小车的绝对位置,文章介绍了一个可准确计算小车位置的定位算法,利用STM32F1系列单片R机进行采样,通过采集编码器以及IMU的信息来
16、获取CENTER111dwbY轴/cm4.0031.303.3VGND6IR1035PB333PC1232RX4S1TXD4PA15JTDLSP13.NSS12S3_WS50PAiJTCKSRCLK4SWCLKVDD484VSS46SWD1OPA13JTAS.SIVDIOPA12.CAN_TX.USBDPTDA1_ETRPAILCAN_RXUSBDMTIMI_CH4PA1O.UL_RXTIAI_CHBPA9.UI_TXTIAMI_CHDPA8TAO.CHIACOPC9.TD8_CH4PC8TIA8_CHBPC7.12S3_AICKTAC8_CHDPC512S2ACKTD8CH1PB15.SP2
17、_AOSI1252_SDPB14.SPI2_AiSOPB13:SP12,SCK1252.CKPB12.SPI2_NSS12S2_S.12C2,SARA1表2 改进后的运行结果X轴/cmY轴/cm12.003.1042.5610.30小车轮子的转速以及航向角信息。参考文献1 CACERES C,ROSARIO J,AMAYA D.Design,simulation,and control of an omnidirectionalmobile robotJj.International Review of MechanicalEngineering,2018,12(4):382.偏差量/%2齐继超,何丽,袁亮,等.基于单目相机与激光雷达1.86融合的SLAM方法.电光与控制,2 0 2 2,2 9(2):9 9-10 2.2.253郑建杰,张海涛,陈寅.基于激光SLAM的导航车软硬件系统J.电子技术与软件工程,2 0 19(15):7 2-7 4.4代凯,申棋仁,吴官朴,等.基于激光雷达的SLAM和融合定位方法综述J.汽车文摘,2 0 2 1(2):1-8.5李陆君,张智,韩蕊,等.基于激光雷达和深度相机融合的视觉SLAM研究J.智能计算机与应用,2 0 2 0,10(8):8 7-9 2.GNDH3.3VGND4SCANTX4CARX4偏差量/%0.420.3669