无人驾驶车辆控制(四):Matlab+ROS快速开发控制算法

声明:此篇文章内容参考B站UP主:-DandD-

目录

一、汽车电子V流程开发

二、纯软件仿真

三、RCP仿真

四、自动生成代码

五、HIL仿真

六、系统测试


一、汽车电子V流程开发

现代控制器开发采用“V字开发流程”,利用Matlab/Simulink开发ROS C++控制算法程序参考该方法

      本次课程以ROS系统自带的小海龟为控制对象,完成路径跟踪控制算法的开发。如果换成其他的仿真模型或者实际的机器人,完成其他功能的算法开发,流程也是类似的。

     通过一个轨迹跟踪控制算法的开发实例,展示MATLAB与ROS联合快速开发控制算法的流程(V字开发流程):理论推导与纯软件仿真(MATLAB/Simulink);RCP仿真(Simulink控制ROS);自动生成代码;HIL仿真(ROS控制Simulink);系统测试(ROS)。

      要想设计一个控制器,首先要对它的功能需求进行分析,对应的就是系统测试/标定。在功能需求分析时就可以进行理论推导,利用simulink进行纯软件仿真和仿真验证。

      接下来就是利用RCP快速控制原型的半输入仿真。虚拟的控制器控制实际控制对象。如果效果通过的话,就可以对虚拟控制器自动生成代码,生成一个报告和一个代码包,代码包就可以在ROS环境下进行编译运行。

      接下来是HIL,硬件在环仿真。就是实际的控制器控制虚拟的控制对象。RCP和HIL两种版输入仿真可以交叉验证。验证虚拟的控制器和虚拟的控制对象的有效性。

      最后形成系统。实际的控制器和实际的控制对象,如果发现有什么问题可以返回到功能需求中进行迭代设计。这样就形成一个闭环,对系统迭代升级,即使发现问题,优化控制系统。

       由于前期是simulink图形化编程,和流程图十分类似,就可以在设计初期避免大量的代码编写工作。同时,可以利用原有的Matlab/Simulink文件,照搬控制器开发流程,实现C++程序开发。本来在Windows系统下利用Matlab/Simulink进行控制器开发的同学可以照搬到ROS C++环境下。由于是自动生成C++代码工具,减少代码量,同时可以充分利用Windows系统下各种仿真工具,如无人车中的Carsim进行动力学仿真。在传统的控制框架下,利用上层规划得到前馈量,然后机器人会有反馈量,利用前馈反馈的控制结构得到的控制量输入到机器人模型中,会发现和我们之前搭建的纯软件仿真结构非常相似。在后续的开发中,只需要将控制量输入和反馈量输入接口设计好就可以完成代码快速开发。将控制量改成Publish,Subscribe机器人返回接口,将工作重点放在控制算法开发上。

二、纯软件仿真

根据V字开发流程,我们应该一次搭建出控制对象模型,控制系统模型,以及期望轨迹模型,形成控制闭环。

首先期望轨迹。输入纵向速度Vx和横摆角速度Wz,得到一条期望轨迹。

轨迹跟踪方法采用无人车控制理论中比较常用的控制方法,纯跟踪算法。理论推导:本次小海龟路径跟踪算法采用纯跟踪算法(Pure Pursuit),推导过程见无人驾驶车辆控制(三):纯跟踪算法(Pure Pursuit)这里直接写出结论:对于两轮汽车,也就是自行车模型

要跟踪轨迹,需要控制前轮转角

小乌龟作为被控对象,本身具有物理模型(运动学模型Kinematic model)

据此搭建simulink模型:

接下来搭建控制器模型,用到的是纯跟踪算法。基于上述推导搭建算法模型

接下来看半输入仿真RCP

三、RCP仿真

四、自动生成代码

五、HIL仿真

六、系统测试

 

  • 4
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值