安卓手机跑 vins slam (1)

news2025/1/10 1:28:27

一直是手机拍照,用RealityCapture重建三维模型。因为他是靠特征点去把拍摄的多个图像进行对齐的。需要拍摄的足够多,且有特征才能对齐,要不然会生成多个组件,还得手动拼。

而且重建的三维模型有尺度问题,自动重建的模型有时候会倾斜...

后来epic出了手机app,RealityScan,但这个是手机拍摄的图像,直接上传到epic服务器做的空三计算。而且限制最大照片数量为200张,没办法拍更多。

从RealityScan的data目录找到了拍摄的照片,还发现每个照片都有位姿信息,导入RC可以直接跑计算,而且参考位姿的输入极大的提高了图像配对效果,拍卧室和客厅能直接合成一个组件。

这个位姿信息就是靠手机的imu+摄像头组成的vio系统获取来的,能用,但是想拍大场景很容易跑飞,比如我拍卧室拍的好好的,再来到客厅, 拍完客厅再回卧室,拍照点就全飞了.....

于是有个念头,自己做个安卓手机的slam导航定位,网上看着vins在手机上跑的挺好的,那就开整。

从github上搜vins android 能搜到几个2018 2019年的资料,看着哪个好,先下载下来。

对slam和安卓这些一窍不通,先找个参考。

比如奔跑的蚂蚁写的手机上的SLAM,这里就不加链接了,可以自行搜索。

他就是先装了个Android Studio,跑通了C++的hello world。

那么本节,我这也先装个Android Studio吧。

github里其中一个readme里写了,需要AS的版本在3.0.1以上。去官网看看,最新版2022.3.1.18

就先下载这个吧。

先装上

 装完了,自动打开界面后,这个好像是个引导,需要魔法,不然很多东西装不上。

 这里应该是安装各种包,去自定义看看都有啥

 注意SDK的路径不能有空格啥的,调整一下位置,别啥都往C盘装。

 他说我的电脑支持虚拟机加速,内存搞大些,够用,我实际设置了4GB,他推荐是2GB。

 

注意啊,一定要有魔法,不然可能都装不了。

魔法还剩4GB了,应该够用。

 报了个错,....网上搜了搜,是因为我开了Hyper-V....还得关了,

安装完毕后,编译APP,选择run,会再次提示这个虚拟机的问题,倒时候会自动安装。

最新版好像没有java了,搜了搜,好像是google换了kt语言....全是新东西....

从github上下载的工程都编译不了,和奔跑的蚂蚁的试验结果一样。

按他说的原话,

“与其花大量时间适配这个老工程,还不如把SLAM相关代码,移植到新工程。干~~~”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/898455.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

四、内存管理

1、为什么需要自己实现内存管理 (1)RTOS涉及的内核对象:task、queue、semaphores和event group等。为了让FreeRTOS更容 易使用,这些内核对象一般都是动态分配:用到时分配,不使用时释放。使用内存的动态管理功能,简化了…

使用yolov5进行安全帽检测填坑指南

参考项目 c​​​​​​​​​​​​​​GitHub - PeterH0323/Smart_Construction: Base on YOLOv5 Head Person Helmet Detection on Construction Sites,基于目标检测工地安全帽和禁入危险区域识别系统,🚀😆附 YOLOv5 训练自己的…

Unity导入google.protobuf失败,无法找到google命名空间

问题: 1.刚开始把protobuf的文件夹直接从其他项目里(unity2021)里复制到unity(2020)版本,当时报错protobuf.dll的依赖项system.memory版本不对。 2.没有使用原来的protobuf文件了。使用vs2019的NuGet管理包来下载Google.Protobuf ,仍然报错找…

爬虫学得好,然后呢?最新Python人工智能就业班课程

课程链接: 私信:达内 课程介绍: 【达内最新Python人工智能就业班课程目录】 📚 1. Python核心 🧠 2. 面向对象程序设计 🔮 3. Python高级 💻 4. 阶段项目实战 🐧 5. Linux操作系…

PHP海外代购管理系统mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP 海外代购管理系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 代码下载 https://download.csdn.net/download/qq_41221322/88229435 论文 https://…

python的全局解释锁(GIL)

一、介绍 全局解释锁(Global Interpreter Lock,GIL)是在某些编程语言的解释器中使用的一种机制。在Python中,GIL是为了保证解释器线程安全而引入的。 GIL的作用是在解释器的执行过程中,确保同一时间只有一个线程可以…

win11安装ubuntu 子系统安装过程及注意事项

第一步 :安装系统必须组件 由于子系统是系统自带组件,需要安装软件支持 第二步:应用商店安装 ubuntu 编辑 编辑 这个时候打开会报错 第三步,运行linux子系统 选择Windows PowerShell 以管理员身份运行) 输入&#…

docker基础操作练习

目录 1.安装docker服务,配置镜像加速器 2.下载系统镜像(Ubuntu、 centos) 3.基于下载的镜像创建两个容器 (容器名一个为自己名字全拼,一个为首名字字母) 4.容器的启动、 停止及重启操作 5.怎么查看正在…

微信个人号二次开发过程、微信ipad协议

友情链接:geweapi.com 点击即可访问 大家好,今天给大家介绍下ipad的具体情况以及特点 傻瓜式API,掌握JAVA、Go、PHP、Python等任意一种后端代码,你就可以 通过API 搭建一个 微信机器人功能 ,用来自动管理微信消息 我们…

常用curl参数及样例讲解

1 缘起 后端/后台项目开发过程中,有两个阶段的接口测试和验证,自测阶段,通过Postman构建请求, 自建一些参数,测试功能以及边界条件,这些都是可以自行掌控的,当完成功能验证与前端对接时&#x…

以创新点亮前路,戴尔科技开辟数实融合新格局

编辑:阿冒 设计:沐由 2023年,对于戴尔科技而言是特殊的一年,这是戴尔科技进入中国市场第25个年头——“巧合”的是,这25年也是中国产业经济发展最快,人们工作与生活发生变化最大的四分之一个世纪。 2023年&…

C# 观察者模式

一、概述 观察者模式是一种常用的设计模式,它属于行为型模式。在C#中,观察者模式通过定义一种一对多的依赖关系,使得当一个对象的状态发生变化时,所有依赖于它的对象都会得到通知并自动更新。这种模式可以实现松耦合,…

关键点检测中的对象关键点相似度

在不断发展的计算机视觉领域,理解物体的精确结构和姿态至关重要。无论是检测杂乱场景中的特定物体,还是实时分析人体姿势,关键点都起着至关重要的作用。对象上的这些独特点通常对应于角、边缘或其他可识别部分,用作识别和跟踪对象的锚点。但是我们如何衡量这些检测到的关键…

Java版本说明

java7 当谈到Java 7对应的JDK版本时,Java SE 7是Java 7的官方JDK版本。Java SE(Standard Edition)是Java平台的标准版本,它提供了Java编程语言的核心库和工具。 Java SE 7的JDK版本是JDK 7。你可以通过以下链接下载Java SE 7的J…

最新AI系统ChatGPT程序源码/支持GPT4/自定义训练知识库/GPT联网/支持ai绘画(Midjourney)+Dall-E2绘画/支持MJ以图生图

一、前言 SparkAi系统是基于国外很火的ChatGPT进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。 那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧&#xff01…

Redis中常见的缓存穿透、缓存击穿、缓存雪崩、缓存预热解决方案

文章目录 一、缓存穿透1. 什么是缓存穿透2. 解决方案2.1 无效的key存放到Redis2.2 引入布隆过滤器2.3 如何选择: 二、缓存击穿1. 什么是缓存击穿2. 解决方案 三、缓存雪崩1. 什么是缓存雪崩2. 解决方案2.1 均匀过期2.2 热点数据缓存永远不过期2.3 采取限流降级的策略…

注册中心/配置管理 —— SpringCloud Consul

Consul 概述 Consul 是一个可以提供服务发现,健康检查,多数据中心,key/Value 存储的分布式服务框架,用于实现分布式系统的发现与配置。Cousul 使用 Go 语言实现,因此天然具有可移植性,安装包仅包含一个可执…

【C++学习手札】一文带你认识C++虚继承​​

食用指南:本文在有C基础的情况下食用更佳 🍀本文前置知识:C虚函数(很重要,内部剖析) ♈️今日夜电波:僕らのつづき—柊優花 1:06 ━━━━━━️💟──────── 3:51 …

将Nginx源码数组结构(ngx_array.c)和内存池代码单独编译运行,附代码

在上面一篇的基础上把Nginx源码数组结构也摘录下来,也增加了测试代码,编译运行。 https://blog.csdn.net/katerdaisy/article/details/132358883 《将nginx内存池代码单独编译运行,了解nginx内存池工作原理,附代码》 核心代码&…

C语言刷题训练DAY.8

1.计算单位阶跃函数 解题思路&#xff1a; 这个非常简单&#xff0c;只需要if else语句即可完成 解题代码&#xff1a; #include <stdio.h>int main() {int t 0;while(scanf("%d",&t)!EOF){if (t > 0)printf("1\n");else if (t < 0)pr…