文档库 最新最全的文档下载
当前位置:文档库 › 倒车轨迹理论实现方法

倒车轨迹理论实现方法

倒车轨迹理论实现方法
倒车轨迹理论实现方法

倒车轨迹理论实现方法

帅文王文梁

关键字:倒车轨迹视角转换

前言:倒车轨迹是近两年部分国产汽车导航设备上新出现的一个功能,其借助方向盘转角信息将汽车可能的后退路线叠加到后视摄像头的输出上并标注出距离,以直观形象化的形式协助驾驶人员调整选择倒车路线,减少驾驶人员特别是新手的误判断,对使用者是一个不错的实用功能。倒车轨迹在智能倒车领域内属于辅助倒车系统中的一种,虽然其还无法达到智能化倒车,但是其实用性和辅助性上对汽车智能化单元技术方面是一个有效的补充。本文将基于使用为目的,从经验角度并结合基本数学推导分析倒车轨迹的原理、实现过程并给出实际使用过程中需要的操作点。由于本文非侧重于数学理论,对部分数学细节在不影响实际结论情况下不做深入探讨。

一倒车轨迹的基本原理

从日常经验可知,以自行车为例,如果前轮有一定转角,在维持转角不变状态和无轴向移动前提下自行车走过的路径将会以某个圆点为中心旋转,同样的状态也会出现在汽车上。其走过路径如图1。

图中假设车轮不会出现轴向移动,故如果保持车轮转角不变的情况下,每个车轮只能沿着垂直其车轴的方向行进,这里取前后轮的轴心作为轨迹跟踪点(实际过程中两个前轮轴心不会出现平行),则轨迹应该是以前后轮轴向线的焦点为圆心的圆。图中φ为为前轮同水平方向的夹角,记前后轮轴距为L,后轮轴长为W,后轮距离车尾的距离为D,从几何关系可知,后轮轴心的运动轨迹可以描述

为以半径Lcot(φ)的圆周运动。两个后轮的轨迹分别为Lcot(φ)-W/2和

Lcot(φ)+W/2的圆。这里的推导过程采用经验法结合几何推算,完全从数学角

度的推算过程请参考资料1。图中的x方向和y方向不同于一般习惯主要是考虑后面的视角变换。从等式可以看到,当φ接近0度时候行进轨迹近似直线,接近90度时半径呈缩小趋势,符合我们日常经验值。

二视角转换

从倒车公式推导出的路线图为行进路线的俯视图,实际显示给操作者的路线应该是从车内观察点观察到的轨迹,驾驶人员看到的运动轨迹实际为以车尾摄像头为中心点坐标的图像描述(图一中车尾位置的原点)。将摄像头位置定为坐标零点,则轨迹上的任意点位置公式为:(x+Lcot(φ))2+(y+D)2=(Lcot(φ))2 (1)

上面推导的轨迹仍然是基于俯视条件下的轨迹,看到的应该为处于一定视角观察的轨迹,故需要进行一定角度的转换才能切换到实际观察到的图像。假设摄像头的可视角范围为2α,摄像头距离地面h,摄像头中心线同水平面的夹角为β,输出屏幕的高度为H,这里假设摄像头相对于屏幕为一个点,会造成实际计算结

果的一定偏差,关于偏差的细节数学计算不属本文讨论的重点。我们实际观察到的Yr为地面y在显示屏H上的投影,y方向的转换过程如图二:

上图中为了便于计算,将经过摄像头采集后输出的显示器直接投影到同一个图中,这和实际输出没有区别。上图中的虚线为水平线,点线为屏幕的中心点到摄像头的连线,β为中心线和水平线的夹角

将上图进行简化可转为下列数学问题,等腰三角形中同顶点成已知角度所对应的边长,简化后的计算如图三。

Yr对应的角度为α+β-θ,其中θ=arctg(h/y)

通过几何运算可得:

三计算轨迹的条件

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

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

2 摄像头距离地面距离h

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

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

5 汽车前后轮轴距L

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

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

以上参数中除转角φ外对于固定的车型和安装方式都已经固定,转角φ的获取可以有两种方式:1 对于有方向盘角度信息的车型可以直接通过输出接口如

can总线获取。2外加角度传感器获取角度信息。两种方式都需要对采集的信息作一定的校正。

四验证

将上面公式的2和3带入1,可推导出显示屏幕上的实际轨迹图像。我们用vc 实现了过程模拟,程序流程图四,模拟结果如图五。在真实的嵌入式平台上实现需要该平台支持图像叠加功能,目前许多多媒体soc芯片都能具备硬件α融合功能,可以方便的将描绘出的轨迹叠加到摄像头的输入信号上,对于角度信息的采集,则要求平台有can总线接口(部分车型可以输出角度信息)或外加角度传感器接口获取车轮转角。

五结论:从验证情况看,结果和经验吻合,证明算法的主要正确性。一些细节信息需要针对具体的实现平台进行微调。以上算法对于下列场景无法解决,如果路面有斜坡由于整个系统无法感知而导致叠加图像有误,当倒车速度过快(如漂移)会造成上述公式整体失效,但是对于普通用户场景-低速、路面相对平整还是主要场合,故将参数校准后会有较好的参考价值。

// BackTrack.h: interface for the CBackTrack class.

//

///////////////////////////////////////////////////////////////////// /

#if !defined(AFX_BACKTRACK_H__EAF4E3A8_3691_44DA_A864_72658056A1D9__I NCLUDED_)

#define

AFX_BACKTRACK_H__EAF4E3A8_3691_44DA_A864_72658056A1D9__INCLUDED_

#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000

#include "RearCalibration.h"

/*

struct Mypoint

{

int x;

int y;

};

typedef struct Mypoint MyPoint;

*/

class CBackTrack

{

public:

bool InitObject(CRearCalibration *pCali, float fAngle,float fAxleDist,float fWheelDist,int lWidth, int lHeight);

void DrawExtendSpot(unsigned char *lpDIBBits, int lWidth, int lHeight, bool bInverse=false);

void DrawExtendTrack(unsigned char *lpDIBBits, int lWidth, int lHeight);

void DrawBackSpot(unsigned char *lpDIBBits, int lWidth, int lHeight);

void DrawBackTrack(unsigned char *lpDIBBits, int lWidth, int lHeight, bool bInverse=false);

/*

void Way2_Back_Track_Draw(char *lpDIBBits, int lWidth, int lHeight);

void Back_Track_Draw(char *lpDIBBits, int lWidth, int lHeight);

void Calibration_Track_Draw(CRearCalibration *pCali,char

*lpDIBBits, int lWidth, int lHeight);

void GetBackTrackDraw(CRearCalibration *pCali,char *lpDIBBits, int lWidth, int lHeight, float fAngle);

*/

void DrawTrack(unsigned char *lpDIBBits, int lWidth, int lHeight);

CBackTrack();

virtual ~CBackTrack();

private:

void InverseBmp(unsigned char *lpDIBBits, int lWidth, int lHeight);

CRearCalibration *m_pCali;

float m_fAngle;

float m_VBack;

int m_iTlong;

int m_step;

void GetExtendUV();

void ComputerExtendXY();

void GetTfromView(int lWidth, int lHeight);

void ComputerXY();

void ComputerUV();

CPoint GetUfromVofExtend(short v);

CPoint GetUfromV(short v);

void GetMarkXU();

short RelationYV(short v);

int m_iNT;

int m_iFT;

float m_fLX[40];

float m_fLY[40];

float m_fRX[40];

float m_fRY[40];

float m_fLeX[40];

float m_fLeY[40];

float m_fReX[40];

float m_fReY[40];

int m_iLU[40];

int m_iLV[40];

int m_iRU[40];

int m_iRV[40];

int m_iLeU[40];

int m_iLeV[40];

int m_iReU[40];

int m_iReV[40];

float m_LRearAxle;

float m_LRearWheel;

int m_U1[288],m_U2[288];

};

#endif

// !defined(AFX_BACKTRACK_H__EAF4E3A8_3691_44DA_A864_72658056A1D9__IN CLUDED_)

// BackTrack.cpp: implementation of the CBackTrack class.

//

///////////////////////////////////////////////////////////////////// /

#include "stdafx.h"

#include "BackTrack.h"

#include "math.h"

#ifdef _DEBUG

#undef THIS_FILE

static char THIS_FILE[]=__FILE__;

#define new DEBUG_NEW

#endif

///////////////////////////////////////////////////////////////////// /

// Construction/Destruction

///////////////////////////////////////////////////////////////////// /

CBackTrack::CBackTrack()

{

m_VBack = 0.1f;

m_LRearAxle = 0;

m_LRearWheel = 0;

m_iTlong = 0;

GetMarkXU();

}

CBackTrack::~CBackTrack()

{

}

////////////////////////////////////////////////////////////

//分步骤进行编程

/*

void CBackTrack::GetTfromView()

{

// float VBack = 138.9;

// 相机视野的最近点和最远点距离汽车后轴的距离,Ny要大于100,由于现在假定相机安装在后轴中心,故先付值100

int Ny,Fy;

Ny = 100;

Fy = 330;

// 中间变量

float a,b;

int t;

//判断分母中为零的项,a不可能为零,因为前轴中心的转向角永远小于50度

if( sin(m_fAngle) != 0 )

{

a = m_LRearAxle / (float)(tan (m_fAngle)) - m_LRearWheel / 2;

b = m_LRearAxle / m_VBack / (float)(sin (m_fAngle));

m_iNT = (int)(b * (float)(asin ( Ny / a)) + 0.5f);

m_iFT = (int)(b * (float)(asin ( Fy / a)) + 0.5f);

}

//当这两项为零时,车辆没有倒车,因此可以只把后轮的延长线画出

else

{

m_iNT = (int)(Ny/m_VBack + 0.5f);

m_iFT = (int)(Fy/m_VBack + 0.5f);

}

// computer time jump step

m_step = (m_iFT - m_iNT) / 30;

m_iTlong = 0;

for( t = m_iNT; t m_iFT; t = t + m_step)

{

m_iTlong ++ ;

}

}

*/

void CBackTrack::GetTfromView(int lWidth, int lHeight)

{

// float VBack = 138.9;

// 相机视野的最近点和最远点距离汽车后轴的距离,Ny要大于100,由于现在假定相机安装在后轴中心,故先付值100

int Ny,Fy;

Ny = 100;

Fy = 380;

// 中间变量

// float a,b;

int t;

CPoint pl,pr;

m_iNT = (int)(Ny/m_VBack + 0.5f);

m_iFT = (int)(Fy/m_VBack + 0.5f);

/*

float a,b;

a = m_LRearAxle / (float)tan (m_fAngle);

b = m_LRearAxle / m_VBack / (float)sin (m_fAngle);

do

{

m_fLX[0] = -(a - m_LRearWheel / 2) * (float)(cos(m_iNT / b)) + a;

m_fLY[0] = (a- m_LRearWheel / 2) * (float)(sin(m_iNT / b));

pl = m_pCali->GetUVfromXY( m_fLX[0], m_fLY[0]);

m_fRX[0] = -(a+m_LRearWheel / 2) * (float)(cos(m_iNT / b)) + a;

m_fRY[0] = (a+ m_LRearWheel / 2)* (float)(sin(m_iNT / b));

pr = m_pCali->GetUVfromXY( m_fRX[0], m_fRY[0]);

m_iNT ++;

} while( pl.x 1 || pl.y 1 || pr.x 1 || pr.y 1);

do

{

m_fLX[0] = -(a - m_LRearWheel / 2) * (float)(cos(m_iFT / b)) + a;

m_fLY[0] = (a- m_LRearWheel / 2) * (float)(sin(m_iFT / b));

pl = m_pCali->GetUVfromXY( m_fLX[0], m_fLY[0]);

m_fRX[0] = -(a+m_LRearWheel / 2) * (float)(cos(m_iFT / b)) + a;

m_fRY[0] = (a+ m_LRearWheel / 2)* (float)(sin(m_iFT / b));

pr = m_pCali->GetUVfromXY( m_fRX[0], m_fRY[0]);

m_iFT --;

} while( pl.x > lWidth || pl.y > lHeight || pr.x > lWidth || pr.y > lHeight);

*/

// computer time jump step

m_step = (m_iFT - m_iNT) / 38;

m_iTlong = 0;

for( t = m_iNT; t m_iFT; t = t + m_step)

{

m_iTlong ++ ;

}

}

/********************************************

ComputerXY()

计算倒车轨迹点

参数是方向盘转角,此处暂为前轴中心点的转角

*********************************************/

void CBackTrack::ComputerXY()

{

float a,b;

a = m_LRearAxle / (float)(tan (m_fAngle));

b = m_VBack * (float)(sin (m_fAngle)) / m_LRearAxle;

int t;

int l = 0;

for ( t = m_iNT ; t m_iFT ; t = t + m_step)

{

// left rear wheel back track

m_fLX [ l ] = - ( a - m_LRearWheel / 2) * (float)(cos ( b * t )) + a;

m_fLY [ l ] = ( a - m_LRearWheel / 2) * (float)(sin( b * t ));

// right rear wheel back track

m_fRX [ l ] = - ( a + m_LRearWheel / 2) * (float)(cos ( b * t )) + a;

m_fRY [ l] = ( a + m_LRearWheel / 2) * (float)(sin( b * t ));

l++;

}

}

/**************************************************

车辆后轮延长线,无论方向盘转角等参数如何变,

延长线上的点是不变的,因此可分开来写,尤其是当前轴

中心点的转角为零时,在图像上只显示后轮延长线,因此需要

单独写出来

****************************************************/

void CBackTrack::ComputerExtendXY()

{

int t;

int l = 0;

for(t = m_iNT ; t m_iFT ; t = t + m_step)

{

// left rear wheel extend

m_fLeX[ l ] = m_LRearWheel / 2;

m_fLeY[ l ] = t*m_VBack;

// right rear wheel extend

m_fReX[ l ] = - m_LRearWheel / 2;

m_fReY[ l ] = m_fLeY[ l ];

l++;

}

}

void CBackTrack::ComputerUV()

{

int t;

int l = 0;

CPoint p;

for( t = m_iNT ; t m_iFT ; t = t + m_step)

{

// left rear wheel back track in image

p = m_pCali->GetUVfromXY( m_fLX[l], m_fLY[l]);

m_iLU[l] = p.x;

m_iLV[l] = p.y;

//right rear wheel back track in image

p = m_pCali->GetUVfromXY( m_fRX[l], m_fRY[l]);

m_iRU[l] = p.x;

m_iRV[l] = p.y;

l++;

}

}

void CBackTrack::GetExtendUV()

{

int t;

int l = 0;

CPoint p;

for( t = m_iNT ; t m_iFT ; t = t + m_step)

{

// left rear wheel extend in image

p = m_pCali->GetUVfromXY( m_fLeX[l], m_fLeY[l]);

m_iLeU[l] = p.x;

m_iLeV[l] = p.y;

// right rear wheel extend in image

p = m_pCali->GetUVfromXY( m_fReX[l], m_fReY[l]);

m_iReU[l] = p.x;

m_iReV[l] = p.y;

l++;

}

}

void CBackTrack::DrawBackSpot(unsigned char *lpDIBBits, int lWidth, int lHeight)

{

int t ;

long lLineBytes = WIDTHBYTES(lWidth * 8);

for( t = 0 ; t m_iTlong ; t ++)

{

// left wheel track spot

*((unsigned char *)lpDIBBits + lLineBytes * m_iLV[t] + m_iLU[t]) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * (m_iLV[t] -1) + m_iLU[t]) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * (m_iLV[t ]+1) + m_iLU[t]) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * m_iLV[t] + m_iLU[t] -1) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * m_iLV[t] + m_iLU[t] + 1) = 255;

// right wheel track spot

*((unsigned char *)lpDIBBits + lLineBytes * m_iRV[t] + m_iRU[t]) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * (m_iRV[t] -1) + m_iRU[t]) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * (m_iRV[t ]+1) + m_iRU[t]) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * m_iRV[t] + m_iRU[t] -1) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * m_iRV[t] + m_iRU[t] + 1) = 255;

}

}

void CBackTrack::DrawExtendSpot(unsigned char *lpDIBBits, int lWidth, int lHeight, bool bInverse)

{

if(bInverse)

InverseBmp(lpDIBBits,lWidth,lHeight);

int t ;

long lLineBytes = WIDTHBYTES(lWidth * 8);

for( t = 0 ; t m_iTlong ; t ++)

{

// left wheel track spot

*((unsigned char *)lpDIBBits + lLineBytes * m_iLeV[t] + m_iLeU[t]) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * (m_iLeV[t] -1) + m_iLeU[t]) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * (m_iLeV[t ]+1) + m_iLeU[t]) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * m_iLeV[t] + m_iLeU[t] -1) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * m_iLeV[t] + m_iLeU[t] + 1) = 255;

// right wheel track spot

*((unsigned char *)lpDIBBits + lLineBytes * m_iReV[t] + m_iReU[t]) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * (m_iReV[t] -1) + m_iReU[t]) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * (m_iReV[t ]+1) + m_iReU[t]) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * m_iReV[t] + m_iReU[t] -1) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * m_iReV[t] + m_iReU[t] + 1) = 255;

}

if(bInverse)

InverseBmp(lpDIBBits,lWidth,lHeight);

}

void CBackTrack::DrawBackTrack(unsigned char *lpDIBBits, int lWidth, int lHeight, bool bInverse)

{

if(bInverse)

InverseBmp(lpDIBBits,lWidth,lHeight);

int t,tj ;

float k ;

int U,offset;

long lLineBytes = WIDTHBYTES(lWidth * 8);

for( t = 0 ; t m_iTlong - 1 ; t ++)

{

// draw left wheel back track

k = (float) ( m_iLU [ t ] - m_iLU [ t + 1] ) / (float) ( m_iLV [ t ] - m_iLV [ t + 1 ] );

if( m_iLV [ t ] m_iLV [ t + 1 ] )

{

for ( tj = m_iLV [ t ]; tj m_iLV [ t + 1 ]; tj++)

{

offset = lLineBytes * tj;

U = (int) (m_iLU [ t ] - k * (m_iLV [ t ] - tj));

if( U lWidth - 1 && tj lHeight - 1 && tj >1 && U >1 )

{

*((unsigned char *)lpDIBBits + offset + U) = 255;

*((unsigned char *)lpDIBBits + offset - lLineBytes + U) = 255;

*((unsigned char *)lpDIBBits + offset + lLineBytes + U) = 255;

*((unsigned char *)lpDIBBits + offset + U +1) = 255;

*((unsigned char *)lpDIBBits + offset + U -1) = 255;

}

}

}

else if( m_iLV [ t ] > m_iLV [ t + 1 ] )

{

for ( tj = m_iLV [ t ]; tj > m_iLV [ t + 1 ]; tj--)

{

offset = lLineBytes * tj;

U = (int) (m_iLU [ t ] - k * (m_iLV [ t ] - tj));

if( U lWidth - 1 && tj lHeight - 1 && tj >1 && U >1 )

{

*((unsigned char *)lpDIBBits + offset + U) = 255;

*((unsigned char *)lpDIBBits + offset - lLineBytes + U) = 255;

*((unsigned char *)lpDIBBits + offset + lLineBytes + U) = 255;

*((unsigned char *)lpDIBBits + offset + U +1) = 255;

*((unsigned char *)lpDIBBits + offset + U -1) = 255;

}

}

}

// draw right wheel back track

k = (float) ( m_iRU [ t ] - m_iRU [ t + 1] ) / (float) ( m_iRV [ t ] - m_iRV [ t + 1 ] );

if( m_iRV [ t ] m_iRV [ t + 1 ] )

{

for ( tj = m_iRV [ t ]; tj m_iRV [ t + 1 ]; tj++)

{

offset = lLineBytes * tj;

U = (int) (m_iRU [ t ] - k * (m_iRV [ t ] - tj));

if( U lWidth - 1 && tj lHeight - 1 && tj >1 && U >1 )

{

*((unsigned char *)lpDIBBits + offset + U) = 255;

*((unsigned char *)lpDIBBits + offset - lLineBytes + U) = 255;

*((unsigned char *)lpDIBBits + offset + lLineBytes + U) = 255;

*((unsigned char *)lpDIBBits + offset + U +1) = 255;

*((unsigned char *)lpDIBBits + offset + U -1) = 255;

}

}

}

else if( m_iRV [ t ] > m_iRV [ t + 1 ] )

{

for ( tj = m_iRV [ t ]; tj > m_iRV [ t + 1 ]; tj--)

{

offset = lLineBytes * tj;

U = (int) (m_iRU [ t ] - k * (m_iRV [ t ] - tj));

if( U lWidth - 1 && tj lHeight - 1 && tj >1 && U >1 )

{

*((unsigned char *)lpDIBBits + offset + U) = 255;

*((unsigned char *)lpDIBBits + offset - lLineBytes + U) = 255;

*((unsigned char *)lpDIBBits + offset + lLineBytes + U) = 255;

*((unsigned char *)lpDIBBits + offset + U +1) = 255;

*((unsigned char *)lpDIBBits + offset + U -1) = 255;

}

}

}

}

if(bInverse)

InverseBmp(lpDIBBits,lWidth,lHeight);

}

void CBackTrack::DrawExtendTrack(unsigned char *lpDIBBits, int lWidth, int lHeight)

{

int t ,tj;

float k ;

int V;

long lLineBytes = WIDTHBYTES(lWidth * 8);

for( t = 0 ; t m_iTlong - 1 ; t ++)

{

// draw left wheel extend track

if( m_iLeU [ t ] > m_iLeU [ t + 1 ] )

{

for ( tj = m_iLeU [ t ]; tj > m_iLeU [ t + 1 ]; tj--)

{

k = (float) ( m_iLeV [ t ] - m_iLeV [ t + 1 ] ) / (float) ( m_iLeU [ t ] - m_iLeU [ t + 1] );

V = (int) ( k * tj + m_iLeV [ t ] - k * m_iLeU [ t ] );

if( tj lWidth - 1 && V lHeight - 1 && tj >1 && V >1 )

{

*((unsigned char *)lpDIBBits + lLineBytes * V + tj) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * ( V - 1 ) + tj) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * (V + 1) + tj) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * V + tj +1) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * V + tj -1) = 255;

}

}

}

else

{

for ( tj = m_iLeU [ t ]; tj m_iLeU [ t + 1 ]; tj++)

{

k = (float) ( m_iLeV [ t ] - m_iLeV [ t + 1 ] ) / (float) ( m_iLeU [ t ] - m_iLeU [ t + 1] );

V = (int) ( k * tj + m_iLeV [ t ] - k * m_iLeU [ t ] );

if( tj lWidth - 1 && V lHeight - 1 && tj >1 && V >1 )

{

*((unsigned char *)lpDIBBits + lLineBytes * V + tj) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * ( V - 1 ) + tj) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * (V + 1) + tj) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * V + tj +1) = 255;

*((unsigned char *)lpDIBBits + lLineBytes * V + tj -1) = 255;

}

}

}

// draw right wheel extend track

一种一体化动态倒车轨迹视像生成方法及系统(修改)

说明书摘要 本发明公开了一种一体化动态倒车轨迹视像生成方法及系统,通过以下步骤实现倒车轨迹视像的生成:预存车辆倒车轨迹线图片;通过惯性传感器获取车辆的位置变化信息;调取与所述位置变化信息对应的预存轨迹线图片,并将所述轨迹线图片叠加于显示器显示的图像上。检测车体的实时位置变化量是否大于预存与存储器内的车体相对位置变化参数,若是,说明车体有向某一个方向运动的趋势,切换车体运行轨迹线图片,并将此时的车体位置相对变化参数作为下一次车体运行轨迹变化的参考值,直至结束生成视像。该一体化东台倒车轨迹视像生成方法及系统安装方便,不依赖车身自带的软件,适用于所有车型。

摘要附图 预存车辆倒车轨迹线图片 获取车辆的航向信息 调取与所述航向信息对应的预存轨迹线图片,并将其叠加显示于显示器显示的图像上 检测车辆的航向变化值是否大于航向变化预设值,若是,切换叠加于摄像头采集的图像信息上的预存轨迹线图片,并将此时的航向值作为下一次航向变化的比较值,直至结束 生成视像S1 S2 S3 S4

1、一种一体化动态倒车轨迹视像生成方法,包括如下步骤: S1:预存车辆倒车轨迹线图片,其中,每两张轨迹线的曲率最接近的轨迹线图片对应的位置变化信息为一定值; S2:获取车辆的位置变化信息,其中,所述位置变化信息来自于内置于一体化摄像头的惯性传感器; S3:调取与所述位置变化信息对应的预存轨迹线图片,并将其叠加于显示器显示的图像上,其中,所述显示器显示的图像为设置于车辆后方的摄像头采集的图像信息; S4:检测车辆的位置变化量是否大于预存与存储器内的预设参数,若是,说明车体有向某一个方向运动的趋势,切换车体运行轨迹线图片,并将此时的车体位置相对变化参数作为下一次车体运行轨迹变化的参考值,重复步骤S4,直至结束生成视像。 2、按照权利要求1所述一体化动态倒车轨迹视像生成方法,其特征在于:所述步骤S2具体包括如下步骤: S201:采集车辆的三轴加速度信息、三轴角速度信息及三轴地磁信息; S202:根据所述三轴加速度信息、三轴角速度信息及三轴地磁信息通过算法计算出车辆的位置变化信息。 3、按照权利要求2所述一体化动态倒车轨迹视像生成方法,其特征在于:所述步骤S201还包括对采集的车辆的三轴加速度信息、三轴角速度信息及三轴地磁信息的滤波处理。 4、按照权利要求1所述一体化动态倒车轨迹视像生成方法,其特征在于:所述车体相对位置变化参数可通过输入单元更新,且输入的值为其上

轨迹交叉理论的应用案例分析

轨迹交叉理论的应用案例分析 一.轨迹交叉理论:人的因素运动轨迹与物的因素运动轨迹的交点就是事故发生的时间和空间,既人的不安全行为和物的不安全状态发生于同一时间、同一空间或者说人的不安全行为与物的不安全状态相通,则将在此时间、此空间发生事故,即当人的不安全行为和物的不安全状态在各自的发展过程中(轨迹),在一定时间、空间上发生了接触(交叉),能量转移入人体时,伤害事故就会发生。 二:轨迹交叉理论的作用原理:基本原因→间接原因→直接原因→事故→伤害。人的因素运动轨迹通常是由于人的生理、心理、行为、和环境等几个方面产生的:生理:缺陷,后天的能力缺失等 心理:心理缺陷,心理疾病等 行为:不正确的操作、行为等(以上三方面对于人的不安全状态进行分析) 环境:自然环境、社会环境、企业管理、机器设备等(对物、人的不安全状体进行分析)三.案例:湖南长沙浏阳碧溪烟花制造有限公司“12·4”重大爆炸事故 2019年12月4日,在湖南省浏阳市碧溪烟花制造有限公司石下工区,工人在用箩筐搬运烟花半成品时出现不符合规范的抛甩动作,由于摩擦发生爆炸,进而引起周围存放的大量成品、半成品继而发生爆炸,最终造成13人死亡、13人受伤住院治疗,直接经济损失1944.6万元。 四.结合轨迹交叉理论进行如下分析: 1.对人的不安全状态分析: A.行为不规范,工人在将盛装半成品的塑料筐拿出工房时出现抛甩动作,因摩擦撞击引起药饼爆炸。 B.管理粗放,没有严格的安全行为规范化,以及搬运时对工人的监督。 C.心理上对于安全的认知有缺陷,对于行为的规范与不规范,以及可能造成的后果不予重视。 D.工作环境人员超量。 2.对物的不安全状态分析: A.烟花半成品直接装在箩筐,没有充分的安全存放条件,移动时烟花半成品易与箩筐壁摩擦。 B.产品超大规格、超大药量(超GB10631规定的爆竹最大允许药量20倍以上)。 C.擅自改变工房为存储仓库堆积烟花成品、半成品,一旦遇到明火、高温、爆炸易发生连续爆炸。 综上,火药制品的存放不当为基本原因,工人的不规范操作为间接原因,摩擦引发爆炸是产生爆炸的直接原因,最后造成人员受伤、死亡,经济受到损失。 五.获得的启示: 1.烟花爆竹类生产时的存放、搬运、装配、运输等操作的要求务必让从事相关工作的作业人员重视,应定期开展主题教育,进行实景模拟让其了解到规范的行为对于个人安全的重要性。 2.令人觉得可笑的是2015年,该公司作为示范企业,被列入“浏阳市国家级出口烟花爆竹质量安全示范区”。此次事故中所展现给大众的情况是人员超量、易燃易爆化学品超量、违法改建。相关政府隐瞒死亡人数,这不免让人思考政府的管理、检查制度所存在的漏洞。 。

轨迹交叉理论

编订:__________________ 审核:__________________ 单位:__________________ 轨迹交叉理论 Deploy The Objectives, Requirements And Methods To Make The Personnel In The Organization Operate According To The Established Standards And Reach The Expected Level. Word格式 / 完整 / 可编辑

文件编号:KG-AO-7763-46 轨迹交叉理论 使用备注:本文档可用在日常工作场景,通过对目的、要求、方式、方法、进度等进行具体的部署,从而使得组织内人员按照既定标准、规范的要求进行操作,使日常工作或活动达到预期的水平。下载后就可自由编辑。 一、轨迹交叉理论的提出 随着生产技术的提高以及事故致因理论的发展完善,人们对人和物两种因素在事故致因中地位的认识发生了很大变化。一方面是由于生产技术进步的同时,生产装置、生产条件不安全的问题越来越引起了人们的重视;另一方面是人们对人的因素研究的深入,能够正确地区分人的不安全行为和物的不安全状态。 约翰逊(W.g.jonson)认为,判断到底是不安全行为还是不安全状态,受研究者主观因素的影响,取决于他认识问题的深刻程度。许多人由于缺乏有关失误方面的知识,把由于人失误造成的不安全状态看作是不安全行为。一起伤亡事故的发生,除了人的不安

全行为之外,一定存在着某种不安全状态,并且不安全状态对事故发生作用更大些。 斯奇巴(Skiba)提出,生产操作人员与机械设备两种因素都对事故的发生有影响,并且机械设备的危险状态对事故的发生作用更大些,只有当两种因素同时出现,才能发生事故。 上述理论被称为轨迹交叉理论,该理论主要观点是,在事故发展进程中,人的因素运动轨迹与物的因素运动轨迹的交点就是事故发生的时间和空间,既人的不安全行为和物的不安全状态发生于同一时间、同一空间或者说人的不安全行为与物的不安全状态相通,则将在此时间、此空间发生事故。 轨迹交叉理论作为一种事故致因理论,强调人的因素和物的因素在事故致因中占有同样重要的地位。按造该理论,可以通过避免人与物两种因素运动轨迹

道可视智能倒车轨迹系统测评

道可视智能倒车轨迹应用测评 道可视360度全景行车辅助系统带有智能倒车轨迹,只要汽车带有ESP系统(电子稳定程序系统)即可显示轨迹,动态倒车轨迹线让你倒车更方便。今天就来给大家详细说明这些倒车轨迹线在实际倒车过程中的应用。 一、前行轨迹图解 在行车过程中,当遇到类似这样的狭窄路段时,可以短按薄膜开关,启动全景影像。右侧显示前视画面。通过前视轨迹线,可以实观看到汽车能否通过该路段。在放置假设障碍物时,比地面上车道的宽度还要小。通过前行轨迹线,可以直观的看到车辆是否能顺利通过。

往回倒车时,可以利用标尺线来确定障碍物之间的宽度是否够车辆通过,在利用动态轨迹线与标尺线重合,即可保持安全通行。 二、左右倒车轨迹线图解 在通过复杂路况,狭窄路段时,通过切换左右两侧的辅助线,可以更实观的看到车身与障碍物之间的距离,微微转动方向盘即可避免不必要刮伤。

左右侧倒车辅助线—通过切换不同视角,可以看到车前轮与障碍物之间的距离,为车主安全通过提供最直接的提示。 三、后侧轨迹线图解 3.1后侧动态轨迹线和标尺线——左侧的全景镜头可以看到全车周围情况;右侧的后视视角,动态轨迹线和标尺线给予驾驶员参考及车后是否有障碍物或其他车辆及之间的距离。

3.2侧位泊车 上图中红圈里的叫侧位泊车辅助线,当它与地面停车线重合时就是打方向盘的时候。解决了许多车主在倒车时不知道什么打方向盘的难题。PS:可以提前打方向盘,别晚打。 四、防撞轨迹线图解

这条防撞轨迹线会随方向盘的转动而变化,在倒车时,通过它可以看到在倒车过程中车头是否与障碍物发生碰撞,从而调整方向盘的转向来避免与障碍物发生碰撞。 总结:看似简单的倒车泊车、行车过程,其实在已经包含了很多在倒车时我们需要注意的地方。有了这些轨迹线让倒车不再是困扰车主的最大难题。

倒车轨迹理论实现方法

倒车轨迹理论实现方法 Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】

倒车轨迹理论实现方法 帅文王文梁 关键字:倒车轨迹视角转换 前言:倒车轨迹是近两年部分国产汽车导航设备上新出现的一个功能,其借助方向盘转角信息将汽车可能的后退路线叠加到后视摄像头的输出上并标注出距离,以直观形象化的形式协助驾驶人员调整选择倒车路线,减少驾驶人员特别是新手的误判断,对使用者是一个不错的实用功能。倒车轨迹在智能倒车领域内属于辅助倒车系统中的一种,虽然其还无法达到智能化倒车,但是其实用性和辅助性上对汽车智能化单元技术方面是一个有效的补充。本文将基于使用为目的,从经验角度并结合基本数学推导分析倒车轨迹的原理、实现过程并给出实际使用过程中需要的操作点。由于本文非侧重于数学理论,对部分数学细节在不影响实际结论情况下不做深入探讨。 一倒车轨迹的基本原理 从日常经验可知,以自行车为例,如果前轮有一定转角,在维持转角不变状态和无轴向移动前提下自行车走过的路径将会以某个圆点为中心旋转,同样的状态也会出现在汽车上。其走过路径如图1。 图中假设车轮不会出现轴向移动,故如果保持车轮转角不变的情况下,每个车轮只能沿着垂直其车轴的方向行进,这里取前后轮的轴心作为轨迹跟踪点(实际过程中两个前轮轴心不会出现平行),则轨迹应该是以前后轮轴向线的焦点为圆心的圆。图中φ为为前轮同水平方向的夹角,记前后轮轴距为L,后轮轴长为W,后轮距离车尾的距离为D,从几何关系可知,后轮轴心的运动轨迹可以描述为以半径Lcot(φ)的圆周运动。两个后轮的轨迹分别为Lcot(φ)-W/2和Lcot(φ)+W/2的圆。这里的推导过程采用经验法结合几何推算,完全从数学角度的推算过程请参考资料1。图中的x方向和y方向不同于一般习惯主要是考虑后面的视角变换。从等式可以看到,当φ接近0度时候行进轨迹近似直线,接近90度时半径呈缩小趋势,符合我们日常经验值。 二视角转换 从倒车公式推导出的路线图为行进路线的俯视图,实际显示给操作者的路线应该是从车内观察点观察到的轨迹,驾驶人员看到的运动轨迹实际为以车尾摄像头为中心点坐标的图像描述(图一中车尾位置的原点)。将摄像头位置定为坐标零点,则轨迹上的任意点位置公式为:(x+Lcot(φ))2+(y+D)2=(Lcot(φ))2(1) 上面推导的轨迹仍然是基于俯视条件下的轨迹,看到的应该为处于一定视角观察的轨迹,故需要进行一定角度的转换才能切换到实际观察到的图像。假设摄像头的可视角范围为2α,摄像头距离地面h,摄像头中心线同水平面的夹角为β,输出屏幕的高度为H,这里假设摄像头相对于屏幕为一个点,会造成实际计算结果的一定偏差,关于偏差的细节数学计算不属本文讨论的重点。我们实际观察到的Yr为地面y在显示屏H上的投影,y方向的转换过程如图二:

关于倒车轨迹线浅述

关于倒车轨迹线浅述 倒车轨迹是近两年部分国产汽车导航设备上新出现的一个功能,其借助方向盘转角信息将汽车可能的后退路线叠加到后视摄像头的输出上并标注出距离,以直观形象化的形式协助驾驶人员调整选择倒车路线,减少驾驶人员特别是新手的误判断,对使用者是一个不错的实用功能。倒车轨迹在智能倒车领域内属于辅助倒车系统中的一种,虽然其还无法达到智能化倒车,但是其实用性和辅助性上对汽车智能化单元技术方面是一个有效的补充。本文将基于使用为目的,从经验角度并结合基本数学推导分析倒车轨迹的原理、实现过程并给出实际使用过程中需要的操作点。由于本文非侧重于数学理论,对部分数学细节在不影响实际结论情况下不做深入探讨。 一倒车轨迹的基本原理 从日常经验可知,以自行车为例,如果前轮有一定转角,在维持转角不变状态和无轴向移动前提下自行车走过的路径将会以某个圆点为中心旋转,同样的状态也会出现在汽车上。其走过路径如图一 图一

图中假设车轮不会出现轴向移动,故如果保持车轮转角不变的情况下,每个车轮只能沿着垂直其车轴的方向行进,这里取前后轮的轴心作为轨迹跟踪点(实际过程中两个前轮轴心不会出现平行),则轨迹应该是以前后轮轴向线的焦点为圆心的圆。图中φ为为前轮同水平方向的夹角,记前后轮轴距为L,后轮轴长为W,后轮距离车尾的距离为D,从几何关系可知,后轮轴心的运动轨迹可以描述为以半径Lcot(φ)的圆周运动。两个后轮的轨迹分别为Lcot(φ)-W/2和Lcot(φ)+W/2的圆。这里的推导过程采用经验法结合几何推算,完全从数学角度的推算过程请参考资料1。图中的x方向和y方向不同于一般习惯主要是考虑后面的视角变换。从等式可以看到,当φ接近0度时候行进轨迹近似直线,接近90度时半径呈缩小趋势,符合我们日常经验值。 二视角转换 从倒车公式推导出的路线图为行进路线的俯视图,实际显示给操作者的路线应该是从车内观察点观察到的轨迹,驾驶人员看到的运动轨迹实际为以车尾摄像头为中心点坐标的图像描述(图一中车尾位置的原点)。将摄像头位置定为坐标零点,则轨迹上的任意点位置公式为:(x+Lcot(φ)) 2+(y+D)2=(Lcot(φ))2 (1) 上面推导的轨迹仍然是基于俯视条件下的轨迹,看到的应该为处于一定视角观察的轨迹,故需要进行一定角度的转换才能切换到实际观察到的图像。假设摄像头的可视角范围为2α,摄像头距离地面h,摄像头中心线同水平面的夹角为β,输出屏幕的高度为H,这里假设摄像头相对于屏幕为一个点,会造成实际计算结果的一定偏差,关于偏差的细节数学计算不属本文讨论的重点。我们实际观察到的Yr为地面y在显示屏H上的投影,y方向的转换过程如图二: 图二

倒车轨迹理论实现方法精编版

倒车轨迹理论实现方法公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

倒车轨迹理论实现方法 帅文王文梁 关键字:倒车轨迹视角转换 前言:倒车轨迹是近两年部分国产汽车导航设备上新出现的一个功能,其借助方向盘转角信息将汽车可能的后退路线叠加到后视摄像头的输出上并标注出距离,以直观形象化的形式协助驾驶人员调整选择倒车路线,减少驾驶人员特别是新手的误判断,对使用者是一个不错的实用功能。倒车轨迹在智能倒车领域内属于辅助倒车系统中的一种,虽然其还无法达到智能化倒车,但是其实用性和辅助性上对汽车智能化单元技术方面是一个有效的补充。本文将基于使用为目的,从经验角度并结合基本数学推导分析倒车轨迹的原理、实现过程并给出实际使用过程中需要的操作点。由于本文非侧重于数学理论,对部分数学细节在不影响实际结论情况下不做深入探讨。 一倒车轨迹的基本原理 从日常经验可知,以自行车为例,如果前轮有一定转角,在维持转角不变状态和无轴向移动前提下自行车走过的路径将会以某个圆点为中心旋转,同样的状态也会出现在汽车上。其走过路径如图1。

图中假设车轮不会出现轴向移动,故如果保持车轮转角不变的情况下,每个车轮只能沿着垂直其车轴的方向行进,这里取前后轮的轴心作为轨迹跟踪点(实际过程中两个前轮轴心不会出现平行),则轨迹应该是以前后轮轴向线的焦点为圆心的圆。图中φ为为前轮同水平方向的夹角,记前后轮轴距为L,后轮轴长为W,后轮距离车尾的距离为D,从几何关系可知,后轮轴心的运动轨迹可以描述为以半径Lcot(φ)的圆周运动。两个后轮的轨迹分别为Lcot(φ)-W/2和Lcot(φ)+W/2的圆。这里的推导过程采用经验法结合几何推算,完全从数学角度的推算过程请参考资料1。图中的x方向和y方向不同于一般习惯主要是考虑后面的视角变换。从等式可以看到,当φ接近0度时候行进轨迹近似直线,接近90度时半径呈缩小趋势,符合我们日常经验值。 二视角转换 从倒车公式推导出的路线图为行进路线的俯视图,实际显示给操作者的路线应该是从车内观察点观察到的轨迹,驾驶人员看到的运动轨迹实际为以车尾摄像头为中心点坐标的图像描述(图一中车尾位置的原点)。将摄像头位置定为坐标零点,则轨迹上的任意点位置公式为:(x+Lcot(φ))2+(y+D)2=(Lcot(φ))2?(1) 上面推导的轨迹仍然是基于俯视条件下的轨迹,看到的应该为处于一定视角观察的轨迹,故需要进行一定角度的转换才能切换到实际观察到的图像。假设摄像头的可视角范围为2α,摄像头距离地面h,摄像头中心线同水平面的夹角为β,输出屏幕的高度为H,这里假设摄像头相对于屏幕为一个点,会造成实际

倒车轨迹理论实现方法

倒车轨迹理论实现方法 帅文王文梁 关键字:倒车轨迹视角转换 前言:倒车轨迹是近两年部分国产汽车导航设备上新出现的一个功能,其借助方向盘转角信息将汽车可能的后退路线叠加到后视摄像头的输出上并标注出距离,以直观形象化的形式协助驾驶人员调整选择倒车路线,减少驾驶人员特别是新手的误判断,对使用者是一个不错的实用功能。倒车轨迹在智能倒车领域内属于辅助倒车系统中的一种,虽然其还无法达到智能化倒车,但是其实用性和辅助性上对汽车智能化单元技术方面是一个有效的补充。本文将基于使用为目的,从经验角度并结合基本数学推导分析倒车轨迹的原理、实现过程并给出实际使用过程中需要的操作点。由于本文非侧重于数学理论,对部分数学细节在不影响实际结论情况下不做深入探讨。 一倒车轨迹的基本原理 从日常经验可知,以自行车为例,如果前轮有一定转角,在维持转角不变状态和无轴向移动前提下自行车走过的路径将会以某个圆点为中心旋转,同样的状态也会出现在汽车上。其走过路径如图1。

图中假设车轮不会出现轴向移动,故如果保持车轮转角不变的情况下,每个车轮只能沿着垂直其车轴的方向行进,这里取前后轮的轴心作为轨迹跟踪点(实际过程中两个前轮轴心不会出现平行),则轨迹应该是以前后轮轴向线的焦点为圆心的圆。图中φ为为前轮同水平方向的夹角,记前后轮轴距为L,后轮轴长为W,后轮距离车尾的距离为D,从几何关系可知,后轮轴心的运动轨迹可以描述为以半径Lcot(φ)的圆周运动。两个后轮的轨迹分别为Lcot(φ)-W/2和Lcot(φ)+W/2的圆。这里的推导过程采用经验法结合几何推算,完全从数学角度的推算过程请参考资料1。图中的x方向和y方向不同于一般习惯主要是考虑后面的视角变换。从等式可以看到,当φ接近0度时候行进轨迹近似直线,接近90度时半径呈缩小趋势,符合我们日常经验值。 二视角转换

最新西南交大数学建模复赛a题自动倒车策略要点

西南交通大学峨眉校区2016年 全国大学生数学建模竞赛第二次预选赛试题 题目(A题自动倒车策略) 姓名吴佩伦何青霞 学号2014120771 2014121382 专业14级机电14级铁道运输联系电话158******** 181******** QQ 792160313 546452637

自动倒车策略 摘要 本文针对自动泊车系统的研究,参考生活中人工入库的实际情况,对整个倒车过程车辆运动规律进行深入分析之后,运用了几何学相关知识求出了车辆在各段泊车的位置,列出了相关不等式并采用数形结合的方法,求解出了泊车起始点范围,并根据车辆在泊车点附近安全行驶的区域范围及泊车最终停靠位置的合理性,列出约束条件,通过构建多目标非线性规划模型,很好的解决了安全倒车入库的起始点位置问题和最佳泊车策略问题,最后运用了Matlab 软件对模型进行求解。 问题一中,题目要求寻找能够安全倒车入库的起始点位置所在的区域范围,首先我们要明确的是影响汽车安全入库的因素就是车库周围物体的阻碍,然后我们将汽车倒车入库的过程划分为三个阶段,仔细分析汽车倒车入库的过程之后我们考虑这三段过程中可能会发生的接触车库警戒线,列出约束条件,建立数学模型,并采用数形结合的方法对模型进行求解,最终求出汽车能够安全入库的起始点位置范围为下列曲线 6.747513.25; 2.47 5.27;y x <<-<< 8.990.45( 2.47,3.97);y x x <++∈- 22( 2.8)(9.22) 2.47,(3.97,5.27);x y x -+-<∈222( 3.97)(0.6) 6.44,(2.05,3.97)x y x -+-<∈所 包络的不规则区域。 问题二中,题目要求设计出从任意倒车入库起始点开始的最佳泊车策略,并求出采用最佳策略时的前轮转角和后轮行驶距离。我们应该在汽车能够安全倒车入库并停在最恰当位置的前提下寻求满足前轮转角之和最小和后轮行驶距离最短的最佳泊车策略,先针对设任意起始点00(,)x y 分析,对问题一中所构建的模型稍加改动,增加了对最终停车位置的约束条件,并针对前轮转角和后轮行驶距离构建双目标函数,由几何问题转化为多目标非线性规划问题,因为00(,)x y 非具体值,无法通过软件直接求解,通过任意选取多个具体00(,)x y 的值,运用Matlab 软件的fgoalattain 函数对该双目标非线性规划问题求解,得到多个起始点的最佳泊车策略,并进行了比较分析。 关键词:数形结合,Matlab ,多目标函数非线性规划

道可视倒车轨迹

智能轨迹倒车系统Intelligent Parking System 用户手册 User Manual

目录 I. 功能介绍 (1) II. 安装步骤 (2) 步骤一:接线 (3) 步骤二:选择视频模式 (3) 步骤三:摄像头标定 (4) 步骤四:选择车型 (6) 步骤五:方向盘角度校正 (6) III. 其他功能说明 (7) IV. 产品规格 (7)

I.功能介绍 本智能轨迹倒车系统(以下称本产品)的主要功能为在倒车影像上动态显示倒车轨迹线,轨迹线随方向盘转动而变化,准确地显示出倒车时车尾的轨迹,辅助车主轻松倒车。 本产品具有智能倒车轨迹、车身位置参考、警戒线提示三大突出特点。本产品安装简单,兼容各种品牌的倒车摄像头和DVD导航屏幕或者其它独立屏幕,可适合各种配备有汽车电子稳定控制系统的车型安装。 后视摄像头视角及其安装位置的差异,会导致倒车轨迹线在倒车影像中显示出的形状和位置不同。本产品采用本公司首创的后视摄像头标定技术,使得对于不同视角及安装位置的摄像头,倒车轨迹线同样精准。 本产品显示界面主要由定位区、轨迹线、警戒线组成。如上图所示。 ?定位区方向盘打正后倒车,车身将会经过的区域,用于泊 车位置参考。 ?轨迹线在当前方向盘转角情况下倒车,车尾将会经过的区 域。轨迹线随方向盘的转动而变化。在方向盘打正的情况下, 轨迹线和定位区重合。 轨迹线的宽度 = 车身宽度+12 cm×2,即车身宽度再加上两 边12 cm的安全宽度。

?警戒线车尾向后30 cm,应当避免障碍物出现在警戒线以 内。 产品包装清单 ?智能轨迹倒车系统主机×1 ?OBD插头线×1 ?视频输入输出线×1 ?电源线×1 ?用户手册×1 ?保修卡×1 ?车型对应表×1 II.安装步骤 安装本产品时请务必参照以下安装步骤。

轨迹交叉理论.

轨迹交叉论 轨迹交叉论认为,在一个系统中,人的不 安全行为和物的不安全状态的形成过程中,一旦发生时间和空间的运动轨迹交叉,就会造成事故。按照轨迹交叉论,描绘的事故模型如图1所示。? 图1 轨迹交叉论人与物两系列形成事故的系统人的不安全行为或物的不安全状态是引起工业伤害事故的直接原因。关于人的不安全行为和物的不安全状态在事故致因中地位的认识,是事故致因理论中的一个重要问题。? 海因里希作过研究,事故的主要原因或者是由于人的不安全行为,或者是由于物的不安全状态,没有一起事故是由于人的不安全行为及物的不安全状态共同引起的。(见图2)于是,他得出的结论是,几乎所有的工业伤害事故都是由于人的不安全行为造成的。 图2 事故的直接原因 后来,海因里希的这种观点受到了许多研究者的批判。根据日本的统计资料。1969年机械制造业的休工10天以上的伤害事故中,96%的事故与人的不安全行为有关,91%的事故与物的不安全状态有关;1977年机械制造业的休工4天以上的104638件伤害事故中,与人的不安全行为无关的只占 5.5%,与物的不安全状态无关的只占1 6.5%。这些统计数字表明,大多数工业伤害事故的发生,既由于人的不安全行为,也由于物的不安全状态。? 随着事故致因理论的逐步深入,越来越多的人认识到,一起工业事故之所以能够发生,除了人的不安全行为之外,一定存在着某种不安全条件。斯奇巴(Skiba)指出,生产操作人员与机械设备两种因素都对事故的发生有影响,并且机械设备的危险状态对事故的发生作用更大些。他认为,只有当两种因素同时出现时,才能发生事故。实践证明,消除生产作业中物的不安全状态,可以大幅度地减少伤害事故的

一体化动态倒车轨迹视像生成方法及系统(二撰9-15)剖析

本发明公开了一种一体化动态倒车轨迹视像生成方法及系统,通过以下步骤实现倒车轨迹视像的生成:预存车辆倒车轨迹线图片;获取车辆的车身位置变化信息,其中,所述车身位置变化信息来自于固定设置于车身的惯性传感器,所述惯性传感器包括三轴加速度计、三轴陀螺仪和三轴磁强计;调取与所述车身位置变化信息对应的预存车辆倒车轨迹线图片,并将其叠加显示于显示器上,其中,所述显示器显示的图像为设置于车辆后方的摄像头采集的图像信息。该一体化动态倒车轨迹视像生成方法及系统安装方便,不依赖车身自带的软件,适用于所有车型。

S1

1、一种一体化动态倒车轨迹视像生成方法,包括如下步骤: S1:预存车辆倒车轨迹线图片; S2:获取车辆的车身位置变化信息,其中,所述车身位置变化信息来自于固定设置于车身的惯性传感器,所述惯性传感器包括三轴加速度计、三轴陀螺仪和三轴磁强计; S3:调取与所述车身位置变化信息对应的预存车辆倒车轨迹线图片,并将其叠加显示于显示器上,其中,所述显示器显示的图像为设置于车辆后方的摄像头采集的图像信息。 2、按照权利要求1所述一体化动态倒车轨迹视像生成方法,其特征在于:所述步骤S2具体包括如下步骤: S201:通过三轴加速度计、三轴陀螺仪和三轴磁强计获得车辆的三轴加速度信息、三轴角速度信息及三轴地磁信息; S202:根据所述三轴加速度信息、三轴角速度信息及三轴地磁信息计算出车辆的位置变化信息。 3、按照权利要求2所述一体化动态倒车轨迹视像生成方法,其特征在于:所述步骤S3具体包括如下步骤: S301:预设车身位置变化触发值; S302:检测车身位置变化量是否等于预设的车身位置变化触发值,若是,将与车身位置变化量对应的预存车辆倒车轨迹线图片叠加显示于显示器上,并将此时的车身位置信息作为下一次车体运行轨迹变化的参考值,重复此步骤,直至结束生成视像。 4、按照权利要求3所述一体化动态倒车轨迹视像生成方法,其特征在

倒车轨迹实车标定说明

倒车轨迹实车标定说明 一、一、倒车轨迹标定示意图 倒车轨迹标定示意图实车标定示意图轮轮 d }?条形参照物一 条形参照物二头米 如图所示,在车后方距离车尾处分别为1米和2米的位置摆放长为2米的条形参照物,必须保证参照物中心在车前后轴中心连线上且与前后轴中心连线呈垂直关系。 图中查看原车说明书能够获得的参数有:轴距L ,后轮距W 。 图中需要借助于卷尺测量的长度为:摄像头到后轴的距离D 。

使用标定工具软件标定步骤 二、 二、使用标定工具软件标定步骤 1、打开标定工具软件 在倒车状态下,屏幕如下图所示,如果不支持倒车雷达则看不到左侧小车图标,如果不支持倒车警告提示则看不到下面提示信息。 在图中左上角30*30区域内按下触摸屏,保持按下状态滑动到大的矩形区域内释放,会打开如下所示的倒车轨迹参数标定工具,如果没有出现,则说明未打开倒车轨迹功能。 图中左上角框表示要调节的项,点击左右按钮可以来回切换要调节的项,紧挨着下方的4个方向按钮是用来调节当前项的参数值。右上角关闭按钮旁边的NTSC表示当前摄像头的制式,可能是NTSC或PAL,这两个制式的分辨率不同。

2、调节车身固有参数 查看原车说明书能够获取到的参数:轴距、后轮距、最小转弯半径、车身宽度等。使用卷尺等工具测量出车身的固有参数:尾轴距离、摄像头高等。 1)轴距:查看原车车身参数(如倒车标定示意图中的L); 2)后轮距:查看原车车身参数; 3)最小转弯半径:查看原车车身参数; 4)车身宽度:查看原车车身参数,实际绘制的轨迹线为车身两侧分别扩展12CM; 5)尾轴距离:摄像头安装位置到后轴的垂直距离(如倒车示意图中的D); 6)最远距离:绘制地面多远范围内的轨迹,设置为5表示只绘制5米以内的轨迹; 7)摄像头高:摄像头安装位置到地面的垂直距离,该值直接影响到轨迹在屏幕上的显示位置是否准确,下面摄像头参数的标定依赖于该值,请务必确保该值的测量准确。 以前后轴距为例说明如何调节值,参数标定工具软件打开后的界面如下所示: 屏幕左侧中间的4个方向调节按钮可以调节当前项参数的值,左右调节按钮每次增减0.01,上下方向的调节按钮每次增减0.1,调节的参数单位都为米。

一种一体化动态倒车轨迹视像生成方法及系统(修改)

一种一体化动态倒车轨迹视像生成方法及系统(修改)

本发明公开了一种一体化动态倒车轨迹视像生成方法及系统,通过以下步骤实现倒车轨迹视像的生成:预存车辆倒车轨迹线图片;通过惯性传感器获取车辆的位置变化信息;调取与所述位置变化信息对应的预存轨迹线图片,并将所述轨迹线图片叠加于显示器显示的图像上。检测车体的实时位置变化量是否大于预存与存储器内的车体相对位置变化参数,若是,说明车体有向某一个方向运动的趋势,切换车体运行轨迹线图片,并将此时的车体位置相对变化参数作为下一次车体运行轨迹变化的参考值,直至结束生成视像。该一体化东台倒车轨迹视像生成方法及系统安装方便,不依赖车身自带的软件,适用于所有车型。

S1

1、一种一体化动态倒车轨迹视像生成方法,包括如下步骤: S1:预存车辆倒车轨迹线图片,其中,每两张轨迹线的曲率最接近的轨迹线图片对应的位置变化信息为一定值; S2:获取车辆的位置变化信息,其中,所述位置变化信息来自于内置于一体化摄像头的惯性传感器; S3:调取与所述位置变化信息对应的预存轨迹线图片,并将其叠加于显示器显示的图像上,其中,所述显示器显示的图像为设置于车辆后方的摄像头采集的图像信息; S4:检测车辆的位置变化量是否大于预存与存储器内的预设参数,若是,说明车体有向某一个方向运动的趋势,切换车体运行轨迹线图片,并将此时的车体位置相对变化参数作为下一次车体运行轨迹变化的参考值,重复步骤S4,直至结束生成视像。 2、按照权利要求1所述一体化动态倒车轨迹视像生成方法,其特征在于:所述步骤S2具体包括如下步骤: S201:采集车辆的三轴加速度信息、三轴角速度信息及三轴地磁信息; S202:根据所述三轴加速度信息、三轴角速度信息及三轴地磁信息通过算法计算出车辆的位置变化信息。 3、按照权利要求2所述一体化动态倒车轨迹视像生成方法,其特征在于:所述步骤S201还包括对采集的车辆的三轴加速度信息、三轴角速度信息及三轴地磁信息的滤波处理。

相关文档