需求和想法:
在安卓手机上实现SLAM中的定位与轨迹,或者 VINS在Android上的实现。
**现有需求:**针对SLAM的算法:VINS-MONO(港科大的一套基于单目相机的SLAM项目),移植到安卓手机上,进行定位和轨迹构建。
**可衍生的功能:**接入VINS-Fusion融合GPS定位,imu多传感器融合,地图构建与保存,多点导航等。
概念介绍:
SLAM(同步定位与建图) 技术:机器人在未知环境中从一个未知位置开始移动,在移动过程中根据位置和地图进行自身定位,同时在自身定位的基础上建造增量式地图,实现机器人的自主定位和导航。
基于ROS系统上,SLAM技术越加成熟,依托机器人的自主移动或手动构建,可实现:建图、定位、点云构建和三维重建等。
VINS属于单目视觉惯导SLAM系统的一套开源算法,作者来自香港科技大学沈劭劼团队,其中包含了三个项目,Vins-Mono、VINS-Fusion、Vins-Mobile。其中,前两个是基于ROS系统的,最后一个是基于苹果6S以上手机版本的。
【快速传送门】
1.VINS在安卓手机上实现(还未写)
2.安卓相机标定、安卓相机IMU联合标定
https://blog.csdn.net/qq_33315364/article/details/123779650
技术选型:
- 安卓端:基于开源项目Vins-Mobile和Vins-On-Android进行移植和二次开发应用。
- SLAM算法:考虑到主流安卓手机前/后摄像头是单目相机的特性,选用Vins-Mono进行SLAM的定位和建图。
- 标定工具介绍:
标定是指相机和IMU的校准工作,在图像测量或者机器视觉应用中,起到非常关键的作用,其标定结果的精度及算法的稳定性直接影响相机工作产生结果的准确性。
单目标定:camera_calibration 功能包或kalibr工具标定都可。
IMU标定:imu_utils进行标定
imu和相机联合标定:使用kalibr工具
博主tips:尽量避开使用camera_calibration 功能包进行编译。考虑到精确性和一致性的问题,单目、双目和imu相机联合标定,使用Kalibr工具完成标定,更贴合VINS的参数配置。
软硬件环境介绍:
硬件:
笔记本一台(Dell 8+128G)
手机:Pixel2(android 7.0)
标定板(制作方法在后面的文章)
软件及环境:
Linux: Ubuntu18.04并安装ROS系统 Melotic
WIN10:Android stdio 3.1;android-ndk-r17c-windows-x86_64;
参考链接(如有侵权,联系删除):
https://github.com/HKUST-Aerial-Robotics/VINS-Mobile
https://blog.csdn.net/u011089570/article/details/83272308