背景:

网上对于倒车轨迹的大多数原创和转发的博客应该都基于同一篇,其他人没有进一步思考就对其进行转载和借鉴,其中原理的说明基本也是原版照抄,我看了一下,对于有些地方还是应该存疑,这些地方其他转发和借鉴的朋友也没有修改。

这是我能找到的最早的,借鉴最多的对于倒车轨迹研究的博客,我接下来的分析也是根据这篇博客,有些地方就稍微带过,主要对其中介绍不足的地方进行介绍,请参照原博客一起看。

原理

1.俯瞰监督倒车轨迹形成原理


先看上面示意图,这是俯瞰图,我们从二维平面来分析一下,不管是车辆前进还是后退,我们对其后轮进行追踪,我们通过生活经验可以发现,如果在某一时刻的方向盘角度不变,一直前进或者后退,车轮将会在地面画出圆形的轨迹,我们现在摘取后轮的轨迹来研究;
先声明要使用的参数:

  • φ: 前轮同水平方向的夹角
  • L:前后轮轴距
  • w:后轮轴长
  • D:后轮距离车尾的距离

从几何关系可知,后轮轴心的运动轨迹可以描述为以半径Lcot(φ)的圆周运动。两个后轮的轨迹分别为Lcot(φ)-W/2Lcot(φ)+W/2的圆。从等式可以看到,当φ接近0度时候行进轨迹近似直线,接近90度时半径呈缩小趋势,符合我们日常经验值。

坐标转换

我们都知道单位圆的几何方程为:
X2+Y2=R2(R为圆半径)X^{2}+Y^{2} =R^{2}(R为圆半径)X2+Y2=R2(R为圆半径)
那么在这里我们的后轮画出的圆的轨迹方程为:(以外侧轮为例)
X2+Y2=(Lcot(φ)−w2)2X^{2}+Y^{2}=(Lcot(φ)-\frac{w}{2})^{2} X2+Y2=(Lcot(φ)−2w​)2
注意:上面的方程建立在以后轮轨迹圆心为坐标原点的,所以我们需要将坐标原点建立在摄像头所在位置,如上图1所示,此时我们的方程就变为:

(X+Lcot(φ))2+(Y+D)2=(Lcot(φ)+w2)2①(X+Lcot(φ))^{2}+(Y+D)^{2}=(Lcot(φ)+\frac{w}{2})^{2} ①(X+Lcot(φ))2+(Y+D)2=(Lcot(φ)+2w​)2①

同理:我们的内侧后轮轨迹方程为:

(X+Lcot(φ))2+(Y+D)2=(Lcot(φ)−w2)2②(X+Lcot(φ))^{2}+(Y+D)^{2}=(Lcot(φ)-\frac{w}{2})^{2}②(X+Lcot(φ))2+(Y+D)2=(Lcot(φ)−2w​)2②
但是,从实际出发。从车尾摄像头看车尾部的景象是有角度的。我们还需要对其进行角度的转化

角度转换

上面我们推算出的轨迹是俯瞰的结果,但是驾车人员看屏幕中从摄像头上传的倒车景象是带有角度(并不是俯瞰)。我们现在通过数学模型简化一下视图来源的流程:这里如果摄像头相对于屏幕为一个点,会造成实际计算结果的一定偏差。关于偏差的细节数学计算不属本文讨论的重点
先声明要使用的参数:

  • 2α: camera的张角的二分之一( 假设camera的张角为2α)
  • h: 摄像头距离地面
  • β:摄像头中心线同水平面的夹角
  • H: 输出屏幕的高度
  • W: 输出屏幕的宽度

我们实际观察到的Yr为地面y在显示屏H上的投影,y方向的转换过程如图二:
上图简化camera图像采集和显示到屏幕的过程:现在完全可以理解为显示屏上的景象是实际远处景象在中间的投影。
上图中的虚线为水平线,点线为屏幕的中心点到摄像头的连线,β为中心线和水平线的夹角
将上图进行简化可转为下列数学问题,等腰三角形中同顶点成已知角度所相应的边长,简化后的计算如图三。
通过正弦定理、几何运算可得:(这里原博客把下面③④式子中的*写成x,现改正过来)
Yr=sin⁡θ1sin⁡(θ1+θ2)∗H2sin⁡α③Yr = \frac{\sin\theta _{1}}{\sin(\theta _{1}+\theta _{2})}*\frac{H}{2\sin\alpha } ③Yr=sin(θ1​+θ2​)sinθ1​​∗2sinαH​③
其中θ1=α+β−θ\theta _{1} =\alpha+\beta -\thetaθ1​=α+β−θ
θ2=90o−α\theta_{2} =90^o-\alpha θ2​=90o−α
代入③式可得:

Yr=sin⁡(α+β−arctan⁡(hy))cos⁡(β−arctan⁡(hy))∗H2sin⁡α④Yr = \frac{\sin(\alpha+\beta-\arctan (\frac{h}{y}))}{\cos( \beta-\arctan (\frac{h}{y}) )}* \frac{H}{2\sin\alpha } ④Yr=cos(β−arctan(yh​))sin(α+β−arctan(yh​))​∗2sinαH​④

sh上面等式要求满足以下条件:表现为对车尾局部区域不可见,即盲区如下图
y>h∗cot(α+β)y> h*cot(α+β) y>h∗cot(α+β)

从上面公式可以看出来,当β越小,当β = 0;y趋向无穷远,上面等式约等于Yr = H/2;即最远距离图像在频幕上的显示高度不会超过屏幕高度一半;现在从实际出发,倒车时对camera可视距离的需求只是车尾3-5米,所以β 的角度一定存在,并且不会太小。

Xr对应屏幕宽度方向上的位置:(这里原博客求Xr时误差太大,已改经进)

在求Xr时,我们可以想像camera是可以转动的:

  • 当camera垂直地面时:

    根据上图建立的模型,我们可以计算出当camera垂直面向地面时的影像关系为:
    Xr=xhtan⁡α∗W2⑤(x为地面X方向距离)Xr =\frac{x}{h\tan \alpha} *\frac{W}{2} ⑤(x为地面X方向距离) Xr=htanαx​∗2W​⑤(x为地面X方向距离)

  • 当camera向上稍微转动,如上图二所示:即camera面向车尾后下方(具体车型安装角度不一):(这个图就不画了,根据已有的图发散想象一下)
    此时⑤式就不能满足;但是我们仍然可以从中发现规律,现在参考(camera垂直图)当camera角度转动后,w/2不变,α也不变,x在计算中是变量,只有h在变,并且h->h`是可以找到具体量化的关系的
    h2+y2=(h′)2(y为地面Y方向距离)h^{2}+y^{2} =(h^{'})^{2} (y为地面Y方向距离)h2+y2=(h′)2(y为地面Y方向距离)
    所以:
    Xr=xh′tan⁡α∗W2Xr =\frac{x}{h^{'}\tan \alpha} *\frac{W}{2}Xr=h′tanαx​∗2W​
    最后得:

Xr=xh2+y2tan⁡α∗W2⑥Xr =\frac{x}{\sqrt{h^{2}+y^{2}}\tan \alpha} *\frac{W}{2} ⑥Xr=h2+y2​tanαx​∗2W​⑥

计算轨迹的条件

从以上计算我们可以看到,需要计算出轨迹,必须提供以下参数:

1 摄像头的可视角范围2α

2 摄像头距离地面距离h

3摄像头中心线同水平面的夹角β

4输出屏幕的高度H和宽度W

5 汽车前后轮轴距L

6 汽车轴长w,后轮距离车尾的距离D

7前轮同水平方向的夹角φ

以上参数中除转角φ外对于固定的车型和安装方式都已经固定,转角φ的获取可以有两种方式:1 对于有方向盘角度信息的车型可以直接通过输出接口如can总线获取。2外加角度传感器获取角度信息。两种方式都需要对采集的信息作一定的校正。

下面是我自己在Android上验证结果:

注意
因为测试时众多参数都是我自己未经证实就设定的,导致整体看倒车轨迹线变化幅度有点浮夸(还未叠加倒车录像),轨迹线远小近大,符合生活经验,误差未具体计算,不过可以证实这个思路是正确的。

参考博客:https://blog.csdn.net/shuaiff/article/details/5411280
参考资料:[1] 张永亮 智能可视倒车系统 武汉科技大学硕士学位论文3.1倒车轨迹数学模型

demo源码GitHub地址,方便的话给个star,给blog点个赞,给我支持.希望我的blog可以给你提供点开发思路.

倒车轨迹线的实现方法(基于前人基础改进和验证)相关推荐

  1. 地理国情普查外业调绘轨迹线的整理方法

    1.在做外业元数据整理时,需要先将外业调绘的GPS轨迹点转为线,按照要求,一条道路上只能出现一条轨迹线 由于在外业调绘时,有可能多次从一条路上经过,GPS轨迹点转线后,一条道路上就有可能有多条线: 自 ...

  2. lisp+等高线点线矛盾检查_基于AutoCAD平台地形图高程点与等高线点线矛盾检测方法研究与实现...

    2019 年 6 月 测绘与空间地理信息 GEOMATICS & SPATIAL INFORMATION TECHNOLOGY Vol.42 ꎬ No.6 Jun. ꎬ 2019 收稿日期 : ...

  3. 基于多阈值的形态提取遥感图像中的沿海线的特征方法(Qu Jishuang)

    论文阅读笔记 Title:A multi-threshold based morphological approach for extracting coastal line feature in r ...

  4. 1、倒车轨迹计算方法和实施!(开启+更改!)

    倒车轨迹理论实现       keyword:倒车轨迹  视角转换 一 倒车轨迹的基本原理 从日常经验可知.以自行车为例,假设前轮有一定转角,在维持转角不变状态和无轴向移动前提下自行车走过的路径将会以 ...

  5. android画布一闪一闪的,解决Android SurfaceView绘制触摸轨迹闪烁问题的方法

    本文分享了解决SurfaceView触摸轨迹闪烁问题的方法,供大家参考,具体内容如下 第一种解决SurfaceView触摸轨迹闪烁问题的方法: 由于SurfaceView使用双缓存机制,两张画布轮流显 ...

  6. CVPR 2019轨迹预测竞赛冠军方法总结

    背景 CVPR 2019 是机器视觉方向最重要的学术会议,本届大会共吸引了来自全世界各地共计 5160 篇论文,共接收 1294 篇论文,投稿数量和接受数量都创下了历史新高,其中与自动驾驶相关的论文. ...

  7. python 轨迹预测_CVPR 2019轨迹预测竞赛冠军方法总结

    背景 CVPR 2019 是机器视觉方向最重要的学术会议,本届大会共吸引了来自全世界各地共计 5160 篇论文,共接收 1294 篇论文,投稿数量和接受数量都创下了历史新高,其中与自动驾驶相关的论文. ...

  8. 通用汽车研发中心最新提出:3D车道线检测新方法

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作分享,不代表本公众号立场,侵权联系删除 转载于:知乎黄浴博士,已获授权 https://zhuanlan.zhi ...

  9. 可用于实时嵌入式设备的心电信号基线漂移滤除方法——基于延迟的近似零相位IIR滤波器

    考虑到ECG信号去基漂算法需要在嵌入式设备中运行,并且尽可能降低延迟,选择IIR低通滤波器求得信号的基线漂移.将信号减去基漂后得到最终信号.       参考论文<基于零相位的心电信号基线漂移滤 ...

最新文章

  1. 配置php.ini文件,关闭错误提示,打开错误日志,设置错误日志路径(亲测)
  2. sql server 数据脚本生成工具
  3. 系统架构设计师考试4
  4. AngularJS开发指南5:AngularJS表达式详解
  5. label包裹input,点击label响应两次解决方法
  6. hplus java_Java HijrahDate plus(long, TemporalUnit)用法及代码示例
  7. iPhone 4 Cydia使用教程 精选Cydia源 cydia怎么添加源 Cydia源使用方法 越狱后使用cydia
  8. 【MSFconsole进阶】auxiliary模块:信息收集、扫描、嗅探、指纹识别、口令猜测和Dos攻击等
  9. 云计算概念:什么是云计算
  10. iOS查看每日限免APP+监控APP降价信息教程
  11. Sticky Footer , fixed footer, pinned footer
  12. k8s 配置存储之 Configmap secret
  13. 弹性裸金属服务器EBM
  14. 阿里云centos服务器基本构建(服务器的探索之路)
  15. 通过PHP实现PNG转JPG
  16. python之红楼梦词频统计并生成图云
  17. Gartner云安全理念解读
  18. 三分钟了解阿里云学生机购买限制条件详细规则
  19. ADS8684 驱动
  20. 1.19Java设计模式

热门文章

  1. 最先进的微型计算机,微型计算机中的先进计算机技术.ppt
  2. Java静默调用虚拟打印机_静默虚拟打印机BullzipPDFPrinter
  3. CATIA 数控编程加工实例精解视频教程
  4. 论文 计算机动态网页的制作,计算机动态网页设计中多元素应用网页设计论文(范文1)...
  5. Linux跑齿轮命令,Linux 游戏作弊工具:GameConqueror 0.09
  6. 推荐一个数据库同步软件,可同步Mysql,sqlserver数据,支持实时同步
  7. vue之动画( 仿jquery的slideToggle动画效果 )
  8. Python读取文件时,出现SyntaxError: (unicode error) ‘unicodeescape‘ codec can‘t decode bytes in position 2-3
  9. 学生机器人编程用什么语言
  10. 哈尔滨火车站下面有三个火车票代售点,假如哈尔滨到北京的火车票总共是200张,如何用程序来实现三个售票点同时卖票的功能。