-
OpenCV实现SfM:双目三维重建
使用OpenCV3.0进行双目三维重建。代码是用VS2013写的,OpenCV版本为3.0且包含扩展部分,如果不使用SIFT特征,可以修改源代码,然后使用官方未包含扩展部分的库。软件运行后会将三维重建的结果写入Viewer目录下的structure.yml文件中,在Viewer目录下有一个SfMViewer程序,直接运行即可读取yml文件并显示三维结构。
- 2020-12-04下载
- 积分:1
-
PLC基础及应用第2版廖常初主编+参考答案
PLC基础及应用第2版廖常初主编+参考答案.rar
- 2020-07-04下载
- 积分:1
-
小波神经网络的时间序列预测
利用小波神经网络对时间序列进行分析,并对交通流量进行预测
- 2020-12-07下载
- 积分:1
-
如何攻破软件
如何攻破软件,英文名how to break software。本文为精简版,浓缩就是精华啊。报错信恳仅仅是迫使程序停止来显示一条报错信息、,然后接着执行卜一条输入或者直到定时器超时而凵。但是,也有其他一些报错信息则是来自于被程序抛岀和异常处理器被执行引发的异常。异常处理器(或中央错误处理线程)因其指针突然改变而数据状态不产生相应变化,通常会存在问题。异常处理器执行的睽间,各种各样的数据问题接踵而至:文件未关闭、内存未释放、数据未初始化。当控制重新回到主线程,很难判断错误处理器是在什么时刻被调用,又会有怎样的遗留问题在等待粗心大意的开发人员:因为文件没有关闭导致打开文件失败、在没有初始化前就开始使用数据。如果我们能确侏在所有的报错信息都出现过之后系统依然正常工作,那么也算是为用户省去」不少麻烦(吏不用说我们的维护工程师∫)图1展小∫我的学生在微软Word20中发现的一个有趣的bug,一条错误提小不知为何连续出现了两次。这个bug是在通过单一输入攻击错误处理线程的过程中发现的确保软件指定默认值。开发人员通常不记得在用户输入越界或给参数改置不合理的值时指定默认的值。有时候强制改立默认值意味着什么也不做一一然而正因为恕不到,这一举措甚至难倒」优秀的开发人员。例如,在word2000中,如下对话框中有一个选择框,当不对其做任何修改时再次打开对话框,该控件将消失。对比左右图片中的对话框。你发现什么控件消失了吗?Index and I atlesaE Ind and T nhl图hdat Tae or Crems I ae ofEr|Bt图pr PC aba业pHanns JEening 2REMTE 2Stade 3.HAidar 2HeadsP Eghk dg pae numbersT-n k有的时候指定默认值需要先改变值的当前设定,然后将其设定为个不合理的值。这种连续的转换保让了再转换成其他可用的值前是经过设置默认值尝试输入变量的所有可用的字符集有的输入问题很简单,特别是当你使用了类似$,%,#,引号等等字符付,这些字符在许多编程语言中有特姝意义并且作为输入被读入时通常需要特姝处理。如果廾发人员未考虑这种情况,则这些输入可能导致程序的失败。通过改变输入内容的多少引发输出区域的改变聚焦丁输出木身是一神发现bug颇有成效但是极少使用的方法。其思想是:先假定一种表现为bug的输出或者行为,然后寻找能够导致这种现场产生的输入。以上所述的一个简单的攻击例子就是通过改变输入值和输入字符串的长度来引发输出区域大小的重新计算。个很好的概念性例子是将时钟的时间设置为9:59,然后等待它转到10:00。一开始显示区域是4个字符长度而后来是5。反过来,我们设定时间为12:59(5个字符),然后等待其转变为1:00(4个字符)。开发人员通常只会对初始化为空白的情况进行处理而不曾考虑到显小区域己有数据的情况下如何史新该区域以显小不同长度的数据。举个例子, PowerPoint中的“艺术字”功能中有个有趣的bug。假定我们输入下图中的个长的字符串可以发现因为字符串太长,并不是整个字符串都能显小出来。但这不是问题的关键。点击确认按钮时触发两个事件。首先,程序计算岀需要的输岀区域大小,然后将输入的文字填充进去。现在,我们编辑该字符串,将它改为单个字符。可以发现尽管现在只有单个字符,字体大小也没有改变,但显小区域大小却没有发生改变。进一步看。如果冉次编辑该字符串为多行的字符串,输出结果更有意思、。E Microsoft PowerPoint-[Presentotion1I回E= Fdit iAv Tns+ Form=t工 hls li smw inimw Henl可x回的品“口27%-2⊥□ ATTENTONMicrosoft InterJob interviewsCareerGo to room 210ae for all god mene come to the aid回 Eile Edit iaw Insert Forst Tools Slide show MA. in+y出1型x」10ATTENTIONob interviewsheld in Career seGo to room 20Keuper BldgC Microsoft Powerpoint [PresentationalUJEil- Edit yiw Insert For mat Inns Slide Show Mlinrnw Hen回x当鹛5x:+兽当2791 ATTENT工ONMicrosoft internheld in Career seGo to roomKeuper Bld一分也Aa的≡我悲这部分凵经介绍得比较清楚了,我们将进入卜一部分确保对显示区域的边界的检査。这是基于输出的另一种攻击思路,与之前的|分类似。然而,不同于之前着力」导致显区域内部出错,这次我们将精力集中在显示区域的外部。并且显示区域将不再重新计算显示边芥而仅仅是考虑边界溢出。再以 Power Poin为例,我们可以先画一个文木框,然后输入一个带上标的字符串。放大该字符串的宇体使上标的上半部分被截断。这一问题将连同之后的相关问题一起说明。引发屏幕刷新问题。这是使用 windows图形用户界面的用户会遇到的主要问题。对开发人员来说,史是个大问题:过度的刷新将导致程序变慢,而不刷新又会导致大大小小的问题,小至要求用户强制刷新,大到导致用户的操作失败通常通过在屏幕上添加、删除和移动元素来触发血刷新。这将导致背景車新绘制,如果贞面不能正确、及时地作出相应,那么这就是通常意义上的bug。其中,尝试变化所移动的元素的距离是一种较好的方式,可以移动一点点,接着移动一大截,移动一两次,接着移动很多次接着说回上面例子中的带上标的字符串,试着每次用鼠标拖动它移动一些距离,就会发现令人讨厌的问题,如下图所示。在 Office2000中→4引丝常出现的另一个与L口 ATTENIIONMcr。 tk Intern屏幕刷新相关的问题lob interview arheld in Cae se是文本的异常消失。Go to noon 21025Keuper Bdg这一讨厌的问题在word的页面边界附近4出现。Click to add notes输入值组合攻击口的rcm如南哪、、口四面、,凸,画■翻第二类输入/输出Side S 0f 6Bur Desnbug主要针对多个共同作用或相互影响的输入。例如,一个通过两个参数调用的API,其中一个参数的取值建立在另一个参数取值的基础上。通常,bug正是出在值组合上,因为代码的逻辑关系复张。找出不能共存的输入值的组合。那么哪些值的组合是有问题的?这个问题目前还处于积极研究中,但是我们已经找到了一个特别有效地方法,那就是先确定期望获得的输岀,然后试着去找到对应的输入值的组合。尝试产生无效的输出。这是一种适用于测试人员对问题域十分清楚的有效攻击方法。例如,当你在测试一个计算器并且清楚部分功能点的结果有限制时,试图找到超岀范围的结果所对应的输入值组合是值得的。但是,如果你不熟悉数学,那么这种努力很可能是浪费时间一一你甚至可能将一个不正确的结果当成正确的。有时候 windows木身会给出提示,告诉你哪些输入是相互关联的。此时,测试人员可以去测试这些值的范围,并且尝试触犯既定的关系。输入序列攻击软件中的输入就像一种止式的语言。单一的输入相当」组成语言的字母,输入的字符串类似构成语言的句子。其中一些句」应该通过控件和输入区域的启用与禁用被过滤。通过尽可能多地输入字符串、改变输入的顺序来测试这种问题选择导致无效输出的输入序列。和上文描述这是一种找到问题输入组合的好方法一样,这同样是找出有问题的输入序列的好方法。例如,当我们发现∫Oice2000中的一个导致文本消失的问题后,对 Power point幻灯片中标题文本框进行攻击。如下的一组屏幕截图冉现∫一个特定的输入序列是如何导致文本消失的。正回国wFE和 Eai swa. wart Frat m ao sty oran阳 mrt ma Dect ilt sow如mhDdF)…gB5:h1感 ATTLATI0H1b粪 ITtNTION1直 ITHNTIONMicosofT I nterMicrosoft Imt把MIcroset IotelCxn caosATHENTIONGo tD roMm 2门rNGatD fosT丑Micros af lrtenigveeKHr段hMirswios bereitKere EdCm取曰BD日要!比 b and ncosr宝tams7m· R6 anime)s□42正△=a面口日压=日日2▲·=量有趣的是仅仅将文本框旋转180度并不能发现这个bug。必须按照这样的操作顺序:旋转180度后,再旋转10度(或者更多)。逆向执行以上操作并不能修正这一问题,每当点山标题外部区域,该标题内容就会消失。改变输入的顺序之所以善于发现bug是因为很多操作自身成功执行的同时会遗留很多问题,它们将导致之后的操作失败。对输入序列进行彻底的检査会暴露出很多这样的问题。然而有时侯,下面这种攻击表明:为了发现bug,根本不需要使用多种多样的输入序列多次重复同样的输入序列。这种方式会对资源造成大规模占用,并且对存储数据空间造成压力,当然也包括发现其他负面的遗留问题。遗憾的是,大多数应用程序并不清楚自身空间和时间的限制,而许多开发人员倾向于假定资源总是足够可用的。在Word的公式编辑器中可以找到这方面的一个例子,程序本身似乎并不清楚它只能处理10层嵌套括号的计算数据攻击数据是软件的命脉;如果你设法破坏了它,那么程序将不得不使用被破坏的数据,这之后得到的就不是合理的结果。所以理解数据是如何、在何处建立是必要的从本质上讲,数据的存储是通过读取输入,然后将其存储在內部或者存储一些內部计算的结果来实现的。因此,测试正是通过提供输入和执行计算来实现数据在应用程序中的传递数据攻击遵循以下简单原则。数据攻击变量值攻击1存储不正确的数据类型2使数据值超过允许的范围数据单元大小攻击3.溢出输入缓冲区4存储过多的值5存储太少的值数据访问攻击6找出同一数据的不同修改方式变量值攻击这一类的攻击需憂对内韶存储的数据对象的数据类型和合法值进行检查。如果有对源码的权限则这些信息可以轻易得到,但是,通过小小的探索性测试和对错误信息的关注也可以确定人致的类型信息。改变输入的数据类型来找出不匹配的类型。在需要整数的区域输入字符(和类似的攻击)已经被证明十分有效,但随着现代编程语言对类型检查和类型转换的处理变得容易,我们发现这样的攻击相对之前已经不再那么有效使数据值超过允许的范围。被存储的变量数据和输入的变量数据一样,这样的攻击方式同样适用数据单元大小攻击第二类数据攻击旨在蝕发数据结构的溢出和下溢。换句话说。攻击试图打破预先设定的数据对象的大小限制。首先要说的就是典型的缓冲区溢出。溢出输入缓冲区。此处通过输入长字符串导致输入缓冲区溢出。这是黑客们偏好的攻击方式,因为有时候应用程序在崩溃之后会继续执行进程。若一名黑客将一段可执行代码附在一个长字符串中输入,程序很可能执行这段代码在Word2000的一个缓冲区溢出问题就是这样一个可被利用的bg,此bug被发现在査找/替换玏能中,如下所示。有趣的是,“查找”这一字段被合理地加以限制而“替換”没有正出面同一数据结构存储过多的值。复杂地数据结构诸如数组、矩阵和列表在测试中不仅仅要考虑存储8在其中的数值,还要考虑存储值的数目。同一数据结构存储过少的值。当数据结4正A日国重构允许增加和删除信息时,通常在做了n-1次增加的同时穿插着或在其之后做n次删除操作会导致攻击成功。数据访问攻击我的朋友 Alan Jorgensen喜欢用“右手不明左手所为”这句话来形容这一类bug。道理很简单,但开发人员却常倒在这一类攻击下:在很多程序中通常任何任务都能通过多种途径完成。对测试人员来说,这意味着同一个函数可以由多个入口来调用,这些入口都必须确保该函数的初始条件得到满足。个极好的例子是我的学生在 PowerPoint中发现的表格数据大小相关的崩溃性bug。创建表格时最大尺寸被限定为25×25。然而,可以创建一个25×25的表格,然后为其添加行和列——导致应用程序崩溃。这就是说,程序一方面不允许26×26的表格存在而另一方面却并不清楚这个规则的存在。运算攻击运算攻击操作数攻击使用非法操作数进行运算找出非法操作数组合结果攻士使运算结果过大使运算结果过小功能相互作用攻击找出共亨数据不佳的功能操作数攻击这类攻击需要知道在一个或史多内部运算中操作数的数据类型和可用的值。如果有源码权限则这些信息可以轻易获得。否则,测试人员必须尽最大努力去弄清楚正在进行的运算只体是什么、使用的是什么数据类型。触发由非法操作数引起的运算。有时侯输入或存储的数据处于合法的范围之中,但是在某些运算类型中却是非法的。被0除就是一个很好的例子。0是一个合法的整数,但作为除法运算的除数却是非法的。找出不能共存的操作数的组合。涉及到一个以上操作数的运算不仅受制于上面的攻击,同时存在操作数冲突的可能性。结果攻击第二类运算攻击旨在造成存储运算结果的数据对象的溢出和下溢试图造成运算结果过大而存储失败。就算是简单如y=x+1这样的运算在数值边界上也常出问题。如果x和y都是2比特的整数并且ⅹ的值为32768,则这一运算将失败,因为结果将会造成存储溢出。试图造成运算结果过小而存储失败和上文相同,不同的是使用y=x-1并且使x的值为-32767功能相互作用攻击文章中讨论的这最后一类攻击或许算是所有种类的鼻祖,可以用来区分测试菜鸟和专业人员:功能的相互作用。问题没有什么新意:不同的应用程序功能共享同一数据空间。两种功能的相工作用导致应用程序失败,不是因为对数据处理的设定不同,就是因为产生了不良副作用但是哪些功能共享数据并且能够在冲突情况下实现数据转化口前还是测试领域中一个开放的问题。日前我们正停留在不断地尝试阶段。下面这个例子足以说明情况这个例子给出了在Word2000中的同一页面上合并注和双列时出现的一个出人意料的结果。问题在于:Word从注释的引用点计算脚注的页面宽度。所以,若同一页面上存在两条脚注,一条被处于双列位置的内容所引用,另一条则被处于单列位置的内容所引用,单列脚注公将双列脚注挤到下一页面。同时被挤掉的还有引用点至页面底部间的文本。三萨三下面的屏幕截图形象地说明」问题。第二列的文木去哪里∫?连同脚如三签注一起处在n远aoh1M黑下一次你会任由文档像1=11 aata Ln1a回下111D这样显小吗?在找到解决方法(这意味着你得花时间去整理)前你将不得不忍受这一现状结论简单遍历—遍上面罗列的21种攻击策略叮以覆盖应用程序的大部分功能。事实上,施行次成功的攻击通常意味着尝试各种可能性,走过很多死胡同。但是仅仅因为部分这一类探索性方法发现不了bug并不意味着它们没有用。首先,这段吋间使用应用程序帮助测试人员熟悉程序的各种功能,从而产生新的攻击思路。其次,测试通过是好的消息!它们表明,品是可靠的:尤其当这组测试是上面所说的恶意攻击。如果代码可以承受这样的测试过程,它儿乎可以应对用户作出的任何操作。另外,永远不要低估了测试时怀揣一个具体目标的作用。我见过太多测试人员把时间浪费在亳无目的地输入或者随机地调用API试图导致软件出错。实行测试意味着制定明确的目标一一基丁会出错的点—一然后设计测试用例来实践该目标。这样,每个测试用例都有目的泩并且进度可以被随时控制。最后,记住,测试应该是有趣的。攻击这一比喻正是对测试的这一特性很好的诠释并且还为愉快的消遣时光添加∫些许作料。狩猎愉快
- 2020-12-09下载
- 积分:1
-
GM(1,1)模型代码
灰色理论的微分方程型模型称为GM模型,G表示grey(灰),M表示Model(模型).GM(1,N)表示1阶的,N个变量的微分方程型模型.而GM(1,1)则是1阶的, 1个变量的微分方程型模型。
- 2020-11-27下载
- 积分:1
-
Qt程序获取扫码枪数据
工业系统大多需要使用到扫描枪,因此系统与扫描枪的交互需要建立连接。测试程序采用的是motorola的扫描枪,其他没有测试过。但是,程序代码针对是的普通COM端口进行读取数据的,因此,相信其他类型的扫描枪同样适用。
- 2020-12-11下载
- 积分:1
-
VINS论文推倒及代码解析
VINS 的功能模块可包括五个部分:数据预处理、初始化、后端非线性优化、闭环检测及闭环优化。代码中主要开启了四个线程,分别是:前端图像跟踪、后端非线性优化(其中初始化和 IMU 预积分在这个线程中)、闭环检测、闭环优化。、总体框架Measurement PreprocessingInitializationCamera(30hz)Feature Detectionnd rackerVisual-lnertialInitializedis- onlySfMAlignmentIMU (100hMU Pre-integrationLocal Visual-Inertial: OldestSliting WindowNewestNonli+、 Keyframe?OptimizationBundle Adjustment II Loop detectionwith RelocalizationStates from Loop ClosureFealure retrievel oop Deleted二二1---11------22===Global Pose Graph4-DoF Pose Graph OptimizationKeyframe DatabaseOptimization图1VINS框架ⅵINS的玏能模块可包括五个部分:数据预处理、初始化、后端非线性优化、闭环检测及闭环优化。代码中主要开启了四个线稈,分别是:前端图像跟踪、后端非线性伉化(其中初始化和IMU预积分在这个线程中)、闭环检测、闭环优化各个功能模块的作用上要有:1.I图像和MU预处理●图像:提取图像 Harris角点,利用金字塔光流跟踪相邻帧,通过 RANSAC去除异常点,最后将跟踪到的特征点push到图像队列中,并通知后端进行处理●IU:将IMU数据进行积分,得到当前时刻的位置、速度和旋转(PVQ),同时计算在后端优化中将用到的相邻帧的预积分增量,及预积分误差的 Jacobian矩阵和协方差项。1.2初始化首先,利用SFM进行纯视觉佔计滑窗內所有帧的位姿及3D点逆深度,最后与IMU预积分进行对齐求解初始化参数1.3后端滑窗优化将视觉约束、IMU约束和闭环约束放在·个大的目标函数中进行非线性优化,求解滑窗内所有帧的PVQ、bias等。L M States in the sliding windowIMU:k States from loop clos1Camera:冷 MU measurements>visual measurements★ Catur图2滑窗优化示意图14闭环检测和优化利用D)BoW进行闭环检测,当检测成功后进行重定位,最后对整个相机轨迹进行闭环优化。U预积分VisionIMUVision图3MU预积分示意图21当前时刻pVQ的连续形式将第k唢和第kl帧之间的所有IMU进行积分,可得第kHI帧的位置、速度和旋转(PVQ),作为视觉估计的初始值,这里的旋转采用的四元数。v△t+k+1∈[k,k+1]rW(at-ba ) -owletbk JtE[k, k+1]n(,-bdt∈[k,k+1]其中,a2和O为ⅠMU测量的加速度和角速度,是在Body自身坐标系, world坐标系是IMU所在的惯导系,上式的旋转公式推导可参考附录10.1。22当前时刻PVQ的中值法离散形式公式(1)给出的是连续吋刻的相机当前PVR的达代公式,为了跟代码致,下面给出基于中值法的公式,这与 Estimator:; processIMg(O函数中的Ps]、Rs]和Vs是一致的,IMU积分出来的第j时刻的物理量可以作为第j帧图像的初始值。tr t+a26t(2)ka,St其中q(a1-ba)-g"+q:+1(a+1-ba)(a;+o;+1)2.3两帧之间PVQ增量的连续形式通过观察公式(1)可知,IvU的预积分需要依赖与第k帧的ν和R,当我们在后端进行非线性优化时,需要迭代更新第κ唢的ν和R,这将导致我们需要根据每次迭代后值重新进行积分,这将非常耗吋。因此,我们考虑将优化变量从第k帧到第κ+1帧的IU预积分项中分离开来,通过对公式(1)左右两侧各乘Rb,可化简为:R(+p2k-=2△)+ak+1b其中DtElk, k+1t∈[k,k+1R k(at-bar)ldt)Wendtt∈[kk+1这样我们就得到了连续时刻的MU预积分公式,可以发现,上式得到的MU预积分的值只与不同时刻的a2和o相关。这里我们需要重新讨论下公式(5)预积分公式,以ab,为例,我们发现它是与MU的bias相关的,而bias也是我们需要优化的变量,这将导致的问题是,当每次迭代时,我们得到一个新的bias,又得根据公式(巧5)重新对第k帧和第k+1帧之间的IMU预积分,非常耗时。这里假设预积分的变化量与bias是线性关系,可以写成:ab,+/6n6ba+/16b+8 8ba +p(6)k+1sb24两帧之间PVQ增量的欧拉法离散形式面给出离散时刻的IMU预积分公式,首先按照论文中采用的欧拉法,给出第i个MU时刻与第i1个IMU时刻的变量关系为b+1k+的6t+元R(P)(1+R(P")(a2-bbn)δt25两帧之间PⅤQ增量的中值法离散形式卜面给出代码中采用的基」中值法的IMU预积分公式,这与 Estimator: processIMUO函数中的 Integration Base: push backo上是一致的。注意这里跟公式(2)是不一样的,这里积分出来的是前后两顿之间的IU增量信息,而公式(2)给出的当前帧时刻的物理量信息+1+B k St +=a, &tbb+1Bi + au1其中a,=slqilai-bai)+qiDi t aitl2.6连续形式下PVQ增量的误差、协方差及 JacobianIMU在每个吋刻积分出来的值是有误差的,下面我们对误差进行分析。首先我们直接给出在t时刻误差项的导数为:sa00016a000000-82(066hkR;0006|=00-(a-bh)0-1192k|+|000|mLL000016ba00101n000018b000F+ozk+ Gt其中:F25×15,G215×2,62x1,n12×,上式推导可参考附录102。下面我们讨论它的作用,将其可以简写为:6之k=F62z+Gtnt根据导数定义可知:62b=1m24-6262+8=62+628t=(+F6t)6z+(Gt6t)nt(11)这里我们对公式(1)的IMU误差运动方程再说明,将上式和EKF对比可知,上式恰好给出了如EKF一般对非线性系统线性化的过程,这里的意义是表示下一个时刻的IMU测量误差与上一个时刻的成线性关系,这样我们根据当前时刻的值,可以预测出下一个时刻的均值和协方差,而公式(1)给出的是均值预测,协方差预测公式如下Pb+6=(1+Ft)P(+Fl6t)7+(G,t)Q(G18t)ot(12)上式给出了协方差的选代公式,初始值Pk=0。其中,Q为表示噪声项的对角协方差矩阵000003000另外根据(11)式可获得诀差项的 Jacobian的迭代公式:(I+F26t)(14)其中 Jacobian的初始值为bk=12.7离散形式的PVQ增量误差分析我们首先直接给出PVQ增量误差在离散形式下的矩阵形式,为了与代码一致,我们修改下变量顺序,这和代码中 midPointIntegration(函数是一致的。(但不知为何计算的V中与前四个噪声项相关的差个负号?)1t fo660f106t‖loeBk+1=0f211f20016bδb0[6b102001rnot000kRkotk+1(15006t0n0000δt其中,推导可参考附录10.3:stE(ak-ba)02-4B+1(kk+121k+1b.)6t|6t2(Rr+ rk+18t2Stn=71=Rk+1(a+1-b)6tWr+ wf1=Ik+11+Gb。)δt-Rn+1(ak+121=-2配+1Stl st21(RK+Ruts)4rula1RrotstStR+1(a1R,+114/+11t28离散形式的PVQ增量误差的 Jacobian和协方差将公式(15)简写为:k+1F15×158215×1+V15×13Q则 Jacobian的迭代公式为k+15×15=F/k(16)其中, Jacobian的初始值为/k=l。这里计算出来的k+1只是为了给后面提供对bias的acoblar。协方差的迭代公式为P+15×15=FPFr+vQv(17)其中,初始值P=0。Q为表示噪声项的对角协方差矩阵:00000000aa000Q18×180a00(18)000000三、后端非线性优化31状态向量状态向量共包括滑动窗口内的n+l1个所有相机的状态(包括位置、朝向、速度、加速度计bias和陀螺仪bias)、 Camera到IMU的外参、m+1个3D点的逆深度X=[xr=pw,vb bpc,q3.2目标函数吗+(喻,2)+2(19)其中三个残差项即误差项分别为边缘化的先验信息、IMU测量残差、视觉的重投影残差。三种残差都是用马氏距离表示。根据《十四讲》中高斯牛顿法,若要计算目标函数的最小值,可以理解为,当优化变量有一个增量后,目标函数值最小,以IU残差为例,可写成如下所示:nin lre2bk, X+8Xrk x)+HSⅩDk+1oXk+1k+1其中HB,为B关于 XIK Jacobian,将上式展开并令关于6X的导数为0,可得增量δx的计算公式:H k 8X=k+1TB那么,公式(28)可写成+∑+∑Tk∑1rc上式中,B为MU预积分噪声项的协方差,P为vual观测的噪声协方差。当MU的噪声协方差P越大时,其信息矩阵Pk,将越小,意味着该MU观测越不可信,换句话说,因MU噪声较大,越不可信IMU预积分数据,而更加相信 visual观测。注意,这里的IMU和vsua协方差的绝对值没有意义,因为考虑得是两者的相对性可将上式继续简化为:(Ap+AB +Acox=bp +bB +bc其中,Ap,AB和Ac为 Hessian矩阵,上述方程称之为增量方程。33MU约束1)残差:两帧之间的PVQ和bias的变化量的差△tx+k+1bk qbk+1bR+1 xyz+g"△t)-Bk(20)sbbbb其中各增量关于bias的 Jacobian可从公式(16)的大 Jacobian中的相应位置获得。上面与代码中 Integration base: evaluateD对应,2)优化变量pb, 0W, Svb ,8ba:,bor Opb,, 80W ,Swb,, bakr, Sba3)Jacobian:计算 Jacobian时,残差对应求偏导对象分别为p6e,6vB,6h,ba],6b,6b
- 2020-12-07下载
- 积分:1
-
基于Matlab植物虫害检测(GUI,注释,svm算法)
该课题为基于MATLAB SVM方法的植物病害检测系统,带GUI界面,可以识别多种被虫害侵蚀的植物叶子,输出结果。带论文和详细注释。train 对黄瓜子文件夹所有图片提取 颜色矩特征和gabor纹理特征,然后svm训练test 对测试图像灰度化,滤波,提取 颜色矩特征和gabor纹理特征,然后svm模型测试,输出类别colorMom.m 颜色矩特征提取Gabor_palm.m gabor纹理特征提取
- 2021-05-06下载
- 积分:1
-
基于51单片机的步进电机控制 和 转速测量
该程序实现键盘对四相步进电机的控制,12864显示,利用ST188传感器测量步进电机转速。
- 2020-12-03下载
- 积分:1
-
RTCM3.3协议全
全新RTCM3.3协议完整版RTCM STANDARD 10403.3DIFFERENTIAL GNSS(GLOBAL NAVIGATION SATELLITE SYSTEMS)SERVICES – VERSION 3DEVELOPED BYRTCM SPECIAL COMMITTEE NO. 104OCTOBER 7, 2016COPYRIGHT©2016 RTCMRadio Technical Commission for Maritime Services1611 N. Kent St., Suite 605Arlington, Virginia 22209-214RTCM Paper 141-2016-SC104-STD000ocRTCMco00c30RTCM 10403. 3, Differential GNSS Global Navigation Satellite Systems)Services- Version 3, October 7, 2016This standard (referred to as version 3 has been developed by rtCm special Committee 104 as a moreefficient alternative to the standards entitled rtcm recommended standards for diffe rentialRecommended Standards for Differential gNss Global Navigation Satellite Systems Service, Version 2.x(Current version is 2. 3, now designated as RTCM 10402. 3. Service providers and vendors represented onthe SC104 Committee wanted a new standard that would be more efficient, easy to use, and more easilyadaptable to new situations. The main complaint was that the version 2. x parity scheme, which useswords with 24 bits of data followed by 6 bits of parity, was wasteful of bandwidth. Another complaint wasthat the parity was not independent from word to word. Still another was that even with so many bitsdevoted to parity the actual integrity of the message was not as high as it should be. Plus, 30-bit wordsare awkward to handle. the new standard version 3 is intended to correct these weaknessesUnlike Version 2. x, this standard does not include tentative messages The messages in Version 3 haveundergone testing for validity and interoperability and are considered to be permanent. amendments tothe standard may change the meaning of reserved bits or provide additional clarifying text, but no changeswill be made in the data fields. Changes will require new messages to be developed. In addition to themessages described in the current standard the committee continues to develop new messages whichare described in separately published amendments and periodically gathered into a new edition of thestandard. RTCM 10403x for dgNSS services is proving useful in supporting highly accurate differentialand kinematic positioning as well as a wide range of navigation applications worldwideNote that Version 3 messages are not compatible with Version 2. x. Since many receivers have beendesigned and programmed for use with Version 2. x messages, rtCm is maintaining both standards0402 3 and 10403, 3 as" standardsVersion 3.0The initial edition consisted primarily of messages designed to support real-time kinematic (RTK)operations. The reason for this emphasis is that rtk operation involves broadcasting a lot of informationand thus benefits the most from an efficient data format. Version 3.0 provided messages that supportGPS and gloNaSs rTK operations including code and carrier phase observables antenna parametersand ancillary system parametersVersion 3. 1(RTCM Standard 10403.1:The next edition, Version 3. 1 (RTCM Standard 10403. 1), incorporated GPS Network Corrections, whichenable a mobile receiver to obtain accurate rtk information valid over a large area. In addition, new GPSand GLoNaSS messages provide orbital parameters to assist in rapid acquisition a Unicode text messageis also provided for the transmission of textual data. Finally a set of messages are reserved for vendorswho want to encapsulate proprietary data in their broadcasts the gps Network Corrections enable amobile receiver to obtain accurate rtk information valid over a large area. the network rtk correctioninformation provided to a rover can be considered as interpolated corrections between the referencestations in the rtk network this interpolation is not perfect and varies with the actual conditions of theatmosphere. A residual interpolation error has to be expected. With sufficient redundancy in the RtKnetwork, the network server process can provide an estimate for residual interpolation errors. Suchquality estimates may be used by the rover to optimize the performance of rtk solutions The values maybe considered by the rover as a priori estimates only with sufficient tracking data available the rovermight be able to judge residual geometric and ionospheric errors itselfVersion 3. 1. Amendment 1:Amendments 1 was an extensive addition that adds rtcm messages containing transformation data andinformation about Coordinate reference Systems. For rtCm data supporting a rtk service, coordinatesare measured within the itrf or a regional realization surve yors and other users of rtk services mustnormally present their results in the coordinates of local datums. Therefore, coordinate transformationsare necessary. by having RTCM messages that contain transformation data and information about theCoordinate reference systems the users of the rtk service can obtain their results in the desired datumwithout any manual operations. the rtk service providers can then ensure that current information forthe computation of the transformations is always used. the convenience of this method will promote theacceptance of rtK servicesVersion 3. 1. amendment 2:Amendment 2 added residual error messages to support the use of Non-Physical or Computed referenceStations in a network rtk environmentVersion 3. 1. amendment 3:Amendment 3 addressed differences in the way gnss receiver manufacturers have implemented carrierphase encoding of some Version 3 messages so that carrier phase observations are in phase for all carrierphases of a specific frequency i e. they correct for quarter cycle phase shifts. others retain the quartercycle offset between the carrier phase observations in the data. this amendment documents the waydifferent manufacturers have handled the phase shift issue and prescribes a uniform approach for futureproducts.∨ersiⅰon3.1, Amendment4:Amendment 4 added sections 3.5.13 on glONASS Network rtK Correction Messages and 3.5. 14 on FKPNetwork Rtk Correction Messages Related revisions were also made elsewhere in the document.Version 3. 1. amendment 5Amendment 5 added section 3. 5. 12 on State Space Representation related revisions are also madeelsewhere in the document, along with some editorial correctionsVersion 3. 2(RTCM Standard 10403.2)Version 3.2 consolidates Version 3. 1 and all five amendments into a new edition, and it adds MultipleSignal Messages (MSM)as well. the Multiple Signal Message (MSm)format generates receiverobservables in the same way for all included satellite systems. the messages include compact and fullmessages for Pseudorange, PhaseRange, Carrier to Noise Ratio (standard and high resolution), andPhaseRangeratea table near the beginning of the standard lists which messages were included in each separate editionand amendment, so it should not be necessary for users to refer to older versions. Multiple signalMessages are a generic format that will be followed for all GNSs systems. version 3 originally consisted ofmessages for GPS and GLONASS, each in their own format Now with the imminent addition of signals forBeiDou, Galileo, and QZSS, as well as new signals provided by modernized GPS and GloNASS satellitesthe need for a consistent generic format became evident. service providers and users are urged to migrateto the MsM messages to make it easier to accommodate new gNss services(See The RTCM Multiple Signal Messages: A New Step in GNSS Data Standardization")Another newmessage is the gloNaSS Bias Information message. This message provides information which is intendedto compensate for the first-order inter-frequency phase range biases introduced by the reference receivercode- phase biasVersion 3.2, Amendment 1:Added Galileo F/NAv Satellite Ephemeris Data(msg. 1045 )and Bds MSM(msgs. 1121-1127)Version 3.2 amendment 2Added qzss ephemeris(msg. 1044 )and QZss MSm (msgs. 1111-1117Version 3. 3(RTCM Standard 10403.3)This new edition adds Satellite-Based Augmentation System Multiple Signal Messages to previouslydopted messages for GPS, GLONASS, Galileo, and QzssA new ephemeris message has been added for BeiDou(BDS)and a new I/NAV ephemeris message hasbeen added for Galileo. The new edition also reserves 100 messages be used exclusively by sc104 fornew message developmentFinally, the new edition makes consolidates previous amendments and makes numerous editorialImprovementsNavstar GPS Service, Version 2. x. Service providers and vendors represented on the scco000c30z1O2co00c30Contentsco00c30
- 2020-06-27下载
- 积分:1