SLAM
文章平均质量分 56
Gone_float
这个作者很懒,什么都没留下…
展开
-
Jetson+zed2安装
nx2下zed2安装原创 2022-07-10 19:35:14 · 800 阅读 · 1 评论 -
Ubuntu下多版本OpenCV共存和切换
查詢opencv版本$ pkg-config --modversion opencv下载OpenCV首先去https://opencv.org/releases.html下载所需版本的Sources版安裝$ cd opencv-3.4.2$ mkdir build$ cd ..$ mkdir installed$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/home/mirrorubuntu/workspace/o原创 2022-04-28 22:20:19 · 2565 阅读 · 0 评论 -
编译运行Cube_slam
mkdir -p ~/cubeslam_ws/srccd ~/cubeslam_ws/srccatkin_init_workspacegit clone git@github.com:shichaoy/cube_slam.gitcd cube_slamCompile dependency g2o sh install_dependenices.shCompilecd ~/cubeslam_wscatkin_make -j4问题1:解决方法1:修改/opt/ros/melodic原创 2022-04-06 17:30:41 · 696 阅读 · 0 评论 -
tensorflow——deeplabv3+训练cityscapes数据集(未完待续)
Unknown: Failed to get convolution algorithm. This is probably because cuDNN我的解决办法:添加下面两行import osos.environ['CUDA_VISIBLE_DEVICES'] = '/gpu:0'/home/mirrorubuntu/models/research/deeplab虚拟环境 tfgpu原创 2022-03-30 19:28:47 · 1115 阅读 · 0 评论 -
粒子滤波器
滤波和slam的关系滤波在slam已过时,无法处理动态场景slam更专注于非线性优化(图优化)+激光slam递推是根据上一时刻估计下一时刻滤波怎么处理:设R1R_{1}R1,…,RKR_{K}RK为传感器方差,则需要把R4R_{4}R4调大fQf_{Q}fQ,fRf_{R}fR都是事先设定的,没有人可以预测到动态物体什么时候会出现,不知道什么时候会把不好的数据去除粒子滤波:静态环境,动态可预测环境贝叶斯滤波:预测:fXk−(x)=∫−∞+∞fQk[x−f(v)]fXk−1+(v)原创 2022-02-24 11:20:57 · 3055 阅读 · 0 评论 -
编译运行Pop-up slam
Create or use existing a ros workspace.mkdir -p ~/popup_ws/srccd ~/popup_ws/srccatkin_init_workspacegit clone git@github.com:shichaoy/pop_up_slam.gitcd pop_up_slamInstall dependency packages of pythonsh install_dependenices.shDownload Datahttps:原创 2022-01-27 17:13:11 · 406 阅读 · 0 评论 -
ORB-SLAM2-建立双目稠密点云(一)
ORB_SLAM2提供位姿信息,elas_ros 提供深度数据,mappingWithPointCloud 节点实现三维点云拼接。在安装之前把所需要的库都装好,这个就不再叙述了下载修改后的ORB_SLAM2源码git clone https://gitee.com/zeende/orb_slam2 ORB_SLAM2_Pointcloud修改build_ros.sh修改文件名下载稠密点云包orbslam2_pointcloud_mappinggit clone https://gitee原创 2021-11-28 20:22:23 · 2467 阅读 · 8 评论 -
重装opencv3.2.0后catkin_make遇到问题-解决方案
修改文件夹文件内容sudo nautilus修改文件夹文件里的内容修改cv_bridgeConfig.cmake重新编译修改,重新编译原创 2021-11-18 16:35:51 · 1337 阅读 · 0 评论 -
ORB-SLAM2双目开源框架 (4) LoopClosing解析
闭环检测(1)计算当前关键帧与其共视关键帧的最低相似性得分minScore,在关键帧数据库中与当前关键帧相似性得分高于minScore的关键帧为候选闭环关键帧vpCandidateKFs(2)将候选关键帧扩展为候选关键帧组,包含候选闭环关键帧及其共视关键帧。对候选关键帧组进行一致性测试:是否与其他候选关键帧共有相同的关键帧。(3)当候选关键帧组的一致性次数超过给定阈值mnCovisibilityConsistencyTh时,则对应的候选关键帧加入mvpEnoughConsistentCandidate原创 2021-11-17 15:31:46 · 350 阅读 · 0 评论 -
ORB-SLAM2双目开源框架 (3) LocalMapping解析
LocalMapping类局部建图线程运行LocalMapping类的Run()函数,该函数接受Tracking类得到的关键帧,对局部地图点进行管理,删除冗余的地图点,构建新的地图点,融合复合的地图点。然后对局部关键帧和局部地图点进行BA优化,相比跟踪线程,得到更加准确的关键帧位姿和地图点位置。由于跟踪线程中对关键帧的选择较为宽松,在局部建图线程中,对关键帧进行更为严格的筛选,并将筛选后的关键帧交给闭环线程,进行闭环检测和优化。处理新关键帧处理关键帧队列中的关键帧,为局部建图的后续工作做准备: 取出关原创 2021-11-16 22:36:30 · 2099 阅读 · 0 评论 -
ZED2+ORB_SLAM3+视觉惯性轨迹保存
在zed2_stereo_inertial.cc 中加入保存轨迹保存代码重新编译命令行cd ~/catkin_wssource ./devel/setup.bashroscore//另开一个命令行cd ~/catkin_wssource ./devel/setup.bash //不知道为什么不执行这一步就无法找到zed.launchroslaunch zed_wrapper zed.launch//另开一个命令行cd ~/catkin_ws/src/ORB_SLAM3rosrun原创 2021-11-15 10:38:34 · 1417 阅读 · 4 评论 -
ORB_SLAM3编译
cd ORB_SLAM3chmod +x build.sh./build.sh1.修改:找到目标所在的文件,比如我上面的就是localMapping.cc里。然后来到地628行,把x3D = x3D_h.get_minor<3,1>(0,0) / x3D_h(3);换成x3D = cv::Matx31f(x3D_h.get_minor<3,1>(0,0)(0) / x3D_h(3), x3D_h.get_minor<3,1>(0,0)(1) /原创 2021-11-11 20:53:10 · 1885 阅读 · 0 评论 -
EVO评估轨迹
cd ~/evo/test/dataevo_traj tum FrameTrajectory_TUM_Format.txt KeyFrameTrajectory_TUM_Format.txt -p --plot_mode=xyz如果有groundtruth.txtevo_traj tum FrameTrajectory_TUM_Format.txt KeyFrameTrajectory_TUM_Format.txt groundtruth.txt -p --plot_mode=xyz得到以下结果原创 2021-11-14 20:30:34 · 1944 阅读 · 0 评论 -
ZED2 ROS下bag包的录制与回放数据
先学习一下基础操作bag包的录制(创建一个bag文件)以小海龟为例,首先我们要明白bag包中记录了ROS系统运行时的***话题***数据首先,执行以下命令:$ roscore$ rosrun turtlesim turtlesim_node $ rosrun turtlesim turtle_teleop_key这时按下键盘上的方向键应该会让turtle运动起来现在让我们录制所有发布的话题首先让我们看看目前有哪些话题:$ rostopic list -v/turtle1/comm原创 2021-11-14 17:45:07 · 2064 阅读 · 0 评论 -
Ubuntu18.04 evo安装
先把python版本从2.7切换到3.6https://blog.csdn.net/qq_38766208/article/details/120982073?spm=1001.2014.3001.5501推荐使用源代码安装方式github地址是:https://github.com/MichaelGrupp/evogit clone https://github.com/MichaelGrupp/evo...原创 2021-11-13 16:49:28 · 1111 阅读 · 0 评论 -
ZED2+ORB_SLAM3
仿照/ORB_SLAM3/Examples/ROS/ORB_SLAM3/src目录下的ros_stereo.cc建立一个新文件,如zed2_stereo_inertial.cc。将代码复制过去,修改以下部分: ros::Subscriber sub_imu = n.subscribe("/imu", 1000, &ImuGrabber::GrabImu, &imugb); ros::Subscriber sub_img_left = n.subscribe("/camera/lef原创 2021-11-11 21:27:23 · 1243 阅读 · 6 评论 -
ORB-SLAM2 ROS运行
ORB-SLAM2 ROS运行在之前ORB-SLAM2非ROS环境下已经编译运行好的条件下,编译ROS1.添加路径在主目录按下ctrl+H会出现隐藏文件选择.bashrc在最后一行添加路径export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/ORB_SLAM2-master/Examples/ROS 然后再终端中运行source ~/.bashrc2.到你的ORB-SLAM2文件夹下打开终端运行下列命令chmod +x ./build_r原创 2021-08-13 21:08:00 · 1554 阅读 · 0 评论 -
ORB-SLAM2发布位姿话题
修改zed_stereo_rect.cc#include<iostream>#include<algorithm>#include<fstream>#include<chrono>#include<tf/transform_broadcaster.h>///#include "../../../include/Converter.h"///#include <nav_msgs/Path.h>///#include .原创 2021-11-10 21:09:21 · 1640 阅读 · 1 评论 -
ORB-SLAM2双目开源框架 (2) Tracking解析
Tracking类Tracking类主要运行Track()函数,完成的主要内容有:双目初始化,跟踪参考关键帧或者跟踪上一帧,重定位,更新局部地图,跟踪局部地图,判断并创建关键帧。双目初始化原创 2021-11-08 20:13:40 · 1428 阅读 · 0 评论 -
ZED2相机标定
1.//打开命令行roscore2.在文件夹下找到common.yaml 文件修改resolution为1//另开一个命令行roslaunch zed_wrapper zed.launch3.启用左右摄像头可视化功能//另开一个命令行rosrun image_view image_view __ns:=view1 image:=/zed/zed_node/left/image_rect_color & rosrun image_view image_view __ns:=vi原创 2021-11-02 22:00:11 · 609 阅读 · 1 评论 -
ORB-SLAM2双目开源框架 (1)
ORB-SLAM2主要由以下三个线程组成:(1)跟踪(Tracking)线程: 计算每帧图像的ORB特征并进行匹配,利用Motion-Only BA估计相机初始位姿,跟踪局部地图,并判断当前图像帧是否为关键帧。当跟踪失败时,利用场景识别(Place Recognition)模块恢复对环境地图点的跟踪。(2)局部建图(Local Mapping)线程: 获取跟踪线程的候选关键帧,管理局部地图中的关键帧和局部地图点,执行局部BA,得到准确度更高的定位和建图精度,最后对候选关键帧进行筛选。(3)闭环(Lo原创 2021-11-01 11:12:27 · 891 阅读 · 0 评论 -
ORB_SLAM2+ZED 2
仿照/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src目录下的ros_stereo.cc建立一个新文件,如zed_stereo_rect.cc。将代码复制过去,修改以下部分: message_filters::Subscriber<sensor_msgs::Image> left_sub(nh, "/zed/zed_node/left/image_rect_color", 1); message_filters::Subscriber<sensor_原创 2021-10-20 20:44:29 · 444 阅读 · 0 评论 -
ORB-SLAM2运行时遇到的问题
https://github.com/raulmur/ORB_SLAM2坑一:usleep问题在include文件夹下 System.h 文件中加上#include <unistd.h>坑二:Pagolin版本Pagolin最新的版本是0.6,这会导致编译不通过将Pagolin的版本换成0.5,重新安装编译坑三:段错误 march=native大坑好不容易可以编译,但是却出现了下面这个问题删除掉ORBSLAM的Cmakelists中的 -march=native 以及 g2原创 2021-10-18 20:15:24 · 800 阅读 · 0 评论 -
ZED双目摄像头 Ubuntu18.04 + ROS melodic + opencv3.4.0 + Cuda10.2 + ZED SDK 3.5.6
1. 安装Ubuntu18.04+ROSmelodic+opencv3.4.0此类网上资料很多,百度一下即可2. 安装CUDA 10.2下载链接:https://developer.nvidia.com/cuda-10.2-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=deblocal下载链接的页面.原创 2021-10-18 10:37:32 · 1166 阅读 · 1 评论 -
ORB特征点均匀化
为什么要把特征点均匀化?纹理丰富的区域提取到的特征点多,弱纹理区域又没什么特征点,导致位姿估算不准。特征点在空间中分布的层次越多、越均匀,特征匹配越能精确的估计出空间几何关系。怎么实现特征点均匀化1.给金字塔分配特征点数量,根据总的图像金字塔层数和待提取的特征点总数,计算每一层图像金字塔中需要提取的特征点数量。金字塔层数越高,分辨率越低,能提取的特征点数量越少。用 总的特征点数目/所有金字塔面积和x某层金字塔面积 就是该层金字塔需要得到的特征点数目。在ORB-SLAM2代码中有微小改动,不按照面积均摊原创 2021-09-24 16:49:28 · 998 阅读 · 0 评论 -
立体匹配SAD算法
1.算法原理SAD(Sum of absolute differences)是一种图像匹配算法。用公式表示为:SAD(u,v)=Sum∣Left(u,v)−Right(u,v)∣SAD(u,v) = Sum{|Left(u,v) - Right(u,v)|}SAD(u,v)=Sum∣Left(u,v)−Right(u,v)∣ 选择最小值。基本思想:差的绝对值之和。此算法常用于图像块匹配,将每个像素对应数值之差的绝对值求和,据此评估两个图像块的相似度。该算法快速、但并不精确,通常用于多级处理的初步筛选。原创 2021-09-18 16:20:32 · 884 阅读 · 0 评论 -
浅析直接法
使用特征点法确实存在一些问题。有没有什么办法能够克服这些缺点呢?我们有以下几种思路:• 保留特征点,但只计算关键点,不计算描述子。同时,使用光流法(Optical Flow)来跟踪特征点的运动。这样可以回避计算和匹配描述子带来的时间,但光流本身的计算需要一定时间;• 只计算关键点,不计算描述子。同时,使用直接法(Direct Method)来计算特征点在下一时刻图像的位置。这同样可以跳过描述子的计算过程,而且直接法的计算更加简单。• 既不计算关键点、也不计算描述子,而是根据像素灰度的差异, 直接计算相原创 2021-09-04 16:53:31 · 323 阅读 · 0 评论 -
学习P3P
P3P 是另一种解 PnP 的方法。它仅使用三对匹配点,对数据要求较少。P3P 需要利用给定的三个点的几何关系。它的输入数据为三对 3D-2D 匹配点。记 3D点为 A,B,CA, B, CA,B,C, 2D 点为 a,b,ca, b, ca,b,c,其中小写字母代表的点为大写字母在相机成像平面上的投影。此外, P3P 还需要使用一对验证点,以从可能的解出选出正确的那一个(类似于对极几何情形)。记验证点对为 D−dD−dD−d,相机光心为 OOO。请注意,我们知道的是 A,B,CA, B, CA,B,C原创 2021-09-03 15:41:18 · 3309 阅读 · 1 评论 -
ROS-Academy-for-Beginners 替换自己的地图模型
我们在slam时都有自己的应用环境,所以得把源代码提供的模型提供为自己要用到的模型。首先了解文件的架构├── CMakeLists.txt├── launch│ ├── include│ │ └── xbot-u.launch.xml #机器人模型(设置机器人初始位置)│ └── robot_spawn.launch #启动launch文件显示仿真环境├── models #仿真空间│ ├── ISCAS_grou原创 2021-08-20 16:52:56 · 546 阅读 · 0 评论 -
ROS-Academy-for-Beginners之ORB-SLAM2 双目视觉初探
现在我们跑通了ROS-Academy-for-Beginners按照 https://www.guyuehome.com/33866 的方法修改对应的文件,重新编译。终端1:$ source ~/catkin_ws/devel/setup.bash$ rospack profile$ roslaunch robot_sim_demo robot_spawn.launch终端2:$ source ~/catkin_ws/devel/setup.bash$ rospack profile$原创 2021-08-19 11:36:14 · 353 阅读 · 0 评论 -
运行 ROS-Academy-for-Beginners
打开一个终端$ source ~/catkin_ws/devel/setup.bash$ rospack profile$ roslaunch robot_sim_demo robot_spawn.launch出现错误解决方法:sudo apt-get install ros-kinetic-yocs-cmd-vel-mux解决!运行python让车车动起来$ source ~/catkin_ws/devel/setup.bash$ rospack profile$ rosru原创 2021-08-18 20:42:57 · 163 阅读 · 0 评论 -
编译ROS-Academy-for-Beginners
我想着学习在仿真环境里搭建ORB-SLAM2框架,所以准备下载这个代码来学习一下。https://github.com/DroidAITech/ROS-Academy-for-Beginners/tree/melodic我是选择了Ubuntu16.04+ROS melodic ,前面的步骤我觉得大家应该都没有什么问题,按照教程来即可。1.创建工作空间catkin_ws在catkin_ws中新建文件夹src$ cd ~/catkin_ws/src$ git clone https://gi原创 2021-08-18 20:00:01 · 270 阅读 · 0 评论