IE处理惯导数据的方法Word文档格式.docx

上传人:b****2 文档编号:14749178 上传时间:2022-10-24 格式:DOCX 页数:20 大小:779.96KB
下载 相关 举报
IE处理惯导数据的方法Word文档格式.docx_第1页
第1页 / 共20页
IE处理惯导数据的方法Word文档格式.docx_第2页
第2页 / 共20页
IE处理惯导数据的方法Word文档格式.docx_第3页
第3页 / 共20页
IE处理惯导数据的方法Word文档格式.docx_第4页
第4页 / 共20页
IE处理惯导数据的方法Word文档格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

IE处理惯导数据的方法Word文档格式.docx

《IE处理惯导数据的方法Word文档格式.docx》由会员分享,可在线阅读,更多相关《IE处理惯导数据的方法Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。

IE处理惯导数据的方法Word文档格式.docx

回到基准点标志

btemp2:

停止标志

Wibb:

陀螺数据,单位:

rad/s;

Aibb:

加表数据,单位:

m/s/s;

ODOMETERInfo。

Npulse:

里程计脉冲数,单位:

个,每个当量代表0。

00175米

CtrlData.GpsSynFlag:

卫星同步脉冲标志,1:

有,0:

CtrlData。

UTCTime:

IMU数据对应的UTC时间

其他已知信息:

惯导坐标定义:

x朝前,y朝上,z朝右

里程计在惯导中的位置:

x,z为0,y—0.17m,里程计在惯导下面17cm

频率200hz

加速度角速度的增量

里程计脉冲个数一圈180个脉冲

里程计周长315mm直径100毫米

一个脉冲1.75mm

B.运用VC代码进行转换,提取所需的惯导和里程计数据,代码如下:

CFileDialogdlg(TRUE,"

.IMUUTC”,”*。

IMUUTC"

,OFN_HIDEREADONLY|OFN_FILEMUSTEXIST,

"

IMUFile(*。

IMUUTC)|*。

IMUUTC||”,NULL);

if(dlg.DoModal()!

=IDOK)return;

CStringfilename=dlg。

GetPathName();

//获得打开的文件名称

FILE*fp;

if((fp=fopen(filename,"

r"

))==NULL)

{

MessageBox(”文件打不开"

);

return;

FILE*fpw,*dmrfp;

CStringBinFileName,DmrFileName;

BinFileName=filename.Left(filename.GetLength()—7)+"

.bin"

;

//转换后bin格式的文件名

DmrFileName=filename.Left(filename。

GetLength()—7)+"

.dmr"

//转换后dmr格式的文件名

fpw=fopen(BinFileName,"

wb"

if(fpw==NULL)return;

dmrfp=fopen(DmrFileName,”wb”);

if(dmrfp==NULL)return;

//设置dmr格式的头文件信息(根据所使用的里程计信息)

charszHdr1;

szHdr1='

$’;

charszHdr2;

szHdr2='

D’;

charszHdr3;

szHdr3=’M'

charszHdr4;

szHdr4=’I'

charszHdr5;

szHdr5='

R’;

charszHdr6;

szHdr6=’A’;

charszHdr7;

szHdr7='

W’;

charszHdr8;

szHdr8=’\0'

shortsHdrSize;

sHdrSize=512;

shortsRecSize;

sRecSize=16;

shortsValueType;

sValueType=0;

shortsMeasType;

sMeasType=2;

//1量距离,2量速度

shortsDIM;

sDIM=1;

shortsRes;

sRes=3;

shortsDistanceType;

//可选的

//sDistanceType=1;

shortsVelocityType;

//量距单位,1-—m/sor2—-ticks/s

sVelocityType=2;

doubledScale;

dScale=1。

0;

charszAxisName[48]={’L'

’e'

’f’,’t’,’\0'

};

//,可选的

doubledWheelSize;

dWheelSize=0。

315;

//实际的轮胎长度

longITicksPerRevolution;

ITicksPerRevolution=180;

//轮胎走一圈脉冲个数

char*cExtra2=newchar[420];

//未赋值,可选的

memset(cExtra2,0,420);

cExtra2="

Writebyzzz”;

fwrite(&

szHdr1,sizeof(char),1,dmrfp);

fwrite(&szHdr2,sizeof(char),1,dmrfp);

szHdr3,sizeof(char),1,dmrfp);

szHdr4,sizeof(char),1,dmrfp);

szHdr5,sizeof(char),1,dmrfp);

szHdr6,sizeof(char),1,dmrfp);

fwrite(&szHdr7,sizeof(char),1,dmrfp);

szHdr8,sizeof(char),1,dmrfp);

fwrite(&sHdrSize,sizeof(short),1,dmrfp);

sRecSize,sizeof(short),1,dmrfp);

fwrite(&sValueType,sizeof(short),1,dmrfp);

fwrite(&sMeasType,sizeof(short),1,dmrfp);

fwrite(&sDIM,sizeof(short),1,dmrfp);

fwrite(&sRes,sizeof(short),1,dmrfp);

fwrite(&sDistanceType,sizeof(short),1,dmrfp);

fwrite(&sVelocityType,sizeof(short),1,dmrfp);

fwrite(&dScale,sizeof(double),1,dmrfp);

szAxisName,sizeof(char),48,dmrfp);

dWheelSize,sizeof(double),1,dmrfp);

fwrite(&ITicksPerRevolution,sizeof(long),1,dmrfp);

fwrite(cExtra2,sizeof(char),420,dmrfp);

//读取原始文件的变量

intrecord_num;

intflag1;

intflag2;

doublegx,gy,gz,ax,ay,az;

intodo;

intGpsSynFlag;

doublegpstime;

//.bin文件变量

longscale=1000000;

//比例系数

longlgx,lgy,lgz,lax,lay,laz;

//。

dmr文件的数据记录变量

shortsSync;

sSync=65518;

//setto0xffee

shortsWeek;

sWeek=-1;

//GPSweeknumber,Setto—1ifnotknown

doubledTime;

unsignedlonglValue;

//values(counts)

lValue=0;

do

{//读取原文件数据

fscanf(fp,”%ld"

,&

record_num);

fscanf(fp,"

%ld”,&flag1);

fscanf(fp,"

%ld"

flag2);

fscanf(fp,"

%lf"

&

gx);

fscanf(fp,”%lf”,&gy);

fscanf(fp,"

,&gz);

fscanf(fp,”%lf"

ax);

fscanf(fp,”%lf"

ay);

fscanf(fp,"

%lf"

az);

fscanf(fp,”%ld"

&odo);

%ld”,&

GpsSynFlag);

fscanf(fp,”%lf”,&gpstime);

if(feof(fp))

break;

//提取.bin文件数据

gx=gx/3.14159265358979323846*180;

//陀螺计数据x由弧度每秒转换为度每秒

gy=gy/3.14159265358979323846*180;

//陀螺计数据y由弧度每秒转换为度每秒

gz=gz/3。

14159265358979323846*180;

//陀螺计数据z由弧度每秒转换为度每秒

lgx=int(gx*scale);

lgy=int(gy*scale);

lgz=int(gz*scale);

lax=int(ax*scale);

lay=int(ay*scale);

laz=int(az*scale);

gpstime=gpstime+259200。

0;

//天秒转换成周秒

fwrite(&

gpstime,sizeof(double),1,fpw);

lgx,sizeof(long),1,fpw);

lgy,sizeof(long),1,fpw);

fwrite(&lgz,sizeof(long),1,fpw);

fwrite(&lax,sizeof(long),1,fpw);

fwrite(&lay,sizeof(long),1,fpw);

laz,sizeof(long),1,fpw);

//提取.dmr格式文件

dTime=gpstime;

lValue+=odo;

sSy

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 人力资源管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1