三维重建/SLAM
文章平均质量分 64
wishchin
CV算法工程师:从事室内场景感知方面工作,完成算法实验和软件开发。
展开
-
3D 高斯泼溅(Gaussian Splatting)-3D重建的3DGS时代
3D重建自从NeRfs出现之后又热闹了一次,3D GS技术一时间燃变了整个三维重建和Slam领域,几个月不见,沧海桑田。3D 高斯泼溅(Splatting)是,它允许实时渲染从小图像样本中学习到的逼真场景。从点云/多面体 到场景渲染,是一个异常 经验性的过程。SIGGRAPH 2023论文奖公布,山大、港大获奖,北大、腾讯光子获提名 - 知乎机器之心报道, 编辑:蛋酱、小舟。近日,计算机图形学及互交技术顶会 SIGGRAPH 2023 公布了今年的技术论文奖项。原创 2024-05-17 09:41:49 · 2423 阅读 · 0 评论 -
基于cartographer2.0 的Ros版本源代码Slam中的代码错误
sudo apt install libgmock-dev,安装了一个新版本,catkin_make编译成功;1. 安装Ubuntu20的Ros版本,把Cart2.0版本编译一下,遇到点小问题。问题:在node.cc和node.h中。2.Ros版本的Slam模式源代码。这个函数有问题,参数错了。则可以使用Slam模式。原创 2023-06-17 10:53:43 · 476 阅读 · 0 评论 -
Cartographer添加新轨迹接口AddTrajectoryBuilderPure(
在接口头文件cartographer/mapping/map_builder_interface.h里面添加这个是纯虚函数,必须在子类里面全部实现定义函数格式在 cartographer/mapping/map_builder.h里面实例化接口实现cartographer/mapping/map_builder.cc同样需要在所有的派生类里面实现实例化。原创 2023-06-17 10:44:20 · 345 阅读 · 0 评论 -
cartographer_ros node_options和trajectory_options参数
在cartographer_ros/cartographer_ros/node_options.h 添加lua控制参数。在cartographer_ros/cartographer_ros/node_options.cc 实现读取。在lua配置文本里面添加submap_pure_wish =false,初始化在 node_main.cc中完成的。原创 2023-06-16 15:51:22 · 193 阅读 · 0 评论 -
cartographer的submap更新和全局优化过程关系
cartographer1.0的submap更新是通过全局位姿优化过程判断的。submaps增长submaps增长:1.只初始化一次,添加的为(0,0);2.只添加一次,添加的数据大小为:;第二次调试数据::76全局优化器,添加submap进行优化..submap_idsnode_id->time,std::vectorSubmapIdconst intconstcommon。原创 2023-06-16 15:40:15 · 646 阅读 · 0 评论 -
cartographer的C++1.0的AddRangeData到submap和LBA过程
cartographer并非使用3d或者视觉slam的经典poseLBA过程,而是通过网格优化来进行计算的。1. cartogrpher的AddNode与优化过程。2. range数据到submap的嵌入更新过程。在每一次添加节点的时候进行判断是否优化。端的数据添加,对接参考章节。逻辑里面,调用堆栈到。原创 2023-06-16 15:22:53 · 645 阅读 · 0 评论 -
cartographer1.0 纯定位模式改变
1.0版本已有的纯定位模式,只是做了一件事情-,230509。纯定位模式并没有离开slam模式和优化过程,只是限制了=3选项。且整个工程只使用了pure_loaction一次这个选项!!!原创 2023-06-16 14:47:16 · 1820 阅读 · 0 评论 -
Cart1.0 :MapBuildOptions、NodeOptions、TrajectoryOptions、TrajectoryBuilderOptions、LocalTrajectoryBuild
5. LocalTrajectoryBuilderOptions2D,可以看到这里包含激光数据处理的参数(距离处理,滤波处理参数,激光匹配参数CSM,是否使用imu参数等,还有移动滤波参数),可以看到这里就是所谓的“前端”参数。1. MapBuildOptions,它的定义是在proto文件中,可以看到它主要是判断SLAM类型(2D/3D),后端参数(位姿图和线程数量),是否整理数据传输组合(待确认collate_by_trajectory)。添加控制参数bool is_in_slam_mode = 6;原创 2023-06-16 13:56:41 · 118 阅读 · 0 评论 -
使用lidar-imu外参标定工具lidar_align
将lidar_align/src/lidar_align/NLOPTConfig.cmake文件移动到lidar_align/src/下(与lidar_align同级)打开lidar_align/src/lidar_align/src/loader.cpp在开头添加个头文件,注释掉odom部分,添加一部分。标定结果保存在 lidar_align/src/lidar_align/results下以包名命名的一个txt文件一个ply文件。所以优先使用标定数据,urdf中的作为初始化就可以了。原创 2023-06-16 12:00:42 · 1278 阅读 · 2 评论 -
imu的静态标定过程-使用imu_utils
IMU标定使用imu_utils工具包,开源见https://github.com/gaowenliang/imu_utils[1],通过该工具包完成标定可以提供IMU的随机误差——noise和random walk。:/home/iben03/kalibr_ws/src/code_utils/src/sumpixel_test.cpp:2:10: fatal error: backward.hpp: 没有那个文件或目录。注意:这个是ros版本,在Ros的catkin_ws空间使用。使用catkin编译。原创 2023-06-16 11:56:45 · 2545 阅读 · 0 评论 -
Cartographer添加新的传感器接口AddSensorData(
在C++使用addensorData的时候,使用了unique指针的函数指针,暂时不能使用函数函数重载的方式实现。需要使用通过添加新的函数名称的方式实现。原创 2023-06-16 10:34:49 · 327 阅读 · 0 评论 -
Cartographer向PoseGrapher里面添加用于控制分支的状态参数
这样在读取的时候,通过Ros版本的lua文件包含的trajectory_builder.lua 文件,则可以加载 is_in_slam_mode = true 控制参数。在开启定位模式的时候,关闭掉一些优化选项,但是我们约定在 isInSlam模式的时候,需要开启相应的更多的优化。通过配置文件trajectory_builder.lua写入配置参数。Ros端使用的配置 revo_lds_wish.lua。可以通过这个逻辑链,使用配置参数控制全局优化的状态。打开C++工程头文件。C++内部的逻辑控制。原创 2023-06-16 09:42:03 · 1214 阅读 · 0 评论 -
Cartographer向proto::TrajectoryBuilderOptions里面添加参数
在Ros端的cartographer_ros/cartographer_ros/trajectory_options.h。make之后生成trajectory_builder_options.pb.cc 一些列文件,编译安装到linux系统中。参数传递却没有传递过去,因为在 时候传递的是 trajectory_builder_options 这个成员。添加 bool is_in_slam_mode = 5;设定 bool is_in_slam_mode =参数添加是通过C++端添加的。原创 2023-06-16 09:19:59 · 1468 阅读 · 0 评论 -
Cartographer纯定位模式优化了什么?
Cartographer1.0纯定位模式做了什么工作呢?设定kSubmapsToKeep = 3。原创 2023-05-08 17:35:44 · 204 阅读 · 1 评论 -
add_library cannot create target “gmock“ because another target with thesame name already exists
CMake Error at /usr/src/googletest/googletest/cmake/internal_utils.cmake:149 (add_library):add_library cannot create target "gmock" because another target with thesame name already exists. The existing target is a static library createdin.原创 2022-05-12 12:08:11 · 1863 阅读 · 5 评论 -
Windows10使用OrbSlam3-VS2017-VC12版本
OrbSlam3集成了IMU信息,可用以VIO融合重建。参考这哥们的地址,依据GitHub上的介绍git clone --recursive 之后编译即可ORBSLAM3 Win10 VS2017 配置简明指南_滥觞LanShang的博客-CSDN博客_orbslam3 windowsGit地址:GitHub - chanho-code/ORB-SLAM3forWindows: ORB-SLAM3 for Windows Platform编译过程:1.使用sourcetree git下载原创 2022-04-02 18:25:52 · 1263 阅读 · 0 评论 -
三维重建18: 图像深度获取
1.根据相机内参矩阵(无畸变)fx 0 u0 fy v0 0 0,和图像中下标(x1,y1),以及点p在空间/世界坐标系中的平面方程,求p的三维坐标(x,y,z)A:canny 参数问题,梯度计算在两个阈值之间不确定时候,如何确认极值是否边缘?A: 近邻确定法,与边缘点存在8近邻,则确认为边缘快速排序A: void quickSort(vector &input, int lo, int hi, int k){if(hi <= lo) return;原创 2020-12-08 07:31:36 · 558 阅读 · 1 评论 -
三维重建:重定位问题
Agent/机器人/相机-重定位问题-位姿重定位问题机器人绑架问题 初始化问题,匹配问题,位姿优化问题1. 位置重定位 天定位--GPS/室内基站 感知定位--基于图像方法2.姿态重定位 天定位--GPS/室内基站 感知定位--基于图像方法...原创 2020-11-27 12:11:08 · 610 阅读 · 0 评论 -
三维重建16:概率图模型 模板类编程
刚刷了一部分网络题,又出了个模板类编程。没人能从面试中得到自己想要的方法,只能得到能看得到的结果!!!一 概率图模型 贝叶斯模型,真是推导不出来了!贝叶斯函数貌似也写不出来了! 参考:斯坦福概率图模型-贝叶斯网络 -https://blog.csdn.net/wishchin/article/details/14136257 参考:ANN-生成式模型-https://blog.csdn.net/wishchin/article/de...原创 2020-11-18 20:51:38 · 342 阅读 · 0 评论 -
三维重建15:最近遇到的-标定-EKF-优化方法等
时间是最好的敌人,再辛苦的东西复盘的时候总是会艮住.....0. ICP算法 参考:三维重建10-点云配准和点云匹配--https://blog.csdn.net/wishchin/article/details/74279021; ICP的论文综述-PCL文档:《A review of point cloud registration algorithms fro mobile robotics》,Iterative Closest Point。IC...原创 2020-11-16 22:43:07 · 475 阅读 · 0 评论 -
RPNet++:人脸对齐faceAlignment和基于CNN的三维人脸恢复
参考,人脸pose检测算法:https://blog.csdn.net/wishchin/article/details/51554036。 人脸的Pose检测需要一个 SolvePNP 的过程,对于固定三维点集模型,找出二维点集对应的位姿。此外,在track时使用点集寻找一个最优的位姿起始,应该给出一个好的起始点。或者,人脸pose检测只需要人脸对齐,同时找到二维人脸的平面即可。 参考总结:https://www.jianshu.com/p/e4b9317a...转载 2020-09-17 10:57:23 · 1063 阅读 · 2 评论 -
三维重建:PNG格式详解-与LibPNG使用
PNG格式详解:https://blog.mythsman.com/post/5d2d62b4a2005d74040ef7eb/LibPNG的使用:https://blog.csdn.net/dreamInTheWorld/article/details/55805901一.PNG格式详解概述PNG是20世纪90年代中期开始开发的图像文件存储格式,其目的是替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性。流式网络图形格式(Portable Network Graphic转载 2020-08-22 10:40:21 · 2478 阅读 · 1 评论 -
ROS-Rtabmap:linux shell运行多个shell(运行多个程序)
在linux中开启多个窗口,需要切换,比较麻烦,可以写入到一个脚本中,可以同时打开多个console/shell。shell代码如下:#!/bin/bash# by wishchin 2020-05-12 version 1.0## # Option “-x” is deprecated and might be removed in a later version of gnome-terminal.## Use “-- ” to terminate the options and pu原创 2020-05-12 11:29:32 · 1813 阅读 · 0 评论 -
PCL:python pcl解码RGB- point_cloud2.read_points rgb
参考:https://answers.ros.org/question/344096/subscribe-pointcloud-and-convert-it-to-numpy-in-python/rgb在C++中的解码方式为:unsigned long rgb = *reinterpret_cast<int*>(&cloud->points[i].rgb)...转载 2020-04-30 13:21:46 · 1831 阅读 · 0 评论 -
Cmake:linux中cmake添加动态库
参考:https://blog.csdn.net/zhuiyunzhugang/article/details/88142908在COLMAP_ADD_EXECUTABLE选项下面添加target_link_libraries(exe libname)比如:COLMAP_ADD_EXECUTABLE(colmap_exe colmap.cc)target_link_librari...原创 2020-04-28 10:10:49 · 1031 阅读 · 0 评论 -
QT: 使用qtchooser修改ubuntu默认的qmake版本
在安装使用QT5.10的时候,出现了qmake指向错误,qmake版本为wishchin-HP-ENVY-Laptop-13-ad1xx:~$ qmake -v QMake version 2.01aUsing Qt version 4.8.7 in /usr/lib/x86_64-linux-gnu而应该显示的版本为:wishchin-HP-ENVY-Laptop-13-ad...原创 2020-04-09 15:52:27 · 1989 阅读 · 0 评论 -
Cartographor定位-shell脚本:不停拉起死掉的程序和脚本
在使用基站进行定位的时候,由于消息格式不一致,且偶尔会有数据缺失,容易造成底层ROS程序出现vector(size()==0 ),现象发生。在运行命令 rosrun nlink linktrack_publisher /dev/ttyUSB0 921600 的时候,总是使shell死掉。 方法:写一个循环拉起脚本 monitor.sh#!/bin/sh...原创 2019-12-14 14:53:27 · 268 阅读 · 0 评论 -
人工机器:jetsonnano推理时出现 Segmentation fault(core dumped)
前期配置:tensorrt+tensorflow+object_detection编译安装填坑教程!!1.在使用此工程:https://github.com/dusty-nv/jetson-inference 进行目标检测时,Deubg时不能import trt.inference,在console端运行出现Segmentation fault(core dumped)错误:原因: 找不...原创 2019-10-14 16:26:16 · 1647 阅读 · 0 评论 -
SLAM: Ubuntu14.04_Kylin安装ROS-Indigo
参考连接:ROS-Indigo版在Ubuntu上的安装第一步: 软件源配置1 增加下载源(增加ubuntu版的ros数据仓库,即下载源)(通用指令适合任何版本的ros)sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.lis原创 2015-12-17 10:41:37 · 2096 阅读 · 0 评论 -
SLAM:使用G2O-ORB-SLAM(编译)
前言: 没有新雪,看看自己所做的事情,有没有前人做过。果然,EKF_SLAM的版本出现了Android版本的OpenEKFMonoSLAM, G2O-ORB SLAM也出现了VS2012版本。原创 2016-01-05 11:40:21 · 10029 阅读 · 9 评论 -
SLAM:(编译ORB)fatal error LNK1181: 无法打开输入文件“libboost_mpi-vc110-mt-1_57.lib”
对于使用MD版本编译的ORB_SLAM,会用到MPI版本的Boost,需要自己编译,比较麻烦。 因此使用MT版本进行生成,暂时无法完成。工程配置 发现添加库文件使用了:从父级或项目默认继承,默认包含了libboost_mpi-vc110-mt-1_57.lib 去掉使用即可编译成功...原创 2016-05-26 16:37:56 · 2604 阅读 · 0 评论 -
SLAM: 图像角点检测的Fast算法(OpenCV文档)
官方链接:http://docs.opencv.org/trunk/doc/py_tutorials/py_feature2d/py_fast/py_fast.html#fast-algorithm-for-corner-detection 原文链接:http://blog.csdn.net/candycat1992/article/details/22285979转载 2015-08-25 15:13:25 · 3510 阅读 · 1 评论 -
SLAM: 图像角点检测的Fast算法(时间阈值实验)
作为角点检测的一种快速方法,FastCornerDetect算法比Harris方法、SIft方法都要快一些,应用于实时性要求较高的场合,可以直接应用于SLAM的随机匹配过程。算法来源于2006年的Edward Rosten 和 Tom Drummond的论文 “Machine learning for high-speed corner detection”,并在(在2010年再次被修订)原创 2015-10-25 16:26:36 · 2735 阅读 · 0 评论 -
ROS:Nvidia Jetson TK1开发平台
原文链接: http://wiki.ros.org/NvidiaJetsonTK11. Nvidia Jetson TK1Jetson TK1 comes pre-installed with Linux4Tegra OS (basically Ubuntu 14.04 with pre-configured drivers). There is also s翻译 2016-06-23 17:51:06 · 1658 阅读 · 0 评论 -
ROS:Nvidia Jetson TK1平台安装使用ROS
原文连接: http://wiki.ros.org/indigo/Installation/UbuntuARMUbuntu ARM install of ROS IndigoThere are currently builds of ROS for Ubuntu Trusty armhf. These builds include most but not翻译 2016-06-23 17:53:04 · 3267 阅读 · 0 评论 -
三维建模:方法之CSG与B-Rep比较
三维模型特征表示方法: 计算机中表示三维形体的模型,按照几何特点进行分类,大体上可以分为三种:线框模型、表面模型和实体模型。如果按照表示物体的方法进行分类,实体模型基本上可以分为分解表示、构造表示CSG(Constructive Solid Geometry)和边界表示BREP(Boundary Representation)三大类。转载 2014-02-17 10:38:30 · 8339 阅读 · 0 评论 -
SLAM:ORB-SLAM 位姿优化描述
因为摄像机标定(camera calibration)和追踪(tracking)的精度不够。摄像机标定的误差会体现在重建中(比如三角法重建时),而追踪的误差则会体现在不同关键帧之间的位姿中,和重建中(单目)。误差的不断累积会导致后面帧的位姿离实际位姿越来越远,最终会限制系统整体的精度。转载 2016-08-05 12:00:19 · 5629 阅读 · 0 评论 -
SLAM: Orb_SLAM中的ORB特征
ORB是是ORiented Brief 的简称。ORB的描述在下面文章中:Ethan Rublee and Vincent Rabaud and Kurt Konolige and Gary Bradski,ORB: an efficient alternative to SIFT or SURF, ICCV 2011没有加上链接是因为作者确实还没有放出论文,不过OpenCV2.3RC中已经有了实现,WillowGarage有一个talk也提到了这个算法,因此我不揣浅陋,在这里总结一下。转载 2015-12-03 15:45:00 · 5409 阅读 · 1 评论 -
ROS:ubuntu-Ros使用OrbSLAM
一般无误的官方连接:https://github.com/raulmur/ORB_SLAMRelated Publications:[1] Raúl Mur-Artal, J. M. M. Montiel and Juan D. Tardós. ORB-SLAM: A Versatile and Accurate Monocular SLAM System.IEEE Tra原创 2016-01-06 16:27:46 · 9545 阅读 · 2 评论 -
ROS:ubuntuKylin17.04-Ros使用OrbSLAM2
忙于图像处理和DCNN,很长时间不使用ROS,重新安装系统后,再次使用ORB-SLAM2(ROS)进行三维重建和实时追踪的演示。 参考以前的文章:ROS:ubuntu-Ros使用OrbSLAMORB-SLAM2(ROS)的GitHub链接: raulmur的主页:https://github.com/raulmur/ORB-SLAM2使用...翻译 2017-05-16 11:37:45 · 963 阅读 · 1 评论