1、 btemp1 :回到基准点标志 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个脉冲 里程计周
2、长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) Messa
3、geBox(文件打不开); 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, if(dmrf
4、p = 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; s
5、ValueType=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/s sVelocityType=2; double dScale; dScale=1.0; char szAxisName48=L,eft;/,可选的 double dWheelSize; dWheelSize=0.315; / 实际的轮
6、胎长度 long ITicksPerRevolution; ITicksPerRevolution=180; /轮胎走一圈脉冲个数 char *cExtra2=new char420;/未赋值,可选的 memset(cExtra2,0,420); cExtra2=Write by zzz fwrite(&szHdr1,sizeof(char),1,dmrfp);szHdr2,sizeof(char),1,dmrfp);szHdr3,sizeof(char),1,dmrfp);szHdr4,sizeof(char),1,dmrfp);szHdr5,sizeof(char),1,dmrfp);sz
7、Hdr6,sizeof(char),1,dmrfp);szHdr7,sizeof(char),1,dmrfp);szHdr8,sizeof(char),1,dmrfp);sHdrSize,sizeof(short),1,dmrfp);sRecSize,sizeof(short),1,dmrfp);sValueType,sizeof(short),1,dmrfp);sMeasType,sizeof(short),1,dmrfp);sDIM,sizeof(short),1,dmrfp);sRes,sizeof(short),1,dmrfp);sDistanceType,sizeof(short),
8、1,dmrfp);sVelocityType,sizeof(short),1,dmrfp);dScale,sizeof(double),1,dmrfp);szAxisName,sizeof(char),48,dmrfp);dWheelSize,sizeof(double),1,dmrfp);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
9、; int odo; int GpsSynFlag; double gpstime;/.bin文件变量 long scale=1000000;/比例系数 long lgx,lgy,lgz,lax,lay,laz;/.dmr文件的数据记录变量 short sSync; sSync=65518;/set to 0xffee short sWeek; sWeek=-1;/ GPS week number, Set to -1 if not known double dTime; unsigned long lValue; / values (counts) lValue=0; do /读取原文件数据
10、 fscanf(fp,%ldrecord_num); fscanf(fp,flag1);flag2);%lfgx); fscanf(fp,gy);gz);ax);ay);az);odo);GpsSynFlag);gpstime); if(feof(fp) break; /提取.bin文件数据 gx=gx/3.14159265358979323846*180;/陀螺计数据x由弧度每秒转换为度每秒 gy=gy/3.14159265358979323846*180; /陀螺计数据y由弧度每秒转换为度每秒 gz=gz/3.14159265358979323846*180; /陀螺计数据z由弧度每秒转换
11、为度每秒 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);lgz,sizeof(long),1,fpw);lax,sizeof(long),1,fpw);l
12、ay,sizeof(long),1,fpw);laz,sizeof(long),1,fpw); /提取.dmr格式文件 dTime=gpstime; lValue+=odo;sSync,sizeof(short),1,dmrfp);sWeek,sizeof(short),1,dmrfp);dTime,sizeof(double),1,dmrfp);lValue,sizeof(unsigned long),1,dmrfp); while(!feof(fp); fclose(fp); fclose(fpw); fclose(dmrfp); MessageBox(IMA转换为BIN和DMR格式处理完
13、成!2)Waypoint Inertial Explorer软件转换.bin文件为.imr文件打开转换选项的界面,选择要转换的.bin文件IMU Profiles选项中点击NEW根据已有惯导的信息(之前A部分已提供)建立一个新的模型设置完成之后点击convet,转换为所需的.imr文件,点击关闭。运用Waypoint Inertial Explorer软件处理惯导和GPS数据1) 新建一个工程文件打开project wizard,新建一个工程路径和名称。添加流动站数据和惯导数据(上面已经预处理好的)点击下一步,默认不做修改。点击下一步点击下一步增加基站数据默认选择,点击下一步,选择基站数据文件。点击下一步,设置基站的坐标和天线高信息点击下一步,默认选择点击下一步,完成工程文件的创建。2) 做GPS数据差分处理处理完成后,得到差分后的轨迹图:3) 运用惯导和里程计数据做紧耦合处理打开紧耦合功能选项:点击IMU Settings 设置IMU相关参数,GPS天线与惯导的相对位置,初始化和结束化的方式和时间。设置里程计数据参数设置误差模型点击应用确定处理,得到融合惯导和里程计之后的轨迹输出所需的POS数据。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1