IE处理惯导数据的方法.docx_第1页
IE处理惯导数据的方法.docx_第2页
IE处理惯导数据的方法.docx_第3页
IE处理惯导数据的方法.docx_第4页
IE处理惯导数据的方法.docx_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

三十三所惯导和里程计数据的处理方法说明运用Waypoint Inertial Explorer软件对三十三所采集的惯导数据和里程计数据,结合Novtal的GPS数据进行处理得到最终的pos数据。原始数据的预处理由于三十三所的惯导采集的数据格式是.IMUUTC格式的数据(包含惯导和里程计数据),Waypoint Inertial Explorer软件对此格式不识别,需要进行格式转换:(以2015年3月4日良乡采集的试验数据为例)1).IMUUTC转换为.bin格式(惯导数据)和.dmr格式(里程计数据)AIMU原始测量数据,数据格式如下:BYTE btemp1,btemp2;fscanf(F_IMUUTC,%ld %d %d %lf %lf %lf %lf %lf %lf %ld %d %lf ,&(ImuAst.PC),&(btemp1),&(btemp2),&(Wibb0),&(Wibb1),&(Wibb2),&(Aibb0),&(Aibb1),&(Aibb2),&(ODOMETERInfo.Npulse),&(CtrlData.GpsSynFlag),&(CtrlData.UTCTime);ImuAst.PC : int类型 IMU帧计数 每5ms加1btemp1 :回到基准点标志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代码进行转换,提取所需的惯导和里程计数据,代码如下:CFileDialog dlg(TRUE,.IMUUTC,*.IMUUTC,OFN_HIDEREADONLY|OFN_FILEMUSTEXIST,IMU File(*.IMUUTC)|*.IMUUTC|,NULL);if(dlg.DoModal() != IDOK) return;CString filename = dlg.GetPathName();/获得打开的文件名称FILE *fp;if(fp = fopen(filename,r) = NULL)MessageBox(文件打不开);return ;FILE *fpw,*dmrfp; CString BinFileName,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格式的头文件信息(根据所使用的里程计信息) char szHdr1;szHdr1=$;char szHdr2;szHdr2=D;char szHdr3;szHdr3=M;char szHdr4;szHdr4=I;char szHdr5;szHdr5=R;char szHdr6;szHdr6=A;char szHdr7;szHdr7=W;char szHdr8;szHdr8=0;short sHdrSize;sHdrSize=512;short sRecSize;sRecSize=16; short sValueType;sValueType=0;short sMeasType;sMeasType=2;/1量距离,2量速度short sDIM;sDIM=1;short sRes;sRes=3;short sDistanceType;/可选的/ sDistanceType=1;short sVelocityType; /量距单位,1-m/s or 2-ticks/ssVelocityType=2;double dScale;dScale=1.0;char szAxisName48=L,e,f,t,0;/,可选的double dWheelSize;dWheelSize=0.315; / 实际的轮胎长度long ITicksPerRevolution;ITicksPerRevolution=180; /轮胎走一圈脉冲个数char *cExtra2=new char420;/未赋值,可选的memset(cExtra2,0,420);cExtra2=Write by zzz;fwrite(&szHdr1,sizeof(char),1,dmrfp);fwrite(&szHdr2,sizeof(char),1,dmrfp);fwrite(&szHdr3,sizeof(char),1,dmrfp);fwrite(&szHdr4,sizeof(char),1,dmrfp);fwrite(&szHdr5,sizeof(char),1,dmrfp);fwrite(&szHdr6,sizeof(char),1,dmrfp);fwrite(&szHdr7,sizeof(char),1,dmrfp);fwrite(&szHdr8,sizeof(char),1,dmrfp);fwrite(&sHdrSize,sizeof(short),1,dmrfp);fwrite(&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);fwrite(&szAxisName,sizeof(char),48,dmrfp);fwrite(&dWheelSize,sizeof(double),1,dmrfp);fwrite(&ITicksPerRevolution,sizeof(long),1,dmrfp);fwrite(cExtra2,sizeof(char),420,dmrfp);/读取原始文件的变量int record_num;int flag1;int flag2;double gx,gy,gz,ax,ay,az;int odo;int GpsSynFlag;double gpstime;/.bin文件变量long scale=1000000;/比例系数long lgx,lgy,lgz,lax,lay,laz;/.dmr文件的数据记录变量short sSync;sSync=65518;/set to 0xffeeshort sWeek;sWeek=-1;/ GPS week number, Set to -1 if not knowndouble dTime;unsigned long lValue; / 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,%lf,&gz); fscanf(fp,%lf,&ax); fscanf(fp,%lf,&ay); fscanf(fp,%lf,&az); fscanf(fp,%ld,&odo);fscanf(fp,%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);fwrite(&lgx,sizeof(long),1,fpw);fwrite(&lgy,sizeof(long),1,fpw);fwrite(&lgz,sizeof(long),1,fpw);fwrite(&lax,sizeof(long),1,fpw);fwrite(&lay,sizeof(long),1,fpw);fwrite(&laz,sizeof(long),1,fpw); /提取.dmr格式文件dTime=gpstime;lValue+=odo;fwrite(&sSync,sizeof(short),1,dmrfp);fwrite(&sWeek,sizeof(short),1,dmrfp);fwrite(&dTime,sizeof(double),1,dmrfp);fwrite(&lValue,sizeof(unsigned long),1,dmrfp); while(!feof(fp);fclose(fp); fclose(fpw);fclose(dmrfp);MessageBox(IMA转换为BIN和DMR格式处理完成!);2)Waypoint Inertial Explorer软件转换.bin文件为.imr文件打开转换选项的界面,选择要转换的.bin文件IMU Profiles选项中点击NEW根据已有惯导的信息(之前A部分已提供)建立一个新的模型设置完成之后点击convet,转换为所需的.imr文件,点击关闭。运用Waypoint Inertial Explorer软件处理惯导和GPS数据1) 新建一个工程文件打开project wizard,新建一个工程路径和名称。添加流动站数据和惯导数据(上面已经预处理好的)点击下一步,默认

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论