基于阿克曼转向的车辆运动学模型在Simulink 2018b中的建立与仿真验证
基于阿克曼转向的车辆运动学模型 在simulink中建立车辆运动学模型为路径规划奠定基础能够更好的检验简化的运动学模型反映运动过程的准确性。 包括1、simulink仿真验证(版本为2018b) 2、说明文档--详细的建模过程在玩转自动驾驶算法之前总得先让虚拟小车跑起来。今天咱们来折腾阿克曼转向的车辆运动学建模用Simulink给这铁皮家伙注入灵魂。先剧透个小秘密只要三角函数玩得溜方向盘转角就能变成车轮轨迹的魔法开关。先看阿克曼几何的核心公式别急着关页面这公式比女朋友的心思好懂function delta calculateAckermann(phi, L, W) % phi:方向盘转角 % L:轴距 % W:轮距 R L / tan(phi); delta_i atan(L/(R - W/2)); delta_o atan(L/(R W/2)); delta [delta_o, delta_i]; % 输出左右轮转角 end这代码块相当于车辆的机械神经系统。当方向盘转动phi角度时内侧轮要比外侧轮转得更猛——就像冰上芭蕾的双人旋转内侧舞者需要更大幅度的转身动作。参数L和W分别对应车辆的轴距和轮距直接影响了转弯半径。在Simulink 2018b里搭建模型时记得把采样时间设为0.01秒别问为什么问就是玄学经验。运动学模型的核心是位姿更新方程x(k1) x(k) v*cos(theta(k))*dt y(k1) y(k) v*sin(theta(k))*dt theta(k1) theta(k) (v/L)*tan(phi(k))*dt这几个离散方程用S-Function实现效果最佳。注意这里用了小角度假设就像用直线近似钟摆轨迹——虽然不够精确但对路径规划来说够用了。基于阿克曼转向的车辆运动学模型 在simulink中建立车辆运动学模型为路径规划奠定基础能够更好的检验简化的运动学模型反映运动过程的准确性。 包括1、simulink仿真验证(版本为2018b) 2、说明文档--详细的建模过程建模时最容易翻车的地方是单位统一。有个惨痛教训某次把方向盘的弧度当角度输入结果车辆在仿真里跳起了街舞。建议在模型里加上单位转换模块就像给不同国家的插头配转换器。验证环节可以玩点花的让车辆走8字轨迹。当看到仿真曲线像德芙巧克力般丝滑时说明阿克曼转向模型开始靠谱了。这时候该打开MATLAB Animation Viewer看着小车在屏幕上蛇形走位成就感堪比在《欧洲卡车模拟》里完成高难度倒车。最后提醒保存模型时记得勾选Export to previous version否则你的2018b可能打不开同事的模型——别问我是怎么知道的那是个悲伤的故事。完整的说明文档里需要重点标注各模块的物理含义毕竟三个月后的自己看到一堆连线时可能比新手司机第一次上路还懵。