【基于Android设备的三维重建方法实验探究3200字(论文)】_第1页
【基于Android设备的三维重建方法实验探究3200字(论文)】_第2页
【基于Android设备的三维重建方法实验探究3200字(论文)】_第3页
【基于Android设备的三维重建方法实验探究3200字(论文)】_第4页
【基于Android设备的三维重建方法实验探究3200字(论文)】_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Android设备的三维重建方法实验探究目录TOC\o"1-3"\h\u14768基于Android设备的三维重建方法实验探究 -1-220791.1重建算法的设计 -2-256741.2重建算法的工作流程 -2-290481.3Ros机器人系统与Android设备连接 -2-155381.4通过APK程序记录Rosbag数据集 -5-308842实验结果与分析 -6-189682.1实验介绍 -6-274692.2算法效率 -6-58072.3建模结果 -8-144582.4结论 -8-重建算法的设计本文主要解决的问题是在Android设备上实时的对象三维重建,输入是通过Android设备搭载的RGB摄像机进行拍摄得到的序列帧图像,输出的是点云模型。针对Android设备相机一般不搭载深度摄像头,无法获取深度信息,本文采用的Kimera算法可以很好地利用相机采集的图像和Android设备自身传感器产生的惯导数据得到相机的位姿信息。对于一些老型号的Android设备的处理器性能较低的问题,本文采用利用无线WIFI或者移动热点的方式,连接Android设备和PC设备,并在PC设备上的Ubuntu系统中的ROS机器人系统下进行实时三维建模。重建算法的工作流程如图14流程图所示,对于相机采集图像的每一帧而言,输入的是RGB图像,输出的是当前重建中的三维点云模型。图SEQ图\*ARABIC14Ros机器人系统与Android设备连接由于PC系统与Android设备上使用的系统不同,我们需要寻找一个在两种系统中都兼容运行的平台,ROS机器人系统是一个功能强大并且兼容性强的平台。下面将简单介绍一下ROS 机器人系统的架构以及如何实现各种功能。图SEQ图\*ARABIC15如图15所示,这是一个ROS机器人程序所包含的基本的框架。工作空间:工作空间是一个包含功能包、可编辑源文件和编译包的文件夹,当同时编译不同的功能包时非常有用,并且可以保存本地开发包。用户可以根据自己的需要创建多个工作空间,在每个工作空间中开发不同用途的功能包。在图中是一个名为catkin_ws的工作空间,该工作空间下会有3个文件夹:src、build、devel。其中src源文件空间放置各个功能包和一个用于这些功能包的CMake配置文件CMakeLists.txt。由于ROS中的源码采用catkin工具进行编译,而catkin工具又是基于cmake技术的,所以我们会在src源文件空间和各个功能包中都会见到一个文件CMakeLists.txt,这个文件就是起编译配置的作用。build编译空间文件夹放置CMake和catkin编译功能包时产生的缓存、配置、中间文件等。devel开发空间文件夹放置编译好的可执行程序,这些可执行程序是不需要安装就能直接运行的。功能包:功能包是ROS中软件组织的基本形式,一个功能包具有用于创建ROS程序的最小结构和最少内容,它可以包含ROS运行的进程(节点)、配置文件等。如图,一个功能包中主要包含这几个文件:CMakeLists.txt功能包配置文件:用于这个功能包cmake编译时的配置文件。package.xml功能包清单文件:用xml的标签格式标记这个功能包的各类相关信息,比如包的名称、依赖关系等。主要作用是为了更容易的安装和分发功能包。include/<package_name>功能包头文件目录:你可以把你的功能包程序包含的*.h头文件放在这里,include下之所以还要加一级路径<package_name>是为了更好的区分自己定义的头文件和系统标准头文件,<package_name>用实际功能包的名称替代。msg非标准消息定义目录:消息是ROS中一个进程(节点)发送到其他进程(节点)的信息,消息类型是消息的数据结构,ROS系统提供了很多标准类型的消息可以直接使用,如果你要使用一些非标准类型的消息,就需要自己来定义该类型的消息,并把定义的文件放在这里。不过这个文件夹不是必要项,比如程序中只使用标准类型的消息的情况。srv服务类型定义目录:服务是ROS中进程(节点)间的请求/响应通信过程,服务类型是服务请求/响应的数据结构,服务类型的定义放在这里。如果要调用此服务,需要使用该功能包名称和服务名称。scripts可执行脚本文件存放目录:用于存放bash、python或其他脚本的可执行文件。不过这个文件夹不是必要项,比如程序中不使用可执行脚本的情况。launch文件目录:用于存放*.launch文件,*.launch文件用于启动ROS功能包中的一个或多个节点,在含有多个节点启动的大型项目中很有用。src功能包中节点源文件存放目录:一个功能包中可以有多个进程(节点)程序来完成不同的功能,每个进程(节点)程序都是可以单独运行的,这里用于存放这些进程(节点)程序的源文件,源文件可以用c++、python等来书写。以上就是ROS机器人系统的基础框架。为了解释它是如何工作的,还需要介绍“消息”“服务”“主题”的相关概念。ROS会创建一个连接所有进程(节点)的网络,其中的任何进程(节点)都可以访问此网络,并通过该网络与其他进程(节点)交互,获取其他进程(节点)发布的信息,并将自身数据发布到网络上,这个计算图网络中的节点(node)、主题(topic)、服务(server)等都要有唯一的名称做标识。图SEQ图\*ARABIC16节点:是主要的计算执行进程,功能包中创建的每个可执行程序在被启动加载到系统进程中后,该进程就是一个ROS节点,如图中的节点1、节点2、节点3等都是节点(node)。节点都是各自独立的可执行文件,能够通过主题(topic)、服务(server)或参数服务器(parameterserver)与其他节点通信。ROS通过使用节点将代码和功能解耦,提高了系统的容错力和可维护性。ROS提供了处理节点的工具,用于节点信息、状态、可用性等的查询操作。消息:节点通过消息(message)完成彼此的沟通。消息包含一个节点发送给其他节点的信息数据。主题:每个消息都必须发布到相应的主题(topic),通过主题来实现在ROS计算图网络中的路由转发。当一个节点发送数据时,意味着该节点正在向主题发布消息;节点可以通过订阅某个主题,接收来自其他节点的消息。通过主题进行消息路由不需要节点之间直接连接,这就意味着发布者节点和订阅者节点之间不需要知道彼此是否存在,这样就保证了发布者节点与订阅者节点之间的解耦合。同一个主题可以有多个订阅者也可以有多个发布者,不过要注意必须使用不同的节点发布同一个主题。每个主题都是强类型的,不管是发布消息到主题还是从主题中订阅消息,发布者和订阅者定义的消息类型必须与主题的消息类型相匹配。通过APK程序记录Rosbag数据集本次设计采用的是Github上一款开源Android系统APK,其主要功能就是基于ROS系统下的信息发布和订阅,使得移动设备和PC在一个局域网下进行信息(图像信息和IMU惯导数据)的传输。Android手机和PC连接同一个无线网络Ubuntu终端运行roscore,启动一个ROS的masterUbuntu终端运行ifconfig查看自己的IP(如9),用它替换APP初始界面文本框中http://localhost:11311的localhost部分,端口号11311保持不变,修改后点击Connect。若连接成功,则进入相机界面。图SEQ图\*ARABIC17Ubuntu终端运行rostopiclist。显示/camera/image/compressed和/android/imu表示ROS系统已经成功订阅了服务。图SEQ图\*ARABIC18通过Rosbagrecord命令录制正在运行的Ros系统中节点的数据打包成Rosbag数据集,并且可以指定想要的主题。例如/android/imu和/camera/iamge_raw这两个主题就是包含了相机拍摄的图像信息和IMU惯导数据信息。通过RosbagPlay命令,通过kimera算法库载入Rosbag数据集并进行三维模型重建,生成密集的三维点云模型。实验结果与分析实验介绍本章介绍本次设计的实验部分,通过分析结果验算算法的效率性和正确性。鉴于移动端设备的性能限制和同其他算法的对比,本次设计主要利用PC端的程序测试各部分算法的正确性和三维重建效果。接下来将展示实验的结果。算法效率姿态性能估计表3使用EuRoC数据集KimeraVIO的绝对转换误差(AbsoluteTranslationError)的均方根误差与最新的开源VIO线程进行了比较,例如OKVIS,MSCKF,ROVIO,VINS-Mono和SVO-GTSAM,使用独立报告值和自我报告值。在评估误差之前,使用SE(3)变换对齐估计的轨迹和地面真实轨迹,这样做的目的是减少误差。(粗体表示每个类别的最佳结果:固定延迟平滑,完全平滑,和带有环路闭合的PGO。×表示失败)表SEQ表\*ARABIC3RPGO模块的鲁棒性:分别使用PCM来拒绝异常值和不使用PCM两组,计算这两组在不同的闭环阈值α下的误差:表SEQ表\*ARABIC4几何重建性能估计测试该部分模块的性能时,使用了EuRoCV1和V2两个数据集上的地面真实点云来评估Kimera制作的3D网格。准确性和完整性指标,对照基本事实评估每个网格。(1)通过以103点/平方米的均匀密度对网格进行采样来计算点云,(2)使用云比较在ICP中记录估计的和地面真实云,以及我们评估从地面真实点云到估计的点云中最近的邻居的平均距离(准确性),反之亦然(完整性)。图(a)示出了估计的云,通过到地面真实云中最近点的距离进行颜色编码(准确性);图(b)显示了地面真实云,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论