科学网

 找回密码
  注册

tag 标签: GPS导航

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

开篇词
热度 1 footballman 2015-5-9 09:29
第一次发现这样一个平台,第一次在这里写博文!希望有很多能够看到。 我现在主要的研究方向是 GPS导航定位,做水下导航定位这一块,主要研究几何结构对定位精度的影响。 由于国内外在这个方面的研究还比较少,所以希望大家能给我提供点参考。不晓得该如何下手了。
1666 次阅读|1 个评论
[转载]GPS/INS组合导航MATLAB源码分析
zhenghui2915 2012-5-17 09:37
源代码: s_GPS_INS_position_sp_demo.m kalman_GPS_INS_position_sp_NFb.m ode500.mat %GPS/INS组合导航 %%%%%%%%%%%%%%%%%% %edit by horsejun %%%%%%%%%%%%%%%%%% %量测信号: 位置 %INS输出数据由simulink计算得出 %参考文献《GPS导航原理与应用》——王惠南 clear clc %得到轨迹信号 load ode500 %ode500mat文件加载成功后,所有的数据文件保存在变量yout中 Re = 6378245; %地球长半径 %真实轨迹 a_R = yout(:,1:3); %姿态数据 v_R= yout(:,4:6); %速度数据 p_R = yout(:,7:9); %位置数据 %加噪声后的INS计算结果 a_ins = yout(:,10:12); %INS姿态数据 v_ins = yout(:,13:15); %INS速度数据 p_ins = yout(:,16:18); %INS位置数据 quat = yout(:,19:22); %姿态四元数 Fn= yout(:,23:25); %地理系下的比力 %惯导相关的噪声统计数据 Q_wg = (0.04/(57*3600))^2; %陀螺马氏过程 Q_wr = (0.01/(57*3600))^2; %陀螺白噪声 Q_wa = (1e-3)^2; %加计马氏过程 Q = diag( ); %量测方程协方差矩阵 Tg= 300*ones(3,1); %???时间 Ta = 1000*ones(3,1); %???时间 %得到带误差的GPS输出信号 p_gps_sample = p_R(1:10:end,:); %每隔10个历元进行重采样 n = size(p_gps_sample,1); p_error(:,1:2) = 30*randn(n,2)/Re; %位置误差-水平x,y p_error(:,3) = 30*randn(n,1); %位置误差-垂直z p_gps = p_gps_sample+p_error; %对GPS加入位置误差 R= diag(std(p_error).^2); %计算测量噪声方差R %卡尔曼滤波 tao= 1; %滤波步长 a_R_sample = a_R(1:10:end,:); v_R_sample = v_R(1:10:end,:); p_R_sample = p_R(1:10:end,:); a_ins_sample= a_ins(1:10:end,:); v_ins_sample= v_ins(1:10:end,:); p_ins_sample= p_ins(1:10:end,:); Dp = p_ins_sample-p_gps; %INS与GPS输出的位置差值 a = a_ins_sample; v = v_ins_sample; p = p_ins_sample; quat0= quat(1:10:end,:); Fn0 = Fn(1:10:end,:); = kalman_GPS_INS_position_sp_NFb (Dp, v, p, quat0, Fn0, Q, R, Tg, Ta, tao);%得到位置,速度误差误差估计值 a_estimate = a(1:size(Error_a,1),:)-Error_a; v_estimate = v(1:size(Error_v,1),:)-Error_v; p_estimate = p(1:size(Error_p,1),:)-Error_p; n = size(p_estimate,1); %位置误差比较 figure subplot(3,1,1) plot((1:n),(p_R_sample(1:n,1)-p(1:n,1))*6e6,'k',(1:n),(p_R_sample(1:n,1)-p_estimate(:,1))*6e6,'r') %黑线-滤波前的误差 红线-滤波后的误差 xlabel('时间,单位s') subplot(3,1,2) plot((1:n),(p_R_sample(1:n,2)-p(1:n,2))*6e6,'k',(1:n),(p_R_sample(1:n,2)-p_estimate(:,2))*6e6,'r') %黑线-滤波前的误差 红线-滤波后的误差 ylabel('位置误差,单位m') subplot(3,1,3) plot((1:n),p_R_sample(1:n,3)-p(1:n,3),'k',(1:n),p_R_sample(1:n,3)-p_estimate(:,3),'r') %黑线-滤波前的误差 红线-滤波后的误差 xlabel('黑线-滤波前的INS误差 红线-滤波后的误差') %速度误差比较 figure subplot(3,1,1) plot((1:n),v_R_sample(1:n,1)-v(1:n,1),'k',(1:n),v_R_sample(1:n,1)-v_estimate(:,1),'r') %黑线-滤波前的误差 红线-滤波后的误差 xlabel('时间,单位s') subplot(3,1,2) plot((1:n),v_R_sample(1:n,2)-v(1:n,2),'k',(1:n),v_R_sample(1:n,2)-v_estimate(:,2),'r') %黑线-滤波前的误差 红线-滤波后的误差 ylabel('速度误差,单位m/s') subplot(3,1,3) plot((1:n),v_R_sample(1:n,3)-v(1:n,3),'k',(1:n),v_R_sample(1:n,3)-v_estimate(:,3),'r') %黑线-滤波前的误差 红线-滤波后的误差 xlabel('黑线-滤波前的INS误差 红线-滤波后的误差') %位置误差 figure subplot(3,1,1) xlabel('时间,单位s') plot((1:n),(p_R_sample(1:n,1)-p_estimate(:,1))*6370000,'r') %红线-滤波后的误差 subplot(3,1,2) plot((1:n),(p_R_sample(1:n,2)-p_estimate(:,2))*6370000,'r') %红线-滤波后的误差 ylabel('位置误差,单位m') subplot(3,1,3) plot((1:n),p_R_sample(1:n,3)-p_estimate(:,3),'r') %红线-滤波后的误差 xlabel('滤波后的位置误差') %速度误差 figure subplot(3,1,1) plot((1:n),v_R_sample(1:n,1)-v_estimate(:,1),'r') % 红线-滤波后的误差 xlabel('时间,单位s') subplot(3,1,2) plot((1:n),v_R_sample(1:n,2)-v_estimate(:,2),'r') %红线-滤波后的误差 ylabel('速度误差,单位m/s') subplot(3,1,3) plot((1:n),v_R_sample(1:n,3)-v_estimate(:,3),'r') % 红线-滤波后的误差 xlabel('滤波后的速度误差') %GPS/INS无反馈位置组合 卡尔曼滤波器 %%%%%%%%%%%%%%%%%% %edit by horsejun %%%%%%%%%%%%%%%%%% %每秒更新一次速度位置误差 %连续状态系统方程 %dx = F*x + G*w %z = H*x + v %离散状态系统方程 %x(k+1) = A*x(k) + B*w(k) %z(k+1) = C*x(k+1) + v(k+1) function = kalman_GPS_INS_position_sp_NFb (Dp, v, p, quat, Fn, Q, R, Tg, Ta, tao) %输入 %Dp 量测位置误差, 作为滤波器输入, %Dv 量测速度误差, 作为滤波器输入, %p ins输出位置,作为滤波器系统参数 %v ins输出速度,作为滤波器系统参数 %fn ins输出导航系下比力,作为滤波器参数 %quat ins输出四元数,作为滤波器参数 %Q 系统噪声方差 %R 测量噪声方差 %Ta 加表误差漂移相关时间 %Tg 陀螺仪误差漂移相关时间 %tao 迭代步长 %%%%%%%输入向量均为行向量%%%%%%%%%%%%% %输出 %E_attitude 姿态预测值 %E-velocity 速度预测值 %E-position 姿态预测值 %PP 误差协方差阵 %各参数初始化 Re = 6378245; %地球长半径 e = 1/298.257; %地球扁率 wie = 7.292e-5; %地球自转角速度 % 东北天速度 Ve0 = v(:,1); Vn0 = v(:,2); Vu0 = v(:,3); % 导航位置 L0 = p(:,1); h0 = p(:,3); %卡尔曼滤波参数初始化 PP(1:18,1:18) = diag( .^2); %初始误差协方差阵 %3个姿态误差,3个位置误差,3个速度误差,3个陀螺马氏过程,3个陀螺白噪声,3个加速度计马氏过程 %180/pi=57.3 PP0 = PP; X = zeros(18,1); %初始状态 E_attitude = zeros(1,3); E_position = zeros(1,3); E_velocity = zeros(1,3); n = size(Dp,1); for i=1:n-1 %开始循环 %参数赋值 Ve = Ve0(i); Vn = Vn0(i); Vu = Vu0(i); L = L0(i); h = h0(i); fe = Fn(i,1); fn = Fn(i,2); fu = Fn(i,3); Rm = Re*(1-2*e+3*e*sin(L)^2); Rn = Re*(1-e*sin(L)^2); %由四元数计算姿态阵 q = quat(i,:); Cnb = ; %连续系统状态转换阵 F 的时间更新 F = zeros(18,18); F(1,2) = wie*sin(L)+Ve*tan(L)/(Rn+h); F(1,3) = -(wie*cos(L)+Ve/(Rn+h)); F(1,5) = -1/(Rm+h); % F(1,9) = Vn/(Rm+h)^2; F(2,1) = -(wie*sin(L)+Ve*tan(L)/(Rn+h)); F(2,3) = -Vn/(Rm+h); F(2,4) = 1/(Rn+h); F(2,7) = -wie*sin(L); % F(2,9) = -Ve/(Rn+h)^2; F(3,1) = wie*cos(L)+Ve/(Rn+h); F(3,2) = Vn/(Rm+h); F(3,4) = tan(L)/(Rn+h); F(3,7) = wie*cos(L)+Ve*(sec(L)^2)/(Rn+h); % F(3,9) = -Ve*tan(L)/(Rn+h)^2; F(4,2) = -fu; F(4,3) = fn; F(4,4) = Vn*tan(L)/(Rm+h)-Vu/(Rm+h); F(4,5) = 2*wie*sin(L)+Ve*tan(L)/(Rn+h); F(4,6) = -(2*wie*cos(L)+Ve/(Rn+h)); F(4,7) = 2*wie*cos(L)*Vn+Ve*Vn*sec(L)^2/(Rn+h)+2*wie*sin(L)*Vu; % F(4,9) = (Ve*Vu-Ve*Vn*tan(L))/(Rn+h)^2; F(5,1) = fu; F(5,3) = -fe; F(5,4) = -2*(wie*sin(L)+Ve*tan(L)/(Rn+h)); F(5,5) = -Vu/(Rm+h); F(5,6) = -Vn/(Rm+h); F(5,7) = -(2*wie*cos(L)+Ve*(sec(L)^2)/(Rn+h))*Ve; % F(5,9) = (Ve^2*tan(L)+Vn*Vu)/(Rn+h)^2; F(6,1) = -fn; F(6,2) = fe; F(6,4) = 2*(wie*cos(L)+Ve/(Rn+h)); F(6,5) = 2*Vn/(Rm+h); F(6,7) = -2*Ve*wie*sin(L); % F(6,9) = -(Vn^2+Ve^2)/(Rn+h)^2; F(7,5) = 1/(Rm+h); % F(7,9) = -Vn/(Rm+h)^2; F(8,4) = 1/((Rn+h)*cos(L)); F(8,7) = Ve*tan(L)/((Rn+h)*cos(L)); % F(8,9) = -Ve/(cos(L)*(Rn+h)^2); F(9,6) = 1; F(1:3,10:12) = Cnb; F(1:3,13:15) = Cnb; F(4:6,16:18) = Cnb; F(13,13) = -1/Tg(1); F(14,14) = -1/Tg(2); F(15,15) = -1/Tg(3); F(16,16) = -1/Ta(1); F(17,17) = -1/Ta(2); F(18,18) = -1/Ta(3); %连续系统输入矩阵更新 G= zeros(18,9); G(1:3,1:3) = Cnb; G(13:15,4:6) = eye(3,3); G(16:18,7:9) = eye(3,3); %连续系统量测阵更新 H= zeros(3,18); %仅将位置误差作为观测量 H(1,7) = 1; H(2,8) = 1; H(3,9) = 1; %连续系统离散化 A = eye(18,18)+F*tao; B = (eye(18,18)+tao*F/2)*G*tao; %卡尔曼滤波 P = A*(PP0)*A'+B*Q*B'; %P为先验 PP0为后验 【卡尔曼滤波(2)】 K = P*H'*inv(H*P*H'+R); %【卡尔曼滤波(3)】 PP0= (eye(18,18)-K*H)*P; % 【卡尔曼滤波(4)】 PP0 = (PP0+PP0')/2; % 【卡尔曼滤波(4)】的归一化 PP(i,:)= diag(PP0); %对对角阵在进行diag运算,得到的是对角线元素按列排列 z = Dp(i+1,:)'; %观测向量 XX = A*X+K*(z-H*A*X); %此处的A*X包含了一步预测状态 【卡尔曼滤波(1)和(5)】 X = XX; E_attitude(i+1,:) = XX(1:3)'; E_velocity(i+1,:) = XX(4:6)'; E_position(i+1,:) = XX(7:9)'; end %循环结束
1 次阅读|0 个评论
【日本游记】感想:精神文明是与物质生活水平成正相关的
热度 19 cutefay 2011-10-15 17:17
近期去了日本,又去了延安、西安等城市,通过一些所见所闻,感慨道:精神文明是与物质生活水平成正相关的。 在去日本之前,我对日本的了解是通过以前看的上百部日本动画片,动画片中把日本人描述得很好。当时心里想,日本人真的像动画片中那样好吗? 后来去了日本,才发现,日本人的友好和文明程度比我在动画片中看到的还要好。 首先,日本各处,无论是大街还是小巷,无论是大饭店还是小餐馆,无论是哪里的厕所,都是干干净净。尤其是厕所的干净程度,是我在国内很难见到那么干净的。 其次,日本人真的很友好。我独自一个人在日本旅行,问路、吃饭、购物、买车票等,都要跟日本人打交道,他们对我这个外国人非常友好,很热心帮助我。除了我在之前博文里提到的那个清晨遛狗的日本人帮我问路并帮我搬行李的例子之外,还有很多让我觉得很温馨的例子。例如,我在宇治市的一座小山上寻找龙宫总神社的时候,因为地形很复杂,只看地图看不出如何走,周围又没有任何标示,我问了一个在附近开车自驾游的日本人如何走的时候,他立刻拿出手机,通过GPS导航定位,告诉我应该如何走。后来,到了那附近,由于岔路太多,我问了一个老奶奶如何走,她给我指了方向,我顺着她的方向走到了下一个岔路口的地方,正要再继续向前走,只听见这位老奶奶在后面使劲喊我,她用手指了指我应该向左转了。这位老奶奶为了不让我走错路,就一直在后面看着我走,直到我走到下一个岔路的时候看我走得对不对,如果不对再提醒我。等我从那神社下来的时候,我没有按照原路返回,因为我的直觉告诉我这附近应该有一条近路。于是我就拿着地图又问了附近一个抱着小孩的女士,她告诉我应该如何走,我顺着她说的走了好一会儿,这个时候,她抱着小孩气喘吁吁地从后面追过来了,用不标准的英语跟我说,这个地方不应该向右转,应该向左转。看到她为了我这样跑过来,我真的很感动。我在去奈良的路上,乘坐了一趟慢车(当时我不知道还有快车)。因为我在车上坐的时间很长,也不下车,我旁边有一对老夫妇就用不流利的英语问我去那里,我说去奈良,他们就告诉我说我不应该坐这趟车,我应该在这一站下车,换乘快车。因为他们的好心建议,我改乘了快车,以更快的速度去了奈良。 再次,日本很安全。我在日本京都住的青年旅舍,经常是大门敞开着,前台没有人,也不会丢东西。有点“夜不闭户”的意味。 后来,我去了延安。我原来以为延安人民是非常淳朴善良的。到了那里之后,却发现另一番景象: 首先,我们所去的所有饭店,到处都很脏,尤其是洗手间,太脏了,难以形容。饭店服务员的态度都比较差,街边小店卖东西的人态度也不好。并且去之前导游还再三提醒我们:千万不要买路边小摊上小商贩们的枣,他们给的全是六两称,并且如果你尝了他们的枣儿但不买的话,他们可能会很多人把你围起来不让你走。并且,路边摊的人还经常会卖给你一些劣质的商品。而到了西安,发现服务员的态度、洗手间的卫生情况、街头小商贩的情况都比延安好多了。 于是,自己思考了一下:精神文明是与物质生活水平成正相关的。当一个人温饱问题都难以解决,其他事情肯定关心得很少,例如卫生情况等。并且,人在贫穷的时候,更多想的是如何赚钱,哪怕是不正当的手段。而当人的生活条件好一些的时候,才会更加关心卫生和生活环境等。如果人更有钱了,可能就会想着去奉献社会。 • 【日 本游记】在日本体验交通情况 • 【日本游记】日本奈良可爱的鹿 • 【日本游记】感想:精神文明是与物质生活水平成正相关的 • 【日本游记】京都的防灾减灾体验2---地震体验与灾害报警方式 • 【日本游记】京都的防灾减灾体验 1 • 【日本游记】日本的青年旅舍 • 【日本游记】前世五百次的回眸——2、青年旅舍的家庭谈话 • 【日本游记】前世五百次的回眸——1、热情健谈的台湾人 • 【日本游记】日本和韩国人也对长发感兴趣 • 【日本游记】起初的无助 • 【日本游记】序
个人分类: 菲亦所思|5578 次阅读|43 个评论
欧洲暑期旅行记录(17):自驾游第二天——参观舍农索水上城堡
xiegming 2011-8-21 17:12
8月19日 昨天本来还计划去圣马洛(Saint-Malo)——海盗城,但由于时间不够了,没有去。 第一件事是加油,还是昨天那家,还是那个老头,虽然互相听不懂,但是笔画的意识加满油还是没有问题,一共加了95号汽油,42欧。 今天本来计划去卢瓦河谷城堡群中的四个,结果第一个城堡的经纬度查的精度不够,给我们导到了一个莫名其妙地方,根本没有景点。为了保险起见,我又选择了最富浪漫情调的舍农索水上城堡(Chateau de Chenonceau)作为新的目的地。 这次GPS导航没有差错,精确地导到了目的地。看来这里也是法国人的最爱,停车场停了很多车,和圣米歇尔山有一拼。停车场不收费,就在城堡的护城河外边。护城河边是一块草地,上面设置了若干桌椅,很多老外都是全家老少在此休息野餐。河里水并不多,也不干净,但有不少鸭子,可以给它们喂食。城堡的门票不便宜,要10.5欧。看上去城堡不大,我又开了一上午车,所以选择休息,让她们娘仨进去转悠。 我在车里休息了一阵子,好了些。于是也到入口处看看景点介绍,里面有一本关于卢瓦河谷城堡的中文介绍,一座一座的各有特色。舍农索水上城堡目前属于一个家族,是私人财产。里面的图片非常美丽,有一个用绿色植物作为墙构成的大迷宫,精美的花园,建在河上的城堡,确实非常吸引人,我有点后悔当时没有进去。 后来她们出来了,说里面人非常多。美美到处乱跑,一次去摘人家的树叶,结果被上面的白蜘蛛咬了一下,起了一个小包,很痛。回到车里,妈妈开始就此事教育孩子们,说也不知道这个蜘蛛毒性有多大,到时候毒性发作,你身体烂掉就死了,看你还瞎动不。结果美美没啥感觉,自己还跟着重复,告诉姐姐说到时候自己身体烂掉就死了。亲亲一听这些就开始哭了,她说她要妹妹,不要妹妹死。我看美美不太明白死的意思,我就说到时候你死了就把你烧掉,结果这下她不干了,也要哭,说不要把她烧掉。 我们今天预订的旅馆在昂热(Angers),比昨天那家好多了,还给美美准备了一个婴儿床,美美是头一次睡这种有较高护栏的小床。不论房间还是过道,都放了一盘水果糖,还有免费速溶咖啡。我拿了些糖保存一起来,为以后对付孩子。 这几天都是这样,主要在开车赶路,景点待的时间不长。
个人分类: 旅游|3529 次阅读|0 个评论
欧洲暑期旅行记录(7):转战布鲁塞尔
xiegming 2011-8-9 16:24
8月8日 今天是不顺的一天,过程中接连遇到困难。一开始从乌得勒支到鹿特丹很顺,我还拿出手机上网,传了几张照片到人人网。然后就出事情了,由鹿特丹去布鲁塞尔的火车,我们上错了车厢,火车开到Dordrecht就不走了。我们一看不对劲,下来一看,刚好从我们这节车厢都停着,前面的早走啦。只好等下一趟去布鲁塞尔的火车,还好一个小时就一趟,我们还带了点吃的,下一趟我们没有错过。 从布鲁塞尔中央火车站出来找旅馆出了大麻烦。我们一从火车站出来就懵了,发现见到的场景和事先查好的地图完全不一样,根本看不出哪儿挨哪儿。此时明智的决策应该是返回火车站,找正确的出口,但是我犯了盲目自信的毛病,决定往前走闯闯,结果发现越走越不对,身上的背包重,孩子又喊累,又下了点雨,只好用事先买好的手机上的GPS导航功能,可是这个东西是为汽车设计的,所以和人走路不一样,我们有时按照指示走,有时按照地图超近道,结果就这样被带着转啊转,都到了大广场了还是没有找到旅馆所在。 路上不敢随便问人,一次是问了一个看上去像当地人的,一次是在大广场问警察,都说是要拐几个弯的,听得稀里糊涂,只能朝着大方向前进,后来孩子们走不动了,刚好路边有一个快餐店,我让她们先坐进去休息,刚好有免费的WIFI, 赶紧打开google地图,确定我们的位置,然后发现宾馆距离我们还有1000多米,就是沿着我们所在的街再一直往前走到头就是了。结果走到半路又突然下雨,赶紧找地方避雨,于是我前面一个背包,后面一个背包,脖子上是美美,手里拿着伞,真是狼狈。快6点才住进宾馆,而我们是15:40下的火车,折腾了两个多小时。下面去巴黎的时候一定事先做好功课,不能这么盲目自信了。 然后发现剃须刀没有了,应该是拉在乌得勒支了。走的时候仔细检查了啊,怎么就没了呢? 唉,我们真正的欧洲探险之旅开始了,到了巴黎更乱,我们该怎么办啊。 再补充几个 孩子们上厕所总是突发事件,在Dordrecht等下一班火车时,美美就突然说憋不住啦,我只好带她去厕所,结果车站仅有的两个收费厕所都等了好几个人,而且似乎也没有让我们的意思,我只好迅速带她出站,找了一片荒芜人烟的地方让她解决了。 快接近布鲁塞尔中央火车站的时候,我们在火车上就看到了铁路下边的红灯区,也没啥特别的,就像商店的橱窗一样,不过是真人罢了。 从大广场走出来不远的一条街上,我们正在走,突然从前面一个街口冲出几个小伙子,然后几秒钟的功夫,就是一辆警车开出来在后面追,路很窄,又不少行人,吓得我们赶快往路边躲闪。 Le Dome旅馆号称4星级,怎么只能在大堂上网啊,房间里面不提供网络。空间不小,有个小电视,象是大陆八十年代的产品,17寸,非常破,估计在北京丢在路边都没有人拣。 当然乌得勒支的2星级旅馆也不行,电视遥控器是坏的,我拿到前台去问,那个服务员说他也不知道怎么回事,回头会向老板汇报,结果等我们都走了,也没有下文。房间可以上网,但是速度特慢,手机根本不行。不过有一点特别,虽然空调没有,但是房间的暖气可以自己开,还可以调节温度,这样我们晾衣服方便啦。
2981 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-1 17:29

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部