基于Qt的汽车仪表模拟

如下图所示,今天主要实现定速巡航、自适应巡航、车道偏离、车距保持这几个功能

我通过观察我车的HUD发现,定速巡航就是自适应巡航的一部分,同时自适应巡航其实就是定速巡航的升级版本。当我们启动巡航是,给车辆一个固定的速度,当车辆检测到前方没有车辆是,那就按照我们给定的速度行驶,这时就是定速巡航,如果检测到前方有车辆,那么这时就是自适应巡航,自适应巡航就是按照前方的车速跟车行驶,当前方车辆大于我们给定速度是,按照我们给定的速度行驶。

车道偏离检测,我观察看来就是在我前风挡玻璃的前面有一个摄像头,通过摄像头拍摄路面情况解析算出车道线的位置,并判断车辆是否压线。当车辆压线是,对应的方向的车道线消失,这个功能在60Km/h的时候才会被激活或者是显示。

车距检测,这个现在大家的做法应该都一样,可能每个车安装的设备都是一家的,就是通过车前方的一个雷达来实时检测前车与我们的位置,并根据当前车数和车身自身参数给定一个安全的距离,HUD上面的分为三个档,即上图中中间那三个矩形。随着我们与前车距离的虽小而减少并至消失。

先来实现我们的定速巡航与自适应巡航。当定数巡航被激活是,HUD上面显示“[ ]”,当车辆检车到前方车辆切换自适应巡航时,图中[]中小汽车图标出现,表示当前工作模式为自适应巡航。当前车消失是,小汽车图标消失,表示切换为定速巡航模式,以我们给定的速度定速实行。实现方式简单,这里就不画流程图了,还是补上流程图吧

首先定义三个宏定义,用来标记巡航的工作模式如下

#define ADAPTIVICRUISECONTROL_OFF 0 //巡航关闭
#define ADAPTIVICRUISECONTROL_NOCAR 1   //定速巡航
#define ADAPTIVICRUISECONTROL_CAR 2     //自适应巡航

不定义也可以,自己能分的清楚就可以

实现接口如下

void HUD::set_AdaptiveCruiseControl(int controlModel)
{switch (controlModel) {case ADAPTIVICRUISECONTROL_OFF:ui->label_car->hide();ui->label_constSpeed->hide();break;case ADAPTIVICRUISECONTROL_NOCAR:ui->label_car->hide();ui->label_constSpeed->show();break;case ADAPTIVICRUISECONTROL_CAR:ui->label_car->show();ui->label_constSpeed->show();break;default:break;}
}

以上就是定速巡航和自适应巡航的显示部分,逻辑部分后面再说。

车道偏离与上面实现方类似,定义三个混定义表示那个车道线

#define LANEDEPARTTURE_L 1  //左车道线
#define LANEDEPARTTURE_R 2  //右车道线
#define LANEDEPARTTURE_DOUBLE 3 //双车道线

实现接口如下

void HUD::set_LaneDeparture(int position, bool isOn)
{switch (position) {case LANEDEPARTTURE_L:{if(isOn){ui->label_runLine_L->show();}else{ui->label_runLine_L->hide();}break;}case LANEDEPARTTURE_R:{if(isOn){ui->label_runLine_R->show();}else{ui->label_runLine_R->hide();}break;}case LANEDEPARTTURE_DOUBLE:{if(isOn){ui->label_runLine_L->show();ui->label_runLine_R->show();}else{ui->label_runLine_L->hide();ui->label_runLine_R->hide();}break;}default:break;}
}

车距保持,同理定义三个宏定义用来表示当前的距离等级,这里我试用了距离等级这个东西,HUD上面的三个矩形表示的是三个范围,而不是三个具体的值,所以我用了距离等级,呵呵呵。

#define CARDISTANE_1 1  //距离1离前车太近
#define CARDISTANE_2 2  //距离2离前车存在隐患
#define CARDISTANE_3 3  //距离3离前车安全

实现接口如下

void HUD::set_CarDistance(int level)
{switch (level) {case CARDISTANE_1:ui->label_scale_1->show();ui->label_scale_2->hide();ui->label_scale_3->hide();break;case CARDISTANE_2:ui->label_scale_1->show();ui->label_scale_2->show();ui->label_scale_3->hide();break;case CARDISTANE_3:ui->label_scale_1->show();ui->label_scale_2->show();ui->label_scale_3->show();break;default:break;}
}

以上就是今天要实现的内容

2019/07/23 15:23

Qt [GC9-14]:HUD-定速巡航、自适应巡航、车道偏离、车距保持相关推荐

  1. 自适应巡航 自动泊车 车道偏离 碰撞预警 自动驾驶之辅助驾驶技术简介

    [转载]智车科技 7月21日 根据工业和信息化部.公安部.交通运输部等三部委共同发布的<智能网联汽车道路测试管理规范(试行)>,自动驾驶汽车是指搭载先进的车载传感器.控制器.执行器等装置, ...

  2. 怎么退出自适应巡航_定速巡航和自适应定速巡航的区别

    大家好,这里是高冷女神,今天又来给大家分享关于汽车的新鲜内容了,大家可以收藏跟转发哦! 定速巡航是按照驾驶者设定的速度行驶,打开这个功能,不需要踩油门踏板,车辆会按照设定的速度行驶.而自适应巡航更加智 ...

  3. 怎么退出自适应巡航_简单聊聊定速巡航和自适应定速巡航的区别

    定速巡航比较原始.可以说绝大多数车辆都配备了这个功能,它的特点就是让车子保持一个特定的车速行驶,亮点则是下坡路时.自动收油,上坡路时.则补油,总之会始终保持预定车速行驶:而自适应巡航则不同,自适应巡航 ...

  4. 定速巡航和自适应定速巡航有什么区别,开关分别是什么样的?

    以前的定速巡航只有豪华车才有的配置,随着汽车技术的发展普及,一般中高配车型都标配的定速巡航配置,顶配车型绝大多数都配备自适应巡航功能. 定速巡航功能还是非常实用的,尤其是跑高速的时候,别提有多爽,并且 ...

  5. 怎么退出自适应巡航_定速巡航与自适应巡航到底哪个更强?如何正确使用这些功能?...

    很多人买车之后都不知道定速巡航与自适应巡航到底有什么不同,也不知道这两种配置到底如何使用,更有一些朋友想要加装巡航却不知道哪种更适合自己,今天咱们就来说一说定速巡航与自适应巡航的区别到底是什么? 汽车 ...

  6. 怎么退出自适应巡航_定速巡航与自适应定速巡航到底有什么不同?

    定速巡航和自适应巡航说的简单一点定速巡航是第一代,自适应定速巡航是第二代,也就是定速巡航的升级版本.定速巡航和自适应定速巡航为驾车带来了很多方便,尤其是在高速上,可以让驾驶者的驾驶感受更为轻松. 定速 ...

  7. 怎么退出自适应巡航_买车选配置,自适应巡航or定速巡航

    消费者买车时候各种配置眼花缭乱,如何看破销售术语,选择自己需要的配置呢? 先说结论:自适应巡航优于定速巡航. 自适应巡航和定速巡航都可以解放驾驶员的右脚,让车辆维持在一个车速一直跑.但是道路前面的车减 ...

  8. ACC自适应巡航和定速巡航的区别

    定速巡航:在开启了定速巡航之后,车辆即便不踩油门也能维持在设定的速度,即便是在上坡或者下坡等特殊路段行驶时,车辆也能通过控制发动机的转速,使车辆保持在设定时速行驶.需要注意的是,定速巡航只能通过控制发 ...

  9. Simulink/Carsim联合仿真,基于pid,mpc自适应巡航控制,定速巡航,紧急避撞等

    Simulink/Carsim联合仿真,基于pid,mpc自适应巡航控制,定速巡航,紧急避撞等. 包括以下: (1)Carsim参数设置cpar文件 (2)matlab代码s函数 (3)Simulin ...

最新文章

  1. js代码收藏(zz)
  2. 【NLP】Sentence-T5|谷歌提出文本表示新SOTA
  3. 安卓之上传文件,即HTTP提交表单
  4. Establishing SSL connection without server's identity verification is not recommended.
  5. spring bean的创建,生命周期
  6. 在单页应用Vue中设置标题(title)
  7. 20145302张薇《Java程序设计》第十周学习总结
  8. Visual Paradigm 教程[UML]:如何在UML中绘制组件图?
  9. Atitit 自然语言处理(NLP)的应用 与 搜索引擎 目录 1.1. 搜索引擎并不是自然语言处理(NLP)的唯一应用。 2 1.2. NLP的应用 2 1.3. 社交网站信息流, 2 1.4.
  10. 微信小程序-快递查询
  11. mac上 网易mumu模拟器在打开代理后无法使用键盘 解决办法
  12. java毕业设计飞机订票管理系统Mybatis+系统+数据库+调试部署
  13. WPS 表格 身份证 提取生日 判断性别 计算年龄 15位身份证与18位身份证转换 18位身份证号校验
  14. Chibi Dinos上线薄饼IFO打新,是否值得参与?
  15. THANK YOU FOR YOUR CONCERN, SIOBAN AND ANTHONY
  16. css中背景图片路径问题
  17. 关于mac下搭建php、apache、mysql环境
  18. django报错ERRORS:?: (admin.E402) ‘django.contrib.auth.context_processors.auth‘
  19. 【图像隐藏】基于小波变换+SURF、RANSAC、LT码、CRC(循环冗余检验)码多种算法实现图像隐藏(抗多种攻击)matlab源码
  20. VM log是什么?EPL又是什么?

热门文章

  1. Asset Pricing:Valuation
  2. 计算机网络——计算机网络中的安全
  3. Oracle对象——视图之简单视图与视图约束
  4. 阿里云Redis开发规范学习总结
  5. mac os 更改mac地址
  6. echarts地图map
  7. Linux安装和使用Trickle的方法
  8. 项目管理中,管理者如何打造团队执行力?
  9. virtual Box与Vagrant的安装与踩坑
  10. 以吃货的角度去理解云计算中On-Premise、IaaS、PaaS和SaaS