| by YoungTimes | No comments

[定位原理揭秘第四期]精准导航领域的定位技术

2013年9月,国家导航与位置服务科技专项总体专家组发布了《室内外高精度定位导航白皮书》,其中介绍到,2012年12月,我国宣布北斗导航系统正式提供区域定位导航服务,定位精度为10米,成为第三个拥有自主卫星导航系统的国家。在此基础上,通过提供室内导航信号和室外卫星导航增强信号,具备室外广域实时定位精度优于1米、室内定位精度优于3米的定位能力。从而基本满足了人们对于全时空高精度定位导航服务的需求,一时间,高精度导航定位似乎已经走进了我们的生活。

1.  白话介绍差分卫星定位

相信大家在使用GPS的时候,经常遇到偏差几十米甚至几百米的情形。我们在之前的文章中,介绍过这个误差不[……]

继续阅读

Read More
| by YoungTimes | No comments

[定位原理揭秘第三期]室内定位技术原理揭秘

地图软件已经成为我们日常出行必不可少的工具之一,在导航和搜索上带来了很多便捷的帮助。而定位技术在地图软件里的应用可谓无法替代,尤其是在小范围的室内定位环境下,如何帮助用户高精度搜索导航,是百度地图定位技术的研究重点。

我们一提到定位,大家印象中最熟悉的技术可能就是GPS定位。其实更为准确的说法是GNSS(Global Navigation Satellite System)定位,中文含义就是全球卫星定位系统,而 GPS只是GNSS中的一种实现方法,该系统是由美国部署的。另外,还有其他类型的定位系统,例如,俄罗斯的格洛纳斯(GLONASS),欧洲的伽利略和中国的北斗。大家可能会有疑问,既然[……]

继续阅读

Read More
| by YoungTimes | No comments

[定位原理揭秘第二期] GPS定位实现原理解析

什么是GPS定位?

我们手机上的GPS定位,是卫星定位的一种约定俗成的说法,卫星定位的全称来说应该叫做GNSS(Global Navigation Satellite System)定位。GPS只是GNSS的一种,是美国部署的一套全球卫星系统。这套系统给个简单的描述,就是:

1.天上有24颗卫星在不断的绕地球运动;

2.每颗卫星不断发送“我是谁,我在哪里”的信号;

3.接收机(比如手机GPS芯片)收到了多颗卫星发出的这样的信号,根据信号传播时间推算出离卫星的距离,进而解出了接收机自己的位置,顺便可以得到当前准确时间。

关于GPS基本原理问答

如果对这[……]

继续阅读

Read More
| by YoungTimes | No comments

[定位原理揭秘第一期]我们经常用到的手机定位的原理到底是什么?

1.手机定位的价值

目前智能手机的使用已经越来越普遍,手机定位也是手机上的一个核心基础功能。举一个常见的应用如叫车,司机需要知道你在哪里,同时打车软件也需要基于司机和乘客的位置规划一条路线,让司机更高效的行驶到用户这里。这就是典型的定位服务的应用。当然,除去这种应用,用户位置本身的展示,也是地图产品中不可缺少的。

那么问题就来了,作为app的用户,你可能会好奇这个app是如何知道你的位置;而作为app的开发者,是如何在程序中得到设备当前的准确位置的呢?

这个问题说来话长,我们还是先从定位原理上来解释吧!

2.可用于无线定位的信号

很显然,一个功能正常的手机,总[……]

继续阅读

Read More
| by YoungTimes | No comments

Viterbi算法及其在隐马尔可夫模型(HMM)中的应用

1.Viterbi算法定义

1.1 算法输入

观察值域空间为:$O=\{O_1, O_2, …, O_N\}$

状态空间为:$S=\{S_1, S_2, …, S_K\}$

观察值序列为:$Y=\{Y_1, Y_2, …, Y_T\}$

$A_{K \times K}$为从状态转移矩阵, 其中$A_{ij}$是从状态$S_i$转移到状态$S_j$的概率;

$B_{K \times N}$为Emission Matrix,其中$B_{ij}$是从状态$S_i$观测到$O_j$的概率。

初始概率数组:$\pi=\{\pi_0, \pi_1, .[……]

继续阅读

Read More
| by YoungTimes | No comments

从零开始学习自动驾驶系统(五)-扩展卡尔曼滤波Extend Kalman Filter

1.泰勒级数展开

如果函数$f(x)$在点$x=x_0$具有任意阶导数,则

$$\begin{aligned}f(x)=&\sum_{n=0}^{\infty} \frac{f^{(n)}(x_0)}{n!} (x – x_0)^n \\=& f(x_0) + f(x_0)^{\prime}(x-x_0) + \frac{f^{\prime \prime}(x_0)}{2!}(x-x_0)^2  + … +&nbs[……]

继续阅读

Read More
| by YoungTimes | No comments

如何在Ubuntu 18.04中安装Sublime Text 3

Sublime Text是Web和软件开发中最常使用的文本和源代码编辑器。它不仅运行速度快,而且有很多强大的功能。在本教程中,我们将展示如何在Ubuntu 18.04系统中安装Sublime Text 3,这些步骤适用于所有基于Debian的操作系统。

Installing Sublime Text on Ubuntu

步骤一:更新APT Package List,安装相关依赖;

步骤二:导入Repository的GPG key; 

添加Sublime Text的APT repository;

步骤三: 更新apt源,安装Sublime Text 3[……]

继续阅读

Read More
| by YoungTimes | No comments

python的lambda匿名函数的变量绑定问题

lambda的匿名函数定义简单函数非常方便。但是在实际应用中因为变量的绑定原因,总是出现一系列莫名奇妙的问题。考虑下面的代码:

现在a(10)和b(10)的结果应该是多少呢?如果你的答案也是20和30,说明对lambda的理解同样不够深刻。

这里的问题在于x是一个自由变量,在运行时候才进行绑定,而不是在定义时候绑定。如果希望匿名函数可以在定义时候绑定变量,并且保持值不变,可以将改之作为默认参数实现。

[……]

继续阅读

Read More
| by YoungTimes | No comments

python中如何定义带有默认参数的函数

直观的,带有默认参数的python函数非常简单:

1) 在定义中为参数赋值;

2) 带默认值的参数出现在函数的最后;

3) 如果默认值是可变容器(如列表、集合、字典等);

如下代码所示:

注意:

1、默认参数的绑定发生在函数定义的时候。

2、赋给默认参数的值应该为不可变对象。如None、True、False、数字、或者字符串常量等;

可以看到默认值在函数体之外被修改,导致之后的函数调用对默认值产生持续的影响。

所以函数的参数的默认值的应该为不可变对象。

3、默认参数的None值的处理

上述的代码的问题在于,尽管N[……]

继续阅读

Read More
| by YoungTimes | No comments

python实现接受任意数量参数的函数

问题:

如何用python编写一个可以接受任意数量参数的函数。

解决方案:

实现Python接受任意个数参数的函数,在形式上比较简单,就是在参数前面加上一个星号(*)即可。

其中nuts是一个元组,它包含了所有传递过来的位置参数

如果要接受任意数量的关键字参数,可以使用**开头的参数。

所有以*号开头的参数,只能作为最后一个位置参数出现,以**开头的参数只能作为最后一个参数出现。以*号打头的参数之后的参数都会被作为关键字参数处理。

Keyword-only参数是一种提高代码可读性的好方法。如下例所示:

如果不了解recv的函数原型,[……]

继续阅读

Read More