草庐IT

QXRService:基于高通QXRService获取头显SLAM Pose和IMU Data

在上一篇博文的最后提到过,基于高通QXRService已经开发出了能够获取到几乎所有基础数据的工具应用。今天就开始详细讲解如何基于高通QXRService进行程序开发,这一篇主要讲如何获取高通SLAMPose和IMUData。在之前的博文中已经介绍过,由于高通新的SDK在创建几个关键结构体句柄时,需要传入Java虚拟机内存首地址(JavaVM*)以及运行上下文(Context),所以对QXRService的开发是JNI层的Native开发,需要具备一些JNI编程的基础知识。另外,此文的一些具体细节对之前的这一篇博文进行了补充和修正:《QVRService:基于SnapdragonXR-SDK4

SLAM中旋转向量(旋转轴/旋转角)、旋转矩阵、四元数、李代数的相互转化(附C++ Eigen库代码实例)

旋转轴/旋转角、旋转矩阵、四元数、李代数都可以表示旋转,那么这几者的转换是如何实现的呢?绕一个轴,旋转角度的旋转,例如,在三维空间中,以为轴,旋转45°,表示为,注意,旋转轴模长要化为1,旋转角度乘旋转轴即为旋转向量假如有一个点P(1,2,3),那么点P绕轴(0,0.7071,0.7071)转,后的位置,R为旋转矩阵,旋转向量到旋转矩阵的转化通过罗德里格斯公式实现 n右上面一个小帽子表示将向量n(n1,n2,n3)转化为反对称矩阵(skew-symmetirc) 从旋转矩阵转化回旋转轴和旋转角的方法是对旋转矩阵求迹tr(R) 转轴n是旋转矩阵R特征值1所对应的特征向量。通过特征向量的求解方法求

ROS导航实现:SLAM建图(slam_gmapping)与保存(map_server)

导航实现:SLAM建图先安装相关的ROS功能包:安装gmapping包(用于构建地图):sudoaptinstallros--gmapping安装地图服务包(用于保存与读取地图):sudoaptinstallros--map-server安装navigation包(用于定位以及路径规划):sudoaptinstallros--navigation  新建功能包,并导入依赖:gmappingmap_serveramclmove_base,其中gampping用于构建地图,map_server用于保存与读取地图,amcl用于定位,move_base用于路径规划(1)编写gmapping相关的lau

基于ROS的SLAM建图、自动导航、避障(冰达机器人)

SLAM是Simultaneouslocalizationandmapping缩写,意为“同步定位与建图”,主要用于解决机器人在未知环境运动时的定位与地图构建问题。机器人在未知环境中从一个未知位置开始移动,在移动过程中根据位置和地图进行自身定位,同时在自身定位的基础上建造增量式地图,实现机器人的自主定位和导航。小车可以运行ros中激光雷达功能包,在PC端的rviz中可以查看;在启动底盘、键盘控制后可以控制小车移动;根据SLAM算法对实验室的环境进行建图;可以保存、读取地图,在PC端控制小车从A点到B点实现路径规划并自动避障。本文以冰达机器人小车为例,在实际使用过程中遇到了一些问题,总结出的较为

基于ROS的SLAM建图、自动导航、避障(冰达机器人)

SLAM是Simultaneouslocalizationandmapping缩写,意为“同步定位与建图”,主要用于解决机器人在未知环境运动时的定位与地图构建问题。机器人在未知环境中从一个未知位置开始移动,在移动过程中根据位置和地图进行自身定位,同时在自身定位的基础上建造增量式地图,实现机器人的自主定位和导航。小车可以运行ros中激光雷达功能包,在PC端的rviz中可以查看;在启动底盘、键盘控制后可以控制小车移动;根据SLAM算法对实验室的环境进行建图;可以保存、读取地图,在PC端控制小车从A点到B点实现路径规划并自动避障。本文以冰达机器人小车为例,在实际使用过程中遇到了一些问题,总结出的较为

ROS入门——slam之cartographer仿真建图,存图,加载地图

本文主要分享cartographer的安装,并基于上一篇博客中《机器人开发实践》的编译源码仿真机器人,实现仿真建图。在本系列博客下一篇将继续分享实际项目中RoboSense16线雷达基于cartographer的建图历程。一.cartographer的安装安装过程可参考该博客二.cartographer的仿真建图进入cartographer安装的工作空间,激活环境。cd~/catkin_cartographer/sourceinstall_isolated/setup.bash创建文件cartographer_demo_rplidar.launchcd~/catkin_cartographer

ROS入门——slam之cartographer仿真建图,存图,加载地图

本文主要分享cartographer的安装,并基于上一篇博客中《机器人开发实践》的编译源码仿真机器人,实现仿真建图。在本系列博客下一篇将继续分享实际项目中RoboSense16线雷达基于cartographer的建图历程。一.cartographer的安装安装过程可参考该博客二.cartographer的仿真建图进入cartographer安装的工作空间,激活环境。cd~/catkin_cartographer/sourceinstall_isolated/setup.bash创建文件cartographer_demo_rplidar.launchcd~/catkin_cartographer

激光SLAM框架总结

一、激光SLAM简介基于激光雷达的同时定位与地图构建技术(simultaneouslocalizationandmapping,SLAM)以其准确测量障碍点的角度与距离、无须预先布置场景、可融合多传感器、在光线较差环境工作、能够生成便于导航的环境地图等优势,成为目前定位方案中不可或缺的新技术。激光SLAM任务是搭载激光雷达的主体于运动中估计自身的位姿,同时建立周围的环境地图。而准确的定位需要精确的地图,精确的地图则来自于准确的定位,定位侧重自身位姿估计,建图侧重外部环境重建。SLAM系统一般分为五个模块:传感器数据、视觉里程计、后端、建图及回环检测。传感器数据:主要用于采集实际环境中的各类型原

激光SLAM框架总结

一、激光SLAM简介基于激光雷达的同时定位与地图构建技术(simultaneouslocalizationandmapping,SLAM)以其准确测量障碍点的角度与距离、无须预先布置场景、可融合多传感器、在光线较差环境工作、能够生成便于导航的环境地图等优势,成为目前定位方案中不可或缺的新技术。激光SLAM任务是搭载激光雷达的主体于运动中估计自身的位姿,同时建立周围的环境地图。而准确的定位需要精确的地图,精确的地图则来自于准确的定位,定位侧重自身位姿估计,建图侧重外部环境重建。SLAM系统一般分为五个模块:传感器数据、视觉里程计、后端、建图及回环检测。传感器数据:主要用于采集实际环境中的各类型原

视觉SLAM总结——SuperPoint / SuperGlue

视觉SLAM总结——SuperPoint/SuperGlue视觉SLAM总结——SuperPoint/SuperGlue1.SuperPoint1.1网络结构1.2损失函数1.3自监督训练过程2.SuperGlue2.1Sinkhorn算法2.2网络结构2.3损失函数和网络训练视觉SLAM总结——SuperPoint/SuperGlue在我刚开始接触SLAM算法的时候听到过一个大佬讲:“SLAM其实最重要的是前端,如果特征匹配做得足够鲁棒,后端就可以变得非常简单”,当时自己总结过一篇传统视觉特征的博客视觉SLAM总结——视觉特征子综述,由于当时对深度学习了解不够,因此并没有涵盖基于深度学习的视