掌桥专利:专业的专利平台
掌桥专利
首页

基于ROS通用机器人操作系统的多轴无人车底盘的设计方法

文献发布时间:2023-06-19 19:27:02


基于ROS通用机器人操作系统的多轴无人车底盘的设计方法

技术领域

本发明涉及汽车技术领域,具体涉及一种基于ROS通用机器人操作系统的多轴无人车底盘的设计方法。

背景技术

伴随着人类文明工业化的深入发展,重型车辆及特种车辆越来越多,多轴车的转向和扭矩分配策略成为影响车辆的一大重要因素;尤其是近些年,电动汽车的喷薄发展和机器人系统无人驾驶的逐步应用,对于多轴特种车辆在各种行驶工况下的分配策略提出了新的需求;

同时,由于汽车的基数大且控制的延迟性,汽车的交通事故可以说是所有交通工具中的第一,全世界都对汽车的安全性能提出了更高要求,对汽车的控制算法提出了更高的要求;而电动汽车就给以上要求提供了技术可能,电动汽车天然的分布式系统架构和电传的优秀效率都远高于内燃机汽车,未来的无人驾驶也要建立在这种低迟滞、高效率的电机架构之上,因此对电动汽车的研究就有了必要性;

而在现有技术中,针对上述无人驾驶的多轴车的转向和扭矩分配的问题,并无相关记载和有效的处理方法,因此,亟需设计基于ROS通用机器人操作系统的多轴无人车底盘的设计方法,来解决上上述无人驾驶的多轴车的转向和扭矩分配的问题。

发明内容

针对上述存在的问题,本发明旨在提供一种基于ROS通用机器人操作系统的多轴无人车底盘的设计方法,本方法通过设计基于目标速度控制的扭矩分配算法可以较好的对系统的多轮扭矩进行有效分配,保证了目标速度的基本稳定,实现了扭矩的模糊化自分配策略,有较好的实用价值,可以用于实现无人驾驶的算法基础,具有目标速度控制的扭矩分配效果好、实用性强的特点。

为了实现上述目的,本发明所采用的技术方案如下:

基于ROS通用机器人操作系统的多轴无人车底盘的设计方法,包括

步骤一:设计多轴车电驱动硬件平台

S1.1硬件架构设计;

S1.2软件平台设计;

步骤二:设计基于目标速度控制的多轴车转向和扭矩分配算法

S2.1利用阿克曼转角原理计算多轴车车轮转向角;

S2.2根据转向内外速度不同设计模糊化扭矩控制方法;

步骤三:设计控制车辆转向的控制算法模块。

优选的,所述的硬件架构设计包括

(1)使用三层次的嵌入式硬件平台,且在各层使用不同的处理器,其中以Nano处理器作为多轴线控底盘的主控制器,PC机作为从机;

(2)全系统结合局域网,USB接口,CAN总线等多种总线结构,其中PC机与底层JetsonNano处理器使用蒲公英异地组网软件实现互联网下的局域网构建,通过tcp/ip协议进行数据交换和远程控制。

优选的,所述的软件平台设计的过程包括

最底层的ROS底盘控制软件用于直接控制车辆底盘信息和获取底盘信息的软件系统;

中间层是基于蒲公英VPN软件搭建的远程局域网,是全系统的信息交互层;

最上层是决策层,是人在回路的、也可以是机器自己进行控制的上位机层,是全系统的指令下发的中枢。

优选的,所述的利用阿克曼转角原理计算多轴车车轮转向角的过程包括

S2.11计算车轮转向角

设K为转向轮中心距,L为电动汽车的轴距,根据几何计算得出车轮转向角公式如下

其中,α

S2.12在计算得到多轴车车轮转向角的基础上,计算车轮转角与阿克曼转角关系。

优选的,步骤S2.12所述的车轮转角与阿克曼转角关系的计算过程包括

(1)设a0角为已知角,三角斜边与轮子的方向成垂直关系,即可得出:

a=90-a0(2)

f0=90-f(3)

(2)如图7所示,已知一轴转角为a,一轴距中间点距离为A,二轴距中间点距离为B,设中间点距转弯中心为S,二轴转角为b,已知二轴距中间点距离为B,则可推得:

(3)已知a0为程序转角,L边为轮距,A+B边为一轴到转弯点连线距离,推得:

/>

因此,已知一轴转角和各轴距转弯中点的距离,可以计算出多轴转角。

优选的,所述的根据转向内外速度不同设计模糊化扭矩控制方法的过程包括

S2.21设计扭矩分配控制算法;

S2.22对反馈速度进行处理,实现左右轮的差速控制。

优选的,所述的扭矩分配控制算法的设计过程包括

纵向的车辆运动基于PD控制的全车速度控制和扭矩分配策略,发挥其多轮都是单独驱动轮的优点,采用人在回路控制目标速度,算法计算得出扭矩分配值来控制全车多个轮的扭矩输出,采用扭矩分配公式:

T=K

由于汽车转向是圆弧型,因此转弯速度比为:

以此类推即可得出转向外侧的多个轮子的转向角为:

优选的,所述的对反馈速度进行处理的过程包括

设反馈速度为V0,左轮速度为V2,右轮速度为V1,且车向右转向,左轮为外侧轮,则有

/>

a×V0=V1(30)

b×V0=V2(32)

则:右轮实时速度的处理算法为V0*2/(1+R2/R1);

左轮实时速度的处理算法为V0*2/(1+R1/R2);

且当右转变左转,右侧轮变为外侧轮时,其处理算法左右交互即可。

优选的,所述的控制算法模块的设计过程包括

S3.1设计S计算模块;

S3.2设计控制系统

S3.21设计目标速度接收模块;

S3.22设计扭矩PD控制器。

优选的,所述的扭矩PD控制器的设计过程包括

(1)设计左前轮控制算法模块;

(2)设计左后轮控制算法模块;

(3)设计模块扭矩分配模块。

本发明的有益效果是:本发明公开了基于ROS通用机器人操作系统的多轴无人车底盘的设计方法,与现有技术相比,本发明的改进之处在于:

(1)本发明设计了基于ROS通用机器人操作系统的多轴无人车底盘的设计方法,本方法通过设计基于目标速度控制的扭矩分配算法可以较好的对系统的多轮扭矩进行有效分配,保证了目标速度的基本稳定,实现了扭矩的模糊化自分配策略,有较好的实用价值,可以用于实现无人驾驶的算法基础;

(2)本方法设计基于ROS机器人系统的多轴底盘,可以作为一个完善的实验平台,来验证多轴特种车的运动算法,能够比较好的反映多轴车的运动特性,对于实验应用和教学使用有一定意义,可以基于该平台进行更加深的理论探索和工程实践;同时可以用于后期的无人驾驶的试验车,结合底盘控制程序可以进行平行驾驶等多种功能的实现,具有目标速度控制的扭矩分配效果好、实用性强的优点。

附图说明

图1为本发明基于ROS通用机器人操作系统的多轴无人车底盘的设计方法的设计流程图。

图2为本发明全车硬件架构图。

图3为本发明硬件平台网络拓扑图。

图4为本发明软件架构图。

图5为本发明阿克曼转弯原理图。

图6为本发明车轮与阿克曼转角关系图。

图7为本发明右侧六轮的阿克曼转角图。

图8为本发明两侧车轮转角图。

图9为本发明扭矩分配R边关系图。

图10为本发明simulink整体程序框图。

图11为本发明S计算模块图。

图12为本发明一车控制模块内部框图。

图13为本发明接收车底盘信息模块图。

图14为本发明一车左前轮的控制算法模块图。

图15为本发明阿克曼右转算法模块图。

图16为本发明一车左后轮的控制算法模块图。

图17为本发明一车左后轮分配算法原理图。

图18为本发明非起算轮的目标速度处理算法原理图。

图19为本发明一车的扭矩分配模块原理图。

图20为本发明实施例2实时速度输入为每分钟5转的响应效果图。

图21为本发明实施例2实时速度输入为每分钟5转、转角60度的响应效果图。

图22为本发明实施例2实车车架实验P控制器的响应效果图。

图23为本发明实施例2PD控制实时速度为每分钟30转的响应效果图。

图24为本发明实施例2实车室外实验P控制器的响应效果图。

图25为本发明实施例2车辆行驶轨迹图。

图26为本发明实施例2实车室外实验PD控制器的响应效果图。

具体实施方式

为了使本领域的普通技术人员能更好的理解本发明的技术方案,下面结合附图和实施例对本发明的技术方案做进一步的描述。

实施例1:参照附图1-26所示的基于ROS通用机器人操作系统的多轴无人车底盘的设计方法,本实施例以六轴无人车底盘为例,包括

步骤一:设计多轴车电驱动硬件平台

S1.1硬件架构设计

(1)如图2所示,本实施例所设计的硬件平台是一套分三层次的嵌入式设计方案,各层均用了不同处理器,以PC和Nano为主从机,形成了一套开放式的硬件控制方案,为科研研究留下了硬件扩展空间;其中

Nano处理器作为六轴线控底盘的主控制器,对CAN分析仪获取的底盘CAN报文进行解析并发布到ROS系统的节点中;

PC机作为从机,通过虚拟局域网获取ROS节点信息,进行遥控控制和自主定位导航等ROS系统操作;

(2)如图3所示,全系统结合局域网,USB接口,CAN总线等多种总线结构,其中PC机与底层JetsonNano处理器使用蒲公英异地组网软件实现互联网下的局域网构建,通过tcp/ip协议进行数据交换和远程控制;

JetsonNano主机通过USB接口与CAN网络进行连接交换,内部ROS系统是基于分布式控制的tcp/ip协议通讯;

CAN网络通过三个CAN总线分析仪的6路CAN总线集合,形成CAN总线网络并组成通讯回路,一路接收状态信息,一路控制车辆运动,其中车轮的扭矩、车速,转向机构,动力电池信息等为CAN网络节点,用于回传和控制;

GPS/惯性组合装置通过CAN转USB接口连接JetsonNano主机并实现数据交换,监测六轴车运行数据;

S1.2软件平台设计

如图4所示,本实施例所设计的软件平台是一个分层的控制系统:

最底层的ROS底盘控制软件是用于直接控制车辆底盘信息和获取底盘信息的软件系统,是全系统的核心和基础,主要运用了ROS系统的Msg和话题服务等内容来搭建,并提供给其他节点来使用,主要准备工作是Ubuntu系统的安装和ROS系统的安装;

中间层是基于蒲公英VPN软件搭建的远程局域网,是全系统的信息交互层,没有这个通道,主机和从机之间就无法通讯,也就不能实现控制和数据回传,可以说是全系统的中间介质,让主从机互联网的层级上进行交互,同时也可以让更多的用户使用和交互,实现一个物联网的概念,主要的准备工作是蒲公英软件的安装和ROS系统主从机配置;

最上层就是决策层可以是人在回路的、也可以是机器自己进行控制的上位机层,是全系统的指令下发的中枢,没有它车辆底盘就不会有运动、反馈信息也没办法处理,可以说是全系统的大脑,是控制算法的核心,通过一个控制算法使车辆底盘的运行参数进一步优化,同时为无人驾驶提供标准的控制方法;主要准备工作是VM虚拟机的安装和MATLABSimulink的ROS工具箱的安装和学习;

步骤二:设计基于目标速度控制的多轴车转向和扭矩分配算法

S2.1利用阿克曼转角原理计算多轴车车轮转向角

算法设计是六轴底盘运动学参数优化的核心,也是底盘运动学分析的基础,无论是正常的机动运行还是以后的无人驾驶都要建立在运动算法的基础之上;但是如果直接使用C语言进行算法编辑,不仅会使编写难度大大加大,也会使别人接手的难度增加,也就是开发的通用性极差,算法的集成性极差,因此本实施例选择simulink软件为基础搭建控制算法,Simulink具有非常多的算法工具箱和模型,对算法开发和未来应用都有极大的优势,具体步骤包括

S2.11计算车轮转向角

电动汽车阿克曼转向原理是指在车辆忽略侧向力、轮胎偏磨等因素的理想状态下,电动汽车的所有车轮的旋转中心线能最终交于一点;由阿克曼原理得到的汽车前轮内轮转角和外轮转角的关系可表示为简易几何模型:四驱电动汽车根据传统汽车阿克曼转向理论进行设计时,在低速时能保证汽车顺利转弯而不发生磨胎现象,不仅提高汽车轮胎使用寿命,还增加了驾驶电动汽车的安全性;

如图5所示前轮的左右转向角,设K为转向轮中心距,L为电动汽车的轴距,根据几何计算得出车轮转向角公式如下

其中,α

由于硬件限制,不能分别控制各轮转角,只能控制单一轴转角,两轮之间的路程差通过外部机械结构和扭矩差速控制来解决;

S2.12在计算得到多轴车车轮转向角的基础上,计算车轮转角与阿克曼转角关系

(1)如图6所示,设a0角为已知角,三角斜边与轮子的方向成垂直关系,即可得出:

a=90-a0(2)

f0=90-f(3)

(2)如图7所示,已知一轴转角为a,一轴距中间点距离为A,二轴距中间点距离为B,设中间点距转弯中心为S,二轴转角为b,已知二轴距中间点距离为B,则可推得:

(3)如图8所示,已知a0为程序转角,L边为轮距(69cm),(A+B)边为一轴到转弯点连线距离,可推得:

由此可知,已知一轴转角和各轴距转弯中点的距离,可以计算出六轴转角;这里是为了尽可能增大六轴车的最大转弯角,选择一轴和最后一轴为最大转角来约束全车转向控制,后期可以通过程序控制随意修改;

S2.2根据转向内外速度不同设计模糊化扭矩控制方法

由于原车底盘有扭矩环和速度环两种控制方式,但速度环控制为全车速度且转向差速是对原四轮底盘适用的,对于六轴十二轮底盘没有使用价值,因此这里本实施例选择速度闭环的扭矩分配算法;车底盘的CAN总线协议中正好有扭矩控制帧0x123和实时速度扭矩的0x177和0x178对应左右轮的CAN帧,为了优化算法和更好的反馈速度闭环下的扭矩分配效果,这里本实施例引入了MALAB软件中的simulink来优化闭环分配算法;

simulink与ROS系统的连接建立,前期为了实现罗技G29方向盘的远程控制,本实施例在全系统中加入了异地组网的部分,这里也可以使用这个异地局域网通道来实现算法的远程控制;使用simulink RosTool工具箱里的ROS1模块来搭建simulink上的ROS话题;

全车的转角控制已经设置好,现在需要设计一个用于多轴车的扭矩分配算法来适应其多轴车直行和转向工况下的差速效果,实现动力分配和减小对轮胎的损耗;本实施例在这里建立了一种速度环计算的模糊化扭矩分配算法,可以较为简单实用的实现内外差速效果,也较为量化的控制车辆的运动信息;

S2.21设计扭矩分配控制算法

如图9所示,纵向的车辆运动基于PD控制的全车速度控制和扭矩分配策略,发挥其多轮都是单独驱动轮的优点,采用人在回路控制目标速度,算法计算得出扭矩分配值来控制全车12个轮的扭矩输出,采用扭矩分配公式:

T=K

由于汽车转向是圆弧型,因此转弯速度比为:

angle=(Joy->axes[axis_ang]*angular)/2;

S=174/tan(angle*PI/180.0f);

L=69;

A1=((atan(104/(S+69)+0.0f))*(-1))*2*180.0f/PI;

B1=(atan(23/(S+69)+0.0f)*(-1)*180.0f/PI)*2;

以此类推即可得出转向外侧的多个轮子的转向角为:

则:R1=S/cos(a0);

R2=(S+69)/cos(A1);

V2/V1=R2^2/R1^2

S2.22 simulink编程实现

如图10所示,由于本实施例车底盘的速度反馈为前轮和后轮分别反馈且速度值为前或后两轮的速度平均值,因此在这里需要对反馈速度进行处理,来实现左右轮的差速控制;设反馈速度为V0,左轮速度为V2,右轮速度为V1,且车向右转向,左轮为外侧轮,则有

a×V0=V1(30)

b×V0=V2(32)

则:右轮实时速度的处理算法为V0*2/(1+R2/R1);

左轮实时速度的处理算法为V0*2/(1+R1/R2);

且当右转变左转,右侧轮变为外侧轮时,其处理算法左右交互即可。

步骤三:设计控制车辆转向的控制算法模块

如图10所示的simulink整体程序图,本实施例所述控制算法分为三个部分,每个部分控制一辆车的四轮扭矩;

S3.1设计S计算模块

如图11所示,S是车轮转向中心距离车底盘的垂线距离,主要是为了计算六轴车各轮转角及各轮距离转向中心的距离R;其算法已经在前文推导过,这里不再赘述;

S3.2设计控制系统

如图12所示,其所示的是控制系统的第一部分对应的是第一个车底盘即六轴底盘的前两轴,主要由四个轮距转向中心的距离计算,R1,R2,R3,R4分别对应车的左前,右前,左后,右后四轮;其具体包括一个目标速度接收模块,四个扭矩PD控制器和一个扭矩分配发布模块,其具体设计过程包括;

S3.21目标速度接收模块设计

如图13所示,所述目标速度接收模块用于接受ecu0的话题消息并通过总线选择器将目标速度和shift消息提取出来,进行读取;且使用三路的原因是,之后要对转向工况下六轴底盘进行扭矩分配,将控制分为直行和蟹形转向,阿克曼右转向,阿克曼左转向三条线路进行选择分配,用shift消息对三条路进行选择;

S3.22扭矩PD控制器设计

(1)左前轮控制算法模块的设计

如图14所述,所述左前轮控制算法模块的处理过程是PD算法和算法输入数据的选择,通过G29方向盘控制程序的角度输出进行判断,当角度等于0度时判断为直行和蟹形转向(需控制程序判断),输出shift=0,通过swich模块进行判断,输出第一路进入的信号;当角度大于0时判断为阿克曼右转转向,输出shift=1,通过swich模块进行判断,输出第二路输入的信号;当角度小于0时判断为阿克曼左转转向,输出shift=2,通过swich模块进行判断,输出第三路输入的信号;

在图14中,第一路直接读取目标速度消息motor来用于PD控制算法,这样全车六轴十二轮将保持相同的目标速度进行输出;第二路为阿克曼右转的解算算法,因为其为前左轮,因此在右转时在外侧进行滚动,其计算公式应为

(2)左后轮控制算法模块的设计

如图16所示,在本模块中,PD算法闭环负反馈部分本实施例使用的是车辆反馈的实时车速信息,一个车反馈两路信号,前车两轮的平均速度和后车两轮的平均速度,因此当需要实现两轮的差速控制时,必须通过一个算法将左右两轮的实时速度分解开来,即需在反馈模块设计的两个function模块;通过选择左右转和直行的shift信号,选择输入到比较器进行负反馈,同时经过PD算法处理过的数据通过扭矩分配模块下发到车的左前轮,并不断迭代反馈,直至目标速度的修正值和实时速度的修正值实现相等,一直处于动态平衡的状态;

以上控制模块是六轴车的一轴也是本实施例计算的起算轴,而中间的四轴因为其速度需要根据起算轴的速度进行调整,因此在后续轴的计算中需要R1来进行比值计算,来获取后续轮的速度与起算轮速度的比值,因此在模块中使用了out模块将R1的参数传到了其它四轴的控制模块中进行数据解算;

如图17所示,在左后轮控制算法模块中,设有一车左后轮分配算法,本算法为一车左后轮的算法修正部分,通过in6模块将R1的计算结果引入模块中,其中因为左转为内测轮,其参考速度应为前左轮的速度即motor再加上比值即

如图18所示,此时对应的外侧轮的参考速度就不再是motor了,而是内侧轮的速度即左边内侧轮的算法解算后的目标速度,端口y的输出速度;

(3)模块扭矩分配模块设计

如图19所示,模块扭矩分配模块通过ROS工具箱的pub函数模块和空消息模块来实现消息发送的功能;将编译好的自定义消息导入到matlab中,在空白消息模块的功能界面选择扭矩分配信息帧即ecu_123,通过总线分配器模块将Bus输入的消息分解开,形成数据空为,让in1,in2,in3,in4四个输入端口将扭矩数据传到消息帧内,再通过pub模块把写好格式内容的ecu_123发布到一车的扭矩话题/ecu1中,实现扭矩的分配控制。

经上述方法所建立的基于ROS通用机器人操作系统的六轴无人车底盘,包括

实施例2:为验证如上实施例1所述方法设计的基于ROS通用机器人操作系统的六轴无人车底盘的有效性,设计本实施例对上述方法所述的基于ROS通用机器人操作系统的多轴无人车底盘进行多轴车转矩协调分配实验和分析:

1.P与PD控制器下的台架实验分析

由于实车试验具有极大的不确定性和危险性,实车场景试验前我选择先进行,实验室条件下的基于悬空台架的初步实验,检验算法和实际硬件之间的控制耦合情况,针对具体的硬件参数,来修改软件算法和参数,更好提升硬件的性能;

1.1.P控制器下台架实验结果

如图20所示,改仿真数据是在数学模型的基础上,输入目标速度0,实时速度每分钟5转得出的扭矩输出数据,这里使用的是P控制器,可以看出系数设置偏大,主要是因为物理模型的扭矩输出受到电机影响,较小扭矩值下不能转动,因此设置较大系数;

如图21所示,输入每分钟5转的实时速度和转角60度的控制信息来检查,实时速度在转向时左右差速的修正算法是否工作正常;可以看出在左转60度的控制信息下,左轮的速度修正减小,右轮速度增大,当然由于目标速度没有输入也没有实车响应,不能看到其在增大过程中的数据修正;

如图22所示,这是使用实车车架实验进行的P控制器调试实验数据,可以看到在开始阶段,实时速度接收的效果不好,实时性工作有一定问题;之后经过一段时间,系统开始正常工作,在输入一个目标速度后,由于车辆电机的性能特性,需要一个较大的扭矩启动,实时速度为0,而扭矩分配信号黄色线有一个较大的输出,之后迅速回落,而实时速度和目标速度接近但没有重合,这里是P控制器的参数设置过小且存在静态误差导致的,也可以看出在实际物理模型与数字分析模型之间是有巨大差距的,在之后的参数设计中应当考虑到现实的物理影响参数,将控制律的数值往大值靠近,保证控制效果较好的实现;同时,可以看到这里的将目标速度减为0时,即松开油门时,扭矩分配输出了一个较大的反向数据,这里是因为实时速度还存在,目标速度和实时速度产生了负值偏差,经过P控制解算输出了负值的扭矩;也就对车辆本身进行了制动,这里和实际的人开车有较大的不同,主要是应该无人驾驶的安全可靠性要求,但控制信号消失时,无人驾驶器必须恢复静止状态,不能进行运动;而且,输入速度0信号也是对无人车辆的一个控制信号,在这里不能将它设置为人开车的溜车状态;

1.2.PD控制器下台架实验结果

如图23所示,这里的后两轮的控制算法使用了PD算法,前两轮是P控制;可以通过对比直观的看出在PD控制下,初始阶段有一个较大的跃升阶段,这也是使用D的效果,可以更快的接近目标的速度,但是会产生较大的超调量;不过,正是因为其超调量的存在,更加适应了我们实际物理模型的控制效果,因此在这里使用PD控制理论上应该可以更好的实现扭矩分配的效果,对于车辆的实时反应性能会有一个较好的提升;

如图23所示,这是使用了PD控制器下的实车台架实验效果,从实验结果可以看出,加入了D控制器后,扭矩输出的响应非常迅速但是其波动的剧烈程度也加大了,系统的不稳定性改变明显,同时由于P控制器的设置原因以及实车实时速度判读的底层问题,使用PD控制器依然没有较好的跟踪目标速度,需要在实地进行参数调节。

2.P控制器下的实车场景实验

经过前期的台架实验,对实验的数据和结果分析,控制算法已经基本实现各项控制要求,车辆行驶安全已经有了一定保证,可以进行实车的室外实验并对实际运行状态下的车辆进行PD控制参数调节,对实际车辆运行效果进行进一步优化;

2.1.P控制器下的道路实验分析

如图24所示,这是在校园内封闭道路进行的实车道路测试的实验结果,从这张图里可以更明显的看到,车辆启动时轮胎突破静摩擦和电机自带的阻力所需要的扭矩大小,同时也可以看出实车运行状态下,车辆较大自重情况下道路对轮胎的摩擦力体现,比台架实验时输出的扭矩差的非常多,有将近3倍的差距;这部分实验包括了转向的部分内容,可以通过看橙色线的变化来反映车辆转向时,控制算法实现的差速控制特性;左右轮的目标速度分配处理上基本已经实现了算法控制的要求,但是实时速度的修正算法对应左右轮的实时速度修正还是存在一定问题,在转向过程中,实时速度的修正比例并没有较好的体现出来,较好的表现在图中40-50秒这个时间段中,可以明显看出,算法在左右轮的实时速度进行了有效的修正;同时,较大的区别还体现在实时速度的测量上,由于现实路况比较复杂,道路有沟沟坎坎,存在外在的干扰因素较为明显,实时速度蓝色线明显比台架实验的波动明显,存在较大的波动;上下对比可以看出,前轮的扭矩输出远小于后轮的扭矩输出,这也是实车道路行驶的特性之一,一方面单车辆的主要载荷即电池是放在后驱上的,另一方面由于算法和控制的延迟性可能会出现前轮阻碍了后轮的可能也会导致前后轮的扭矩输出不同,和实际的理论分析也是符合实际的表现;

2.2.PD控制器下的道路实验分析

如图25所示,在实际道路情况下PD控制器受外界干扰更加明显,尤其是测试的D参数设置为0.1,但是可以看到扭矩分配非常的大,主要原因是由于控制周期短的原因,使微分项受干扰因素的震荡更大,在部分时候甚至会出现微分出无限导致程序崩溃停止运行的状况;不过同时也可以清楚的看到速度的输出比P控制器下的更加快速且准确,扭矩响应非常迅速且输出数值较大;当然,对于实验出现的问题,本实施例会从PD控制的数值入手,对其他各项的计算参数进行约束,保证微分结果项的有限性,进而提升系统的工作可靠性;

通过上述实验和理论分析,发现该速度环下的扭矩分配算法可以较好的对系统的十二轮的扭矩进行有效分配,保证了目标速度的基本稳定,实现了扭矩的模糊化自分配策略,有较好的实用价值,可以用于实现无人驾驶的算法基础;

该ROS机器人系统,有较好的可开发性,基于开源平台ROS制作的六轴底盘,可以作为一个比较完善的实验平台,来验证多轴特种车的运动算法,能够比较好的反映多轴车的运动特性,对于实验应用和教学使用有一定意义,可以基于该平台进行更加深的理论探索和工程实践;

同时本六轴底盘使用模块化搭建的方法,在未来可以对轴距、轴数进行修改,可以用于更多的车型的算法设计和实验分析;同时,由于其底盘参数的基本一致,也可以使用平行驾驶的功能,做一款模拟驾驶的系统,为重型多轴特种车的司机培训提供一个简单的平台。以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

相关技术
  • 基于ROS机器人操作系统的机器人自动充电对接方法
  • 一种基于ROS机器人操作系统的机器人自动跟随方法
技术分类

06120115917984