一种基于matlab建立线性ccd四轮车仿真模型的方法

文档序号:10687241阅读:438来源:国知局
一种基于matlab建立线性ccd四轮车仿真模型的方法
【专利摘要】本发明涉及一种基于MATLAB建立线性CCD四轮车仿真模型的方法,包括如下步骤:建立赛道模型;建立四轮车静态模型;基于四轮车静态模型建立线性CCD摄像头模型;在赛道模型中,确定三个点以获取四轮车的初始位姿信息;建立四轮车运动学模型,基于四轮车静态模型得到在姿态保持不变的情况下下一个时刻的四轮车位姿状况;基于线性CCD摄像头模型,计算线性CCD摄像头的扫描范围,并从该扫描范围内的赛道图片的像素信息中获得采样值;设置提线算法和控制算法;设置仿真过程动态演示模块,动态显示四轮车行驶的轨迹,前轮的打角情况以及每一个采样间隔四轮车线性CCD摄像头的扫描范围。该建模方法可以实现随时随地线上调试。
【专利说明】
一种基于MATLAB建立线性CCD四轮车仿真模型的方法
技术领域
[0001] 本发明涉及四轮车仿真模型领域,具体涉及一种基于MATLAB建立线性CCD四轮车 仿真模型的方法。
【背景技术】
[0002] 在智能车竞赛中,为了优化智能车的控制算法往往要进行多次的实验,而在实际 的赛道上智能车行驶过程中的误差和智能车姿态的获取比较困难。因此,大多数算法的参 数调整要通过反复的试凑来实现。这种方法存在浪费时间和资源的缺点。
[0003] 现有技术中已有采用LabView虚拟仪器技术建立了智能车仿真系统,但是LabView 的数据处理、分析能力较弱,不利于算法的移植与实现。建立了智能车的实时监测系统,能 够实时监测智能车的运行状况,但是使用了较多的软硬件资源,增加了不必要的开支。周斌 等人(http : //www· eepw· com· cn/event/action/Freescale/data06 .htm)开发了基于 LabVIEW虚拟仪器技术的智能车仿真系统Plastid。系统对赛道与赛车分别建立了模型,使 用者可以按照指示方便地自行设计赛道以及赛车,将赛道设计成各种各样的直路、弯路、坡 路,将赛车设计成各种尺寸、形状,从而使得系统的适用性更广泛。但是该系统目前还只能 用于采用光感传感器路径识别方案的智能车,对于CCD摄像头技术还不支持。其次,在仿真 过程中,系统只是根据汽车的运动学模型(将车简化为一四轮刚体来处理)进行计算,并未 考虑其侧滑以及路面摩擦力的影响。最后,计算速度也是系统面临的问题。
[0004] 李久胜等人(基于MATLAB的循线智能车仿真平台的建立,中国科技论文在线)使用 MATLAB软件建立了寻线智能车的软件仿真平台,充分利用了MATLAB软件的控制系统工具箱 能够实现各种复杂的算法的特点。但是该系统并非基于线性CCD的模型,没有考虑到环境的 干扰,而且需要在MATLAB中绘制赛道,无法使用其他来源的赛道;用于分析的数据采集量比 较少。
[0005] 目前存在的智能车仿真系统多是针对摄像头进行仿真,没有对线性CCD类型的智 能车进行线上仿真,因此只能场地调试,调试会受限于时间、地点和光线等问题。

【发明内容】

[0006] 本发明的目的在于针对现有技术的不足,提供一种基于MATLAB建立线性CXD四轮 车仿真模型的方法,该建模方法可以实现随时随地线上调试。
[0007] 本发明所提供的技术方案为:基于MATLAB建立线性CXD四轮车仿真模型的方法,包 括如下步骤:
[0008] 步骤一:建立赛道模型,通过导入图片格式的赛道俯视图,同时设置比例尺;所述 的比例尺是宽度为赛道俯视图内赛道宽度所对应的像素个数的图片,用于将实际尺寸换算 为像素级尺寸;设定赛道的实际宽度;
[0009] 步骤二:建立四轮车静态模型,所述的四轮车静态模型包括车轮与车身,前轮用于 转向,后轮用于提供动力;设定车身长、车身宽、车轮位置、车轮长、车轮宽、车轮半径、后轮 转速;
[0010] 步骤三:基于四轮车静态模型建立线性CCD摄像头模型,通过固定杆将线性CCD摄 像头设置于四轮车上部;设定固定杆尺寸、位置、线性CCD摄像头的张角、线性CCD摄像头的 前瞻信息以及CCD摄像头的采样间隔;
[0011] 步骤四:在赛道模型中,确定三个点以获取四轮车的初始位姿信息,包括四轮车的 初始位置、初始方向和初始前轮打角;
[0012] 步骤五:建立四轮车运动学模型,基于四轮车静态模型得到在姿态保持不变的情 况下下一个时刻的四轮车位姿状况;
[0013] 步骤六:基于线性CCD摄像头模型,计算线性CCD摄像头的扫描范围,并从该扫描范 围内的赛道图片的像素信息中获得采样值;
[0014] 步骤七:设置提线算法,通过提线算法将线性CCD摄像头获得的采样值进行处理, 得到赛道的左右边界?目息和中心线偏移?目息;
[0015] 步骤八:设置控制算法,通过提线算法得到的中心偏移信息控制四轮车下一个行 进状态;
[0016] 步骤九:设置仿真过程动态演示模块,将步骤一~步骤八得到的线性CCD四轮车仿 真模型导入仿真过程动态演示模块,动态显示四轮车行驶的轨迹,前轮的打角情况以及每 一个采样间隔四轮车线性CCD摄像头的扫描范围。
[0017] 上述的技术方案中,使用了一种创新性的赛道导入机制,突破了其他仿真系统平 台赛道需要在指定软件下绘制的限制以及对格式要求的限制。所述的建模方法可以导入常 见图片格式的赛道图片进行使用,大大方便了仿真的操作流程,提高了易用性。
[0018] 上述的建模方法还可以对仿真数据进行采集和分析,采集对象和现在主流的四轮 车上位机采集对象有大部分重合,因此可以方便地衔接仿真系统和上位机系统,使该系统 的实用性得到增加。此外,还可以用鼠标交互控制的方式控制四轮车的初始位姿信息,包括 四轮车的初始位置、初始方向和初始前轮打角,可以试验多种情况下四轮车的行驶情况。
[0019] 作为改进,所述的步骤六中引入噪声处理,所述的噪声处理包括引入光强系数以 模拟不同光照条件下的采样值;引入随机系数以模拟环境噪声和硬件质量波动对采样值造 成的影响;引入分布系数以模拟线性CCD摄像头采样值从中间向两侧值递减的趋势。引入了 合理的模拟实际场地干扰和硬件功能波动的随机变量,更接近于真实情况,使仿真参数和 实际调试参数尽可能缩小差距。
[0020]作为优选,所述的步骤一中赛道俯视图格式为jpeg、bmp或png;所述的赛道俯视图 内的赛道内部填充为白色,外部填充为灰色,赛道边缘采用黑色。
[0021] 所述的步骤三中线性CXD摄像头模型为:
[0022]
[0023]式中,p是质心距线性CCD摄像头地面扫描线的垂直距离,b是固定杆和质心之间的 距离,r是车轮半径,h是固定杆高度、γ是线性CCD摄像头的张角,w是线性CCD摄像头地面扫 描线的宽度。
[0024]如果给定线性CCD摄像头的前瞻信息,线性CCD摄像头的张角,固定杆高度,杆底距 车底盘中心的距离以及车轮半径,即可确定线性CCD的扫描范围,用于获取线性CCD摄像头 的采样值。
[0025] 所述的步骤五中的四轮车运动学模型为:
[0026]
[0027] 式中,α是一个采样间隔内四轮车转过的角度,β是质心-后轮轴-转弯半径辅助角, Θ是前轮的打角;W是车身宽,L是车身长;At为采样间隔时间;r为车轮半径;ω为后轮转速。
[0028] 所述的步骤七中提线算法为不对称变窗扇长度的一维小窗滤波算法;
[0029]首先根据采样值的均值作为阈值对采样值进行二值化,然后多次利用一维小窗滤 波算法滤除二值化结果的中的波动,再经过对处理结果的波动性分析判断是否丢线,最后 得到赛道的左右边界?目息和中心线偏移?目息。
[0030] 所述的步骤八中控制算法根据提线算法得到的中心线偏移信息再乘以用于控制 算法的Kp系数作为下一次前轮打角的输入量来控制四轮车下一个行进状态。
[0031] 同现有技术相比,本发明的有益效果体现在:
[0032] (1)本发明使用一种创新性的赛道导入机制,突破了其他仿真系统平台赛道需要 在指定软件下绘制的限制以及对格式要求的限制。可以导入常见图片格式的赛道图片进行 使用,大大方便了仿真的操作流程,提高了易用性。
[0033] (2)本发明的建模方法可以对仿真数据进行采集和分析,采集对象和现在主流的 四轮车上位机采集对象有大部分重合,因此可以方便地衔接仿真系统和上位机系统,使该 系统的实用性得到增加。
[0034] (3)本发明用鼠标交互控制的方式控制四轮车的初始位姿信息,包括四轮车的初 始位置、初始方向和初始前轮打角,可以试验多种情况下四轮车的行驶情况。
[0035] (4)本发明引入了合理的模拟实际场地干扰和硬件功能波动的随机变量,更接近 于真实情况,使仿真参数和实际调试参数尽可能缩小差距。
【附图说明】
[0036] 图1为实施例1中基于MATLAB建立线性CXD四轮车仿真模型的流程图;
[0037] 图2为实施例1中导入图片格式的赛道俯视图;
[0038] 图3为实施例1中线性C⑶摄像头模型图;
[0039] 图4为实施例1中四轮车确定三个点后的初始位姿信息图;
[0040] 图5为实施例1中四轮车运动学模型图;
[0041 ]图6为实施例1中模拟得到的所有时刻表现为3维形式的线性CCD采样值;
[0042]图7为实施例1中不对称变窗扇长度的一维小窗滤波算法的原理图;
[0043]图8为实施例1中内嵌的提线算法判断丢线的熵运算的原理图;
[0044] 图9为实施例1中四轮车仿真过程中的动态演示图;
[0045] 图10实施例2中导入图片格式的赛道俯视图;
[0046] 图11为实施例2中四轮车仿真过程中的动态演示图;
[0047] 图12为实施例2中模拟得到的所有时刻表现为3维形式的线性CCD采样值。
【具体实施方式】
[0048] 下面结合附图和实施例对本发明进一步说明。
[0049] 实施例1
[0050] 基于MATLAB建立线性C⑶四轮车仿真模型的方法,具体的流程如图1所示:
[0051] 步骤一:建立赛道模型,通过导入图片格式的赛道俯视图,如图2,赛道俯视图内的 赛道内部填充为白色,外部填充为灰色,赛道边缘采用黑色;同时设置比例尺,比例尺是宽 度为赛道俯视图内赛道宽度所对应的像素个数的图片,用于将实际尺寸换算为像素级尺 寸;设定赛道的实际宽度;
[0052]步骤二:建立四轮车静态模型,四轮车静态模型包括车轮与车身,前轮用于转向, 后轮用于提供动力;设定车身长、车身宽、车轮位置、车轮长、车轮宽、车轮半径、后轮转速; [0053]步骤三:基于四轮车静态模型建立线性CCD摄像头模型,通过固定杆将线性CCD摄 像头设置于四轮车上部;设定固定杆尺寸、位置、线性CCD摄像头的张角、线性CCD摄像头的 前瞻信息以及CCD摄像头的采样间隔,如图3所示,线性CCD摄像头模型为:
[0054]
[0055] 式中,p是质心距线性CCD摄像头地面扫描线的垂直距离,b是固定杆和质心之间的 距离,r是车轮半径,h是固定杆高度、γ是线性CCD摄像头的张角,w是线性CCD摄像头地面扫 描线的宽度。
[0056] 步骤四:在赛道模型中,确定三个点以获取四轮车的初始位姿信息,包括四轮车的 初始位置、初始方向和初始前轮打角;如图4所示,首先用鼠标在赛道俯视图中点选四轮车 的位置点,此时能够获得一个位置坐标( X1,yi),然后再点第二个位置点(X2,y2),( X2,y2WP (11,71)合起来可以确定四轮车的初始方向,再点第三个位置点(13,73),(13,73)和(11,71)合 起来可以确定四轮车的初始舵机打角。有了初始位置、初始方向和初始舵机打角之后就可 以根据步骤五中的四轮车运动学模型确定四轮车的下一个位置和姿态。
[0057] 步骤五:建立四轮车运动学模型,基于四轮车静态模型得到在姿态保持不变的情 况下下一个时刻的四轮车位姿状况;如图5所示,四轮车运动学模型为:
[0058]
[0059] 式中,α是一个采样间隔内四轮车转过的角度,β是质心-后轮轴-转弯半径辅助角, Θ是前轮的打角。W是车身宽,L是车身长;At为采样间隔时间;r为车轮半径;ω为后轮转速。
[0060] 步骤六:基于线性CCD摄像头模型,计算线性CCD摄像头的扫描范围,并从该扫描范 围内的赛道图片的像素信息中获得采样值;引入噪声处理,所述的噪声处理包括引入光强 系数以模拟不同光照条件下的采样值;引入随机系数以模拟环境噪声和硬件质量波动对采 样值造成的影响;引入分布系数以模拟线性CCD摄像头采样值从中间向两侧值递减的趋势。
[0061]环境光线和硬件条件波动的模拟如图6所示:实际CCD的采样不可能很理想,即白 色对应255,黑色对应0,因此为了模拟实际的效果,引入光强系数对采样值整体进行倍数上 的增大和减小,引入随机系数,在理想采样值基础上进行加一个随机序列。经过这些处理后 发现随机序列波动较为剧烈,因此再进行一步平滑化处理,即从第三个点开始,每一个点的 数值都是前两个点和本身数据的平均值。经过实际实验发现,线性CCD的采样从中央到两侧 数据有减小的趋势,因此对上述处理后的采样值还乘了一个开口向下的二次函数,以实现 压低两侧数据的效果,经过这些处理后,仿真得到的CXD采样值和实际C⑶采样已非常相近。 [0062]步骤七:设置提线算法,通过提线算法将线性CCD摄像头获得的采样值进行处理, 得到赛道的左右边界信息和中心线偏移信息;所述的提线算法为不对称变窗扇长度的一维 小窗滤波算法;
[0063] 小窗滤波算法的原理是,当小窗的两侧窗扇数字均一致时,小窗中部区域均被赋 值为小窗两侧窗扇的数据。定长度的小窗滤波算法两侧窗扇长度对称不可变,因此对于区 域边缘处的噪点不能有效滤除。而变长度的小窗滤波算法在保证小窗窗扇总长度不变的情 况下,可以动态变换两侧小窗的长度,不要求对称。这样对于区域边缘出的噪点可以有效滤 除。如图7所示,黑色代表1,白色代表0,其中黑色区域带的边缘地方存在白色的噪点,如果 使用小窗中部区域为3,小窗窗扇每扇长度为4的定长度小窗滤波算法,会无法有效滤除该 处的噪点,因为左侧的窗扇数字不一致。
[0064] 但是若使用变长度的小窗滤波算法,则可以通过动态变换小窗窗扇的长度实现左 侧和右侧窗扇数字均保持一致,便能够有效滤除小窗中部区域的噪点。每成功滤除后,下一 次小窗的位置可以移动右侧窗扇长度的距离,新小窗的左侧窗扇可以不进行颜色一致判 断。
[0065] 内嵌的提线算法还使用到了用于判断丢线的熵运算,对于采集得到的CXD采样值, 定义一个熵用来评价该组数据的混乱程度。熵即为这组数据数字的跳变次数,若某组数据 熵值大于某个阈值,基本可以判定采集该组数据时智能车发生丢线现象。如图8所示,第一 组数据的熵值为13,而第二组数据的熵值为1,可见第一组比第二组数据更加混乱。
[0066] 步骤八:设置控制算法,通过提线算法得到的中心偏移信息控制四轮车下一个行 进状态;所述的控制算法根据提线算法得到的中心线偏移信息再乘以用于控制算法的心系 数作为下一次前轮打角的输入量来控制四轮车下一个行进状态。
[0067] 步骤九:设置仿真过程动态演示模块,将步骤一~步骤八得到的线性CCD四轮车仿 真模型导入仿真过程动态演示模块,动态显示四轮车行驶的轨迹,前轮的打角情况以及每 一个采样间隔四轮车线性CCD摄像头的扫描范围,如图9所示。动态演示,可以选择实时观 看,也可以选择直接观察结果。四轮车回到距离初始位置某个距离之内后自行停止,然后可 以对仿真中所采集到的数据进行分析和处理,修改初始参数、提线算法以及控制算法等。可 以选择对动态演示中的图片进行保存以及合成动图,便于与其他成员的交流和分享,更加 直观,生动。
[0068] 实施例2
[0069] 具体操作与实施例1相同,不同点在于步骤一中导入的赛道俯视图不一样,如图10 所示;最终的动态演示如图11所示,模拟得到的所有时刻表现为3维形式的线性CCD采样值 如图12所示。实际的赛道不容易设计成等距螺旋线形式,但是在软件中很容易绘制等距螺 旋线,当四轮车沿着等距螺旋线的赛道行驶时,因为曲率半径不断变化,这样就能够很清晰 的看出智能车在哪种曲率半径下的过弯性能比较好、哪种比较差、在何时可能会出现压线 或者出界的情况,依此可以有针对性地调整控制算法。可以对仿真得到的数据进行分析和 处理,可以获得CCD采集到的边界信息和偏移量,观察曲线的趋势和变化情况,对一些数据 点进行调整。
[0070]针对实施例中的控制算法,本建模方法的可扩展性很大,控制算法不拘泥于PID, 可以是任意形式,只要满足返回值和内置程序的返回值相同即可,提线算法也同理,本发明 中的提线和控制算法可以由用户自己指定。
【主权项】
1. 一种基于MATLAB建立线性C⑶四轮车仿真模型的方法,包括如下步骤: 步骤一:建立赛道模型,通过导入图片格式的赛道俯视图,同时设置比例尺;所述的比 例尺是宽度为赛道俯视图内赛道宽度所对应的像素个数的图片,用于将实际尺寸换算为像 素级尺寸;设定赛道的实际宽度; 步骤二:建立四轮车静态模型,所述的四轮车静态模型包括车轮与车身,前轮用于转 向,后轮用于提供动力;设定车身长、车身宽、车轮位置、车轮长、车轮宽、车轮半径、后轮转 速; 步骤三:基于四轮车静态模型建立线性CCD摄像头模型,通过固定杆将线性CCD摄像头 设置于四轮车上部;设定固定杆尺寸、位置、线性CCD摄像头的张角、线性CCD摄像头的前瞻 信息以及CCD摄像头的采样间隔; 步骤四:在赛道模型中,确定三个点以获取四轮车的初始位姿信息,包括四轮车的初始 位置、初始方向和初始前轮打角; 步骤五:建立四轮车运动学模型,基于四轮车静态模型得到在姿态保持不变的情况下 下一个时刻的四轮车位姿状况; 步骤六:基于线性CCD摄像头模型,计算线性CCD摄像头的扫描范围,并从该扫描范围内 的赛道图片的像素信息中获得采样值; 步骤七:设置提线算法,通过提线算法将线性CCD摄像头获得的采样值进行处理,得到 赛道的左右边界信息和中心线偏移信息; 步骤八:设置控制算法,通过提线算法得到的中心偏移信息控制四轮车下一个行进状 态; 步骤九:设置仿真过程动态演示模块,将步骤一~步骤八得到的线性CCD四轮车仿真模 型导入仿真过程动态演示模块,动态显示四轮车行驶的轨迹,前轮的打角情况以及每一个 采样间隔四轮车线性CCD摄像头的扫描范围。2. 根据权利要求1所述的基于MATLAB的线性CCD四轮车模拟仿真运动的方法,其特征在 于,所述的步骤六中引入噪声处理,所述的噪声处理包括引入光强系数以模拟不同光照条 件下的采样值;引入随机系数以模拟环境噪声和硬件质量波动对采样值造成的影响;引入 分布系数以模拟线性CCD摄像头采样值从中间向两侧值递减的趋势。3. 根据权利要求1所述的基于MATLAB的线性CCD四轮车模拟仿真运动的方法,其特征在 于,所述的步骤一中赛道俯视图格式为jpeg、bmp或png;所述的赛道俯视图内的赛道内部填 充为白色,外部填充为灰色,赛道边缘采用黑色。4. 根据权利要求1所述的基于MATLAB的线性CCD四轮车模拟仿真运动的方法,其特征在 于,所述的步骤三中线性C⑶摄像头模型为:式中,P是质心距线性CCD摄像头地面扫描线的垂直距离,b是固定杆和质心之间的距 离,r是车轮半径,h是固定杆高度、Y是线性CCD摄像头的张角,w是线性CCD摄像头地面扫描 线的宽度。5. 根据权利要求1所述的基于MATLAB的线性CCD四轮车模拟仿真运动的方法,其特征在 于,所述的步骤五中的四轮车运动学模型为:式中,a是一个采样间隔内四轮车转过的角度,0是质心-后轮轴-转弯半径辅助角,0是 前轮的打角;W是车身宽,L是车身长;At为采样间隔时间;r为车轮半径;co为后轮转速。6. 根据权利要求1所述的基于MATLAB的线性CCD四轮车模拟仿真运动的方法,其特征在 于,所述的步骤七中提线算法为不对称变窗扇长度的一维小窗滤波算法; 首先根据采样值的均值作为阈值对采样值进行二值化,然后多次利用一维小窗滤波算 法滤除二值化结果的中的波动,再经过对处理结果的波动性分析判断是否丢线,最后得到 赛道的左右边界信息和中心线偏移信息。7. 根据权利要求1所述的基于MATLAB的线性CCD四轮车模拟仿真运动的方法,其特征在 于,所述的步骤八中控制算法根据提线算法得到的中心线偏移信息再乘以用于控制算法的 KP系数作为下一次前轮打角的输入量来控制四轮车下一个行进状态。
【文档编号】G06F17/50GK106055745SQ201610341045
【公开日】2016年10月26日
【申请日】2016年5月20日
【发明人】吴泽正, 韩涛
【申请人】浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1