Anwenderberichte

塔塔汽车欧洲技术中心通过基于型号的设计加速了自动驾驶汽车控制算法的开发

挑战

为英国Autodrive项目建造并展示一辆自动驾驶汽车

解决方案

使用基于模型的设计来建模,模拟和生成运动计划和车辆控制算法的嵌入式代码

结果

  • 实时控制器实施加速
  • 调试简化
  • 开发时间专注于设计

“一群工程师团队将一辆自动驾驶汽车汇集在一起​​,并使用基于模型的设计开发和实现了现成的硬件和控制算法。尽管该系统尚未准备就绪,但它确实通过务实的设计方法展示了重要的设计概念。”

Mark Tucker博士,TMETC
塔塔(Tata)在英国考文垂(Coventry)的自动驾驶汽车的试验。

TMETC在英国考文垂的自动驾驶汽车试验。


英国政府在其2013年的秋季预算声明中提出了鼓励在英国开发自动驾驶汽车的措施。2014年7月,英国的创新局Innovate UK,发起了“将无人驾驶汽车引入英国道路”竞赛。英国Autodrive是授予资金的三个项目之一。该项目汇集了领先的汽车公司,学术机构,立法者,保险公司和其他利益相关者,对自动驾驶汽车和连接的汽车技术进行了为期三年的试验,将英国建立为全球研究,开发和整合的全球枢纽自动驾驶车辆和相关技术。

作为英国Autodrive的一部分,Tata Motors欧洲技术中心(TMETC)开发了自动驾驶软件,并将其部署在配备了井井有条的TATA HEXA SUV中。TMETC的一小组工程师团队开发了传感器的感知,运动计划和车辆控制算法。MATLAB基于模型的设计®和Sim金宝appulink®使该团队能够从纸上的设计迅速移动到模拟,然后在车辆中的嵌入式ECU上运行。

TMETC的金宝app首席工程师Mark Tucker博士说:“使用Simulink,我们可以专注于高级设计实施,而不是低级编码。”“这对我们很重要,因为提供功能性的工具是我们的目标,而不是展示我们的编码技能。”

挑战

TMETC团队旨在与一小群工程师一起提供一辆可证明的自动驾驶车辆,同时按计划和预算保持项目。为了实现这些目标,他们在可能的情况下依靠现成的组件,并寻找缩短核心控制算法开发时间的方法。

主要设计挑战是整合了系统的许多不同元素。这些元素包括雷达,激光雷达,GPS,惯性测量和单声道视觉,以及用于传感器融合,运动计划,同时定位和映射以及车辆控制的算法。

运输部出版的所有元素之间的所有沟通都必须记录在英国法规中,特别是“通往无人驾驶汽车的途径:一项测试守则”。团队决定使用机器人操作系统(ROS)中间件来解决集成和记录要求。结果,他们编写的算法需要ROS接口,并且团队需要一种可视化和分析已记录的ROS数据的方法。

自动驾驶汽车上的屋顶传感器。

自动驾驶汽车上的屋顶传感器。

解决方案

TMETC的工程师使用Simulink来建模,金宝app模拟和生成代码,用于在自主HEXA中部署的运动计划和车辆控制算法。

开发了三种媒介物控制算法:纯粹的追击,车道保存和模型预测控制。为了评估每种算法,他们将其与车辆的简单侧面和纵向模型集成在一起,并进行了闭环模拟。

纯粹的行驶方法缺乏足够的稳定性,在需要导航紧曲线和缓慢速度的城市中心,巷道保存方法的表现相对较差。模型预测控制器在跨越一系列操作场景的模拟中表现良好。

团队完善了横向和纵向模型预测控制器,该控制器使用参考设置点,车辆动态测量以及车辆动力学模型来生成最佳的车辆控制序列,以遵循指导,加速和制动的最佳车辆控制序列,以遵循计划的轨迹。

使用硬件测试来检查硬件接口。

TMETC团队通过嵌入式编码器从其运动计划算法中生成代码®并将其部署到安装在车辆中的基于Linux的PC上。使用Simu金宝applink实时™,他们将车辆控制算法部署到Speedgoat目标硬件安装在车辆中。

进行了公路测试,在此期间从ROS数据以及直接从车辆控制器记录了数据。使用RVIZ,MATLAB和机器人系统Toolbox™分析和可视化数据。为了调试和进一步完善控制算法,通过模拟中的控制器播放了记录的驾驶场景数据。

TMETC在英国Autodrive Project在Coventry和Milton Keynes的车辆试验中成功展示了他们的自动驾驶汽车。

结果

  • 实时控制器实现加速了。塔克说:“一旦我们准备在车辆上进行测试,我们就会使用Simulink实时将车辆控制器部署到Speedgoat硬件上。”金宝app
  • 调试简化。塔金宝app克说:“ Simulink使我们能够在模拟中从公路测试中播放数据。”“我们可以在任何时候停止模拟,从而可以挖掘控制模型以查看正在发生的事情并解决我们在算法中确定的任何怪癖。”
  • 开发时间集中在设计上。塔克说:“所有运动计划和车辆控制代码都是从我们的Simulink模型中生成的。”金宝app“这为我们节省了很多时间,因为我们可以专注于高级设计,而不是在代码中实现方程式和处理异常。手工编码我们的控制算法将是一项更大的任务。”