登录
首页 » Others » 流水线有符号除法器的FPGA实现

流水线有符号除法器的FPGA实现

于 2020-11-28 发布
0 249
下载积分: 1 下载次数: 1

代码说明:

流水线有符号除法器FPGA实现,可直接仿真,内附除法器原理及激励文件

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • 基于Meanshift的单目标跟踪算法【matlab+c两个版本】
    基于meanshift的单目标跟踪算法实现说明:1. RGB颜色空间刨分,采用16*16*16的直方图2. 目标模型和候选模型的概率密度计算公式参照上文3. opencv版本运行:按P停止,截取目标,再按P,进行单目标跟踪4. Matlab版本,将视频改为图片序列,第一帧停止,手工标定目标,双击目标区域,进行单目标跟踪
    2020-05-23下载
    积分:1
  • 基于相关系数的影像匹配matlab
    该程序是在matlab中编程实现的,可以交互式进行影像匹配。其方法是基于相关系数进行的。
    2020-11-30下载
    积分:1
  • allan方差matlab
    用matlab详细编写了一个ALLAN方差的程序,经过了调试可以绘制角度随机游走、速率斜坡等噪声分析模型。
    2020-11-28下载
    积分:1
  • 分步傅立叶法解广义非线性薛定谔方
    分步傅立叶法解广义非线性薛定谔方程,以脉冲压缩为实例
    2020-12-07下载
    积分:1
  • 基于C++和数据库SQL server开发的商品销售管理系统(含有源序)
    基于C++和数据库SQL server开发的商品销售管理系统(含有源程序)
    2020-12-01下载
    积分:1
  • 结构动力学使用中心差分法计算单自由度体系动力反应的MATLAB
    这是中心差分法计算单自由度体系动力反映的报告,包括中心差分法原理,中心差分法求解单自由度体系的自由振动问题
    2020-12-04下载
    积分:1
  • 嵌入式Linux基础教(embedded Linux primer)
    embedded Linux primer 的中文版。由华清远见翻译。译者序如果早些看到 Christopher Hallinan的这本书,我就不会在开发过程中走那么多弯路了!人类无限膨胀的欲望促进了嵌入式的发展。回想10年前,你能想象手机可以照相吗?你能想象汽车里会安装全球定位系统吗?今天看来,这些都是多么普通的功能,因为只要调用一些函数(压缩算法)就可以实现。但是你想过吗?如果没有操作系统的支持,很多复杂的功能是无法完成的。要从事嵌入式开发,掌握操作系统的知识是必要的本领之一个不可忽视的事实是电子产品的性能不断提升,而价格却在下降。开发商越来越重视成本免费、自由的 Linux无疑是一个强有力的竞争者。凭借优异的特性和良好的发展趋势, Linux轻而易举地坐上了嵌入式操作系统的头把交椅。嵌入式系统并不见得有多么高深,但是因为嵌入式系统本身涉及了很多学科,致使很多初学者时常深感迷茫,不知道从何入手,即便是编译环境都很难搭建,更不用说调试和部署了。幸运的是, Christopher Hallinan的这部著作为我们学习嵌入式系统提供了捷径。请允许我在此使用“捷径”一词,因为我在刚刚踏入嵌入式 Linux大门时,其中的很多概念也一度让我觉得神秘而困惑。虽然网络搜索功能很强大,但是就如同迷失在一棵大树的树叶之间,你很难摸索到树十,找到正确的方向,而 Christopher Hallinan的这本书就是指引我们前进的“树干”。更可贵的是,本书每章后都提供了相关参考资料,你会很容易地查找到需要了解的内容。在如此短的篇幅内阐述嵌入式 Linux的方方面面是不可能的。但本书作者却让你在一本书中轻松地掌握了嵌入式开发的脉络,这是难能可贵的。本书内容广泛而又不乏深度,嵌入式 Linux开发的初学者和提高者都能从中获得巨大收获。本书的翻译工作由北京华清远见科技信息有限公司负责组织,拿到书后,我们的翻译团队粗略地浏览了一遍,一致认为本书的内容尽在我们的掌握之中,毕竟我们自认为在嵌入式 Linux领域小有经验。但在翻译过程中,我们渐渐改变了最初的错误的想法。看起来和写出来有很大不同。除了赞叹作者扎实的基本功外,我们更被作者高超的写作艺术深深折服。摆在我们面前最大的难题不是技术,而是如何尽可能地把作者的原意表现出来。我想,这也是衡量一本书翻译质量的关键吧!翻译的具体分工如下:王辉翻译第1章至第4章、第8章,张小全翻译第5章、第6章、第9章至第11章,其余部分及全书统稿由孙天泽完成。我要特别感谢袁文菊、吴彦波两位老师对本书所做的贡献。我希望能够代表嵌入式同行们感谢人民邮电出版社图灵公司,是他们以卓越的眼光引进了这部著作。尽管我们做了充分的准备,但是受能力所限,译文中仍难免存在一些错误,还请读者批评指正。最后,祝读者能通过学习本书获得较大的提高序计算机无处不在!在过去大约25年中,只要不是与世隔绝的人就肯定不会对此感到大惊小怪。现在,计算机不仅占据了我们的桌面,进驻了我们的厨房,而且越来越多地进入到我们的生活场所,即便是在微波炉、电烤箱、移动电话和便携式数字音乐播放器中也出现了它的身影。选择本书的读者肯定已经了解了不少,但还想学习更多的嵌入式系统知识。就在不久前,嵌入式系统还不是很强大,它们运行具有特殊目的、专用的操作系统,而这些操作系统与工业标准的系统有很大不同(而且,它们也更难于开发)。现在,嵌入式系统即使在功能上不比家用计算机强大,但至少也与其相当(例如高端游戏终端)。伴随着这种强大的功能,运行 Linux等成熟操作系统的能力也呼之欲出,在嵌入式产品中使用 Linux这样的操作系统变得具有非常大的意义。一个庞大的开发者社区更使得这一切成为可能。开发环境和部署环境惊人相似,这也使得程序员的生活变得更轻松。现在我们既有由虚拟内存系统提供的保护地址空间的安全性,又有多用户的能力和灵活性。真是不老少了。出于这个原因,全世界的公司都在许多设备中选择使用Iinuⅸx,如PDA、家庭娱乐系统,甚至移动电话——不管你信不信!这本书很令我振奋。它为那些想在嵌入式系统中使用 Linux的开发人员提供了极好的学习路线指导。本书内容简洁、准确,组织合理, Christopher的知识和见解贯穿全书,你不仅能得到很多信息和帮助,也能获得阅读的乐趣。我希望在你学习的同时也能感受到这种乐趣,我自己已经感受到了。Arnold Robbins著名 Linux专家)虽然 Linux方面己经有很多好书,但是没有哪一本书能为嵌入式 Linux开发人员提供广泛的信息和建议。当然,有一些非常优秀的书籍介绍了 Linux内核和 Linux系统管理等方面的知识,本书也参考了许多我认为在同类书中最优秀的著作。本书的大部分素材取自我在这些年来收到的一些开发工程师提出的问题,当时我的职位是嵌入式 Linux顾问。现在我是 Monta vista software公司的现场应用工程师,该公司是嵌入式 Linux发行厂商的领跑者。即便对于很有经验的软件工程师来说,嵌入式 Linux也带来了一些特殊的挑战。首先,那些具有多年实时操作系统(RTOS)开发经验的工程师很难把思维转换到 Linux上;其次,有经验的应用程序开发人员通常很难理解多种开发环境的复杂性。虽然这只是一本面向刚接触嵌入式 Linux开发人员的基础读物,但是我确信有经验的嵌入式Linux开发人员也一定能从中找到有用的提示和技巧,这些可是我花费多年积累总结出来的。给嵌入式Lnux开发者的实用建议书中包括了我的一些观点。作为一名嵌入式工程师,要跟上嵌入式 Linux环境的快速发展,你需要知道这些观点。本书没有重点讲解 Linux内核内部原理,在谈论内核的章节中侧重从项目角度介绍内核,你可以阅读专门介绍内核内部原理的著作来了解相关知识。通过本书可以学习内核源码树的组织和布局,了解组成内核映像的二进制文件组件以及如何加载它们,它们在嵌入式系统中的作用等知识。图5-1是我最欣赏的一幅图,它形象地说明了合成内核映像的构建过程。本书的一些章节讲述了构建系统的工作原理,以及怎样将满足项目需求的定制的内核变化加载到内核中。你会了解用于驱动不同体系结构配置的机制和 Linux内核源码树的特性;更重要的是,掌握如何修改系统使之满足自己的需求。除此之外,我们还深入探讨了内核命令行参数机制,介绍了它是如何工作的,如何根据需求配置内核运行时行为,如何扩展系统功能,如何导航内核源代码,如何为相关嵌入式系统的不同任务配置内核。其他内容还包括嵌入式项目中一些非常有用的提示和技巧,内容涵盖了引导装入程序、系统初始化、文件系统和闪存、内核调试技巧以及应用程序调试技巧等。2前言读者对象本书需要读者具有一定的C语言编程基础,对局域网和因特网有基本的了解,理解IP地址的概念以及P地址在简单局域网中的用法,还需要理解十六进制和八进制编码方式以及它们常见的用法。本书也涉及一些C语言编译和链接中较为深入的概念,所以如果你能粗略复习一下C语言链接器的概念就更好了。同时,了解 GNU make操作和语法对于阅读本书也很有帮助。本书不是什么本书不是一本详细介绍硬件的指南。嵌入式开发者所面临的困难之一就是现在硬件设备之间有巨大的差异。一款集成部分外围设备的现代32位处理器,其用户手册动辄就有1000页,这没有捷径可走。但从程序员的角度看,如果需要理解硬件设备,你必须花费大量时间研读硬件数据手册和参考指南,同时要花费更多的时间编写和测试这些硬件设备的工作代码这也不是一本讲述 Linux内核和内部原理的书。从本书中无法学到用来实现 Linux虚拟内存管理策略和过程的内存管理单元(MMU)的精深知识。已经有许多关于这个主题的优秀书籍,我建议你翻阅每章后面的“参考资源”排版约定文件名和代码采用 Courier字体,需要读者输入的命令使用加粗 Courier字体。新术语或重要的概念使用楷体加以强调路径名前如有3个点则表示众所周知但未明确指定的顶层目录。上下文不同,顶层目录也会不同,但大多数情况下是指Linuκ内核源码目录的顶层。例如,,/arch/ppc/ kerne1/ setup.c表示 setup.c文件位于 Linux内核源码树的体系结构分支上。实际路径可能是/sandbox/linux. 2.6.14/arch/ppc/kernel/setup. co本书结构第1章简要介绍了 Linux被迅速应用在嵌入式环境的驱动因素,介绍了与嵌入式 Linux相关的几个重要的标准和组织。第2章介绍了许多与后几章所构建的嵌入式 Linux相关的概念。第3章将站在更高的层面了解用于构建嵌入式 Linux系统的流行的处理器和平台,介绍了从主要处理器厂商精选的几款产品,以及几乎所有主流的体系结构。第4章从略微不同的角度审视 Linux内核。这里没有重点讲解内核理论或其内部原理,只是介绍了内核的结构、布局和构建结构,目的是使读者从一开始就能学习这门庞大的软件工程项目。更重要的是,要知道哪些内容是必须重点关注的,包括对内核构建系统的详细讲解。第5章详细说明了 Linux内核的初始化过程。你可以学习到与体系结构和引导装入程序相关前言3的映射组件,是如何拼接成适合下载到闪存的内核映射,并最终通过嵌入式系统的引导装入程序启动的。从这一章学到的知识将帮助你自定义 Linux内核,使之可以满足你自己的嵌入式应用的需求。第6章继续讲述初始化过程。当 Linux内核完成自身初始化后,应用程序将根据预先确定的方式继续初始化过程。读完这一章以后,你就具备了自定义用户空间应用程序启动顺序的知识。第7章主要介绍引导装入程序及其在嵌入式 Linux系统中的作用。这一章以现在流行的开源引导装入程序U-Boot为例,说明了移植的概念;还简要介绍了其他几种现在使用着的引导装入程序,以便用户有特殊需求时可以有多种选择第8章介绍了 Linux设备驱动程序模型,提供了很多进行设备驱动程序开发的背景资料,这些资料都在“参考资源”中列出。第9章列举了目前嵌入式系统中使用的一些流行的文件系统,包括在闪存设备上最常用的JFFS2文件系统。这一章还简要介绍了如何创建自己的文件系统映像,这也是嵌入式 Linux开发人员所面临的一项艰巨任务。第10章介绍了MTD( Memory Technology Devices,内存技术设备)子系统。MTD是 Linux文件系统和硬件内存设备(尤其是闪存)之间一种非常有效的抽象层。第11章介绍了 Busy Box,它是我们构建小型嵌入式系统最常用的工具。这一章讲述如何根据特殊需求对 Busy Box进行配置和构建,随后介绍了仅使用 Busy Box环境完成系统初始化的全过程。附录B列举了最新版本 Busy Box提供的命令。第12章详细介绍了典型交叉开发环境的特殊需求。这一章所介绍的一些技术能有效地提高嵌入式开发人员的工作效率,例如强大的NFS根目录挂载开发配置。第13章介绍了一些有用的开发工具。介绍了使用gb进行调试,包括核心转储分析;并通过示例介绍了 strace、1 trace、top和ps,以及内存剖析工具 mtrace和dma11oc。这一章最后介绍了更重要的一些二进制实用工具,如 reade1f等。第14章深入探讨了一些 Linux内核的调试技术,介绍了内核调试器KGDB的用法,提出了gdb和KGDB组合使用的许多调试技巧。这一章涉及的内容还包括硬件JAG调试器的用法,以及当内核无法启动时的一些故障分析技巧。第15章把调试环境从内核转移至应用程序。这一章继续完善前两章用到的gdb示例,讲述了多线程和多进程的调试技巧。第16章介绍了将 Linux移植到自定义开发板的相关问题。这一章通过一个简单的示例,逐步说明了Linx内核移植到 PowerPC板的详细过程,还讲解了几个困扰 Linux内核移植方面新手的重要概念。读完本章后,会同第13章和第14章提出的技术,你应该能够对自己的开发板进行移植工作。第17章介绍了嵌入式 Linux中一个令人激动的发展:通过配置 CONFIG_R选项实现实时。这里介绍的特性通过RT选项得以实现,同时还介绍了如何在设计中使用这些特性。这一章也介绍了在应用程序中测试延时的技巧。附录内容包括U-Boot可配置命令、 Busy Box命令、 SDRAM接口的注意事项、开源开发者4前言的资源、BDI2000调试器的配置文件范例。BD2000是目前很流行的硬件JTAG调试器其他如果你能够边看书边在 Linux工作站上动手实验,将会从书中得到最大的收获。可以找一个较旧的x86计算机完成嵌入式系统实验。如果有条件能连接其他体系结构的平台进行实验就更好了。你将受益于学习到大型代码库(如 Linux内核)的布局和组织,在浏览内核并亲自动手实验时,能学到一些更重要的知识和经验。看一下本书使用的代码并试着理解书中的示例,要使用不同的设置方案、配置选项和不同的硬件设备进行实验。除可获得丰富的知识,还充满了乐趣!版权说明本书使用的开源代码的版权归很多个人或公司所有。复制代码遵循了GNU公共许可,即GPL。致谢我由衷地敬佩开源软件工程师的崇高精神,深深地折服于我们社区中远远超过我的天才们。在本书的创作过程中,我向 Linux和开源社区的很多人提出了大量问题,大多数问题都能很快得到答案,而且还经常获得鼓励。我要向Linuκ和开源社区中帮我解答问题的朋友致以真挚的谢意(排名不分先后):Dan malek为第2章的部分内容提供了创作灵感。Dan Kegel和 Daniel Jacobowitz耐心地帮我解答了关于工具链的问题。Scott Anderson提供了第14章中gdb宏的最初的思想。Brad Dixon不断地用他所掌握的知识挑战和扩展我的技术洞察力George Davis帮我解答了ARM的问题。Jim Lewis为我提供了关于MTD的意见和建议。Cal Erickson帮我解答了关于gdb用法的问题。John Twomey就第3章内容给出了建议。Lee revell、sven- Thorsten dietrich和 Daniel walker就实时 Linux的内容提供了建议。非常感谢AMCC、 Embedded planet、 Ultimate Solutions和 United Electronic Industries公司,它们提供了示例硬件。感谢我的公司 Monta vista,允许我进行这次与工作无关的创作,并且提供了一些软件示例。在创作过程中,还有很多人贡献了他们的想法,并给予我鼓励和支持,我也非常感激我要诚挚地感谢最初审阅本书的团队,他们迅速地阅读了每一章,提供了极好的反馈、注释和想法。谢谢 Arnold Robbins、 Sandy Terrace、 Kurt Lloyd和 Rob Farber。还要感谢 Amold帮助我这个写作新手学习撰写技术图书的规则。虽然我已经努力排除每处错误,但错误肯定还会存在,前言5这都归昝于我。感谢 Mark L.Taub使本书得以完成,感谢他的鼓励和无限的耐心。还要感谢制作团队,包括Kristy Hart、 Jennifer Cramer、 Krista Hansing和 Cheryl Lenser最后,还要把最特别、最衷心的感谢献给 Cary Dillman,在我撰写本书时她阅读了每一章,整个创作过程中都有她的不断鼓励和重要的贡献Christopher hallinan目录第1章引言……………………………………参考资源…………………………221.1为什么使用Lnux……1第3章处理器基础12嵌入式 Linux现状…31单机处理器2313开源和GPL……………………………14标准和相关机构22333.1.1IBM970FX3. 1.2 Intel Pentium14.lLSB…3. 1.3 Freescale14.2OSDL…33.14配套芯片组,1.5小结…………………43.2集成化处理器:片上系统………………27参考资源“3.2.1 PowerPC…………27第2章嵌入式初体验…53.2.2 AMCC PowerPC……………………272.1需要嵌入式系统吗…………………………53. 2.3 Freescale PowerPC.……3022嵌入式系统剖析……63.24MPs…322.1典型嵌入式 Linux系统设置3.2.5 Broadcom MIPS222启动目标板…………3.2.6 AMD MIPS……34223启动内核……………………93.27其他类型的MIPS…………3522.4内核初始化概述……103.2.8ARM……………35225第一个用户空间进程:init…113.29TARM………………………352.3存储的思考……23.2.10 Freescale arM………………37231闪存…123.2.11 Intel ARM XScale………………37232NAND闪存………………133212其他ARM………………………38233闪存的用途………143213其他体系结构…………38234闪存文件系统1433硬件平台……………………………38235存储器空间………………1533.1 CompactPCI…382.3.6运行上下文…………………………163.32ATCA……………………………39237进程中的虚拟内存………1734小结……………………………3923.8交叉开发环境…………19参考资源………………………4024嵌入式Liux的发行版…20第4章Lnux内核不同视角41241 Linux商业发行版……………214.1背景知识242 Linux自定义发行版………………214.1.1内核的版本………422.5小结……………………………214.1.2内核源码库………………43
    2021-05-06下载
    积分:1
  • LoRa速率计算工具(已修改去掉挡住数据的字)
    原本官方的工具有个别参数被挡到,例如挡住了bps的数值,这边的这个工具已经稍加修改,把那些会挡住的字母去掉,请放心下载。工具可以设置扩频因子、带宽、频率等参数计算出最后的速率和功率,还可以计算发送前导码长度占用时间和数据包整体的时间。
    2020-12-12下载
    积分: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实现
    自动寻峰谷算法matlab实现,非常不错,大师实现
    2020-12-02下载
    积分:1
  • 696518资源总数
  • 106259会员总数
  • 28今日下载