![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Cartographer
文章平均质量分 94
2d 激光slam cartographer 阅读笔记
xiaoma_bk
这个作者很懒,什么都没留下…
展开
-
cartgrapher ukf 代码清晰属实不错
cartographer 老板中 UKF 解读后期cartographer把该部分去掉了,实时构建的地图激光匹配,理论也是连续的,UKF无形增加了计算量。原创 2022-12-05 18:45:26 · 767 阅读 · 0 评论 -
real-time loop closure in 2D LIDAR SLAM 论文整理
cartographer整体:主要论文: 1.1 Real-Time Loop Closure in 2D LIDAR SLAM , ICRA 2016 1.2 Efficient Sparse Pose Adjustment for 2D Mapping(SPA) 1.3 Real-Time Correlative ...原创 2018-07-19 17:17:55 · 7667 阅读 · 0 评论 -
cartographer位姿估计整理
cartographer位姿估计整理代码所在目录:cartographer/mapping/pose_extraplator.cc /.h中代码整体框架:cartographer在扫描匹配阶段(realtimescanmatcher Ceres 非线性优化)之前,使用 优化后的位姿、IMU、码盘 三个数据源进行融合,估计出最新时刻的位姿,用来作为下次非线性优化的初值。下面,针对这部...原创 2018-07-20 11:09:58 · 3079 阅读 · 0 评论 -
cartographer 添加约束 /分支界定法
1.调用添加约束函数 ComputeConstraint 中(pose_graph_2d) 调用 MaybeAddConstraint MaybeAddGlobalConstraint if (maybe_add_local_constraint) { const transform::Rigid2d initial_relative_pose =...原创 2018-10-13 19:17:44 · 5642 阅读 · 0 评论 -
cartographer PoseGraph2D
所处:LocalTrajectoryBuilder2D cartographer/mapping/internal/2d/pose_graph_2d.cc /.h中LocalTrajectoryBuilder2D 类在 map_build.cc 中 AddTrajectoryBuilder 函数中被构造主要函数:1. AddNode 在 GlobalTrajectoryBu...原创 2018-08-01 10:30:31 · 1770 阅读 · 0 评论 -
cartographer 前端两种匹配
目录1.相关性扫描匹配:1.1 输入 :1.2 步骤:2.ceres 优化:2.1 输入 : 2.2 步骤:3.输入数据的坐标关系cartographer 前端 相关性扫描匹配 和 ceres 优化两种1.相关性扫描匹配:double RealTimeCorrelativeScanMatcher2D::Match( const tran...原创 2018-12-17 14:25:03 · 4336 阅读 · 4 评论 -
cartographer LocalTrajectoryBuilder2D
1. 所处:LocalTrajectoryBuilder2D cartographer/mapping/internal/2d/local_trajectory_build_2d.cc /.h中LocalTrajectoryBuilder2D 类在 map_build.cc 中 AddTrajectoryBuilder 函数中被构造2. 主要函数:函数一、AddRangeData...原创 2018-07-23 21:57:52 · 1737 阅读 · 5 评论 -
cartographer 体素滤波器 voxel_filter.cc
1、简介:在cartographer/sensor/internal/voxel_filter.cc在localTrajectoryBuild_2d.cc 中被调用 const sensor::PointCloud& filtered_gravity_aligned_point_cloud = sensor::AdaptiveVoxelFilter(option...原创 2018-10-24 15:25:24 · 3350 阅读 · 0 评论 -
cartographer 占据概率相关
1. 所处probablity_Value.h/ccprobability_grid.h/cprobability_grid_range_data_insert.h/cc2.相关公式2.1 基本概念对于栅格化地图中的一个cell, 或者说一个pixel,它的状态可能有两个状态:s= 1:表示该点被occupied的 s=0:表示该点是Free的对于同一个点用两个...原创 2018-07-20 19:34:31 · 4036 阅读 · 0 评论 -
cartographer 生成子图
红色代表接下來准备解释的函数。。1、生成子图调用函数在local_trajectory_builder_2d.ccInsertIntoSubmap函数 中 std::vector<std::shared_ptr<const Submap2D>> insertion_submaps = active_submaps_.InsertRa...原创 2019-01-04 15:06:28 · 6787 阅读 · 0 评论 -
cartographer 点云同步处理
点云同步对于单帧数据无影响,对于多帧数据,延时一帧1.点云同步处理的类RangeDataCollatorclass RangeDataCollator { public: explicit RangeDataCollator( const std::vector<std::string>& expected_range_sensor_ids) ...原创 2018-12-26 15:52:06 · 1901 阅读 · 2 评论 -
cartographer tsdf插入子图
函数 virtual void Insert(const sensor::RangeData& range_data, GridInterface* grid) const override;步骤1.首先获得截断距离从lua中读取2.设定TSDF类静态转换,基类转换为子类 TSDF2D* tsdf = static_cast&...原创 2019-04-16 15:49:31 · 1034 阅读 · 0 评论 -
cartographer 老版本 UKF
1.kalman_filter定义1.1.高斯分布类定义高斯分布类定义高斯分布类,T表示数据类型 ,N表示状态变量的维数这里的数据类型一般都是int float double之类的.template <typename T, int N>class GaussianDistribution{public: //构造函数 需要指定高斯分布的均值和协方差 Gaus...原创 2019-04-24 14:46:42 · 1601 阅读 · 0 评论 -
cartographer 安装/编译
目录1. ceres安装系统中2.catkin_make 编译官网下载github 直接下载安装依赖 src目录编译+安装系统 src目录catkin tools安装+cartographer编译安装测试1. ceres安装系统中git clonehttps://github.com/ceres-solver/ceres-solver.git安装依赖...原创 2018-04-12 09:48:27 · 2948 阅读 · 0 评论 -
cartographer使用
1.cartographer开启 launch文件 <launch> <arg name="configuration_directory" default="$(find cartographer_launch)/configuration_files"/> <arg name="configuration_basename" default="t...原创 2018-05-19 17:28:52 · 3083 阅读 · 0 评论 -
Cartographer 代码逻辑
根据cartographer资料自己整体整体理论概述 里面有scan与submap的匹配,这部分的匹配方法是有scan_matching 中的RealTimeCorrelationScanMatcher实现的。还有一个匹配是在完成闭环检测的全局位姿优化的时候会涉及到点集的匹配(后台程序),这个部分的点集匹配算法使用的是FastCorrelationScanMatcher,两个部...转载 2018-04-19 10:55:33 · 8180 阅读 · 7 评论 -
cartographer 子图和节点的优化
1、涉及到的类型1. MapById<SubmapId, SubmapSpec2D> submap_data_;SubmapId int trajectory_id; int submap_index;struct SubmapSpec2D {transform::Rigid2d global_pose;};2.transform::Rigi...原创 2018-09-06 19:40:02 · 4409 阅读 · 1 评论 -
cartographer VoxelFilter
相关知识:一、PCL—低层次视觉—点云滤波(初步处理)1.点云滤波的概念点云滤波是点云处理的基本步骤,也是进行 high level 三维图像处理之前必须要进行的预处理。其作用类似于信号处理中的滤波,但实现手段却和信号处理不一样。我认为原因有以下几个方面:点云不是函数,对于复杂三维外形其x,y,z之间并非以某种规律或某种数值关系定义。所以点云无法建立横纵坐标之间的联系。点云在空间...原创 2018-08-30 16:22:31 · 3443 阅读 · 2 评论 -
cartographer MapBuilder
所处:MapBuilder cartographer/mapping/map_builder.cc /.h中MapBuilder 类在 node_main.cc(主函数) 中 Run()函数中被构造主要函数:1.LoadState 被 map_builder_bridge.cc调用 map_builder_->LoadState(&stream, lo...原创 2018-08-02 22:51:10 · 1104 阅读 · 0 评论 -
cartographer 与karto比较
cartographer与karto的比较1. 两者采取的都是图优化框架。 采取的优化库不一致, karto采取的是spa(karto_slam)或g2o(nav2d), cartographer采取的是google的ceres构建problem优化。 karto的前端与后端采取的是单线程进行,cartographer按paper说明,采取的是4线程后端优化,还在进一步确定。2. 运动预...转载 2018-08-03 16:25:05 · 1895 阅读 · 0 评论 -
cartographer landmark优化问题
一、添加landmark代价中涉及到的类型void AddLandmarkCostFunctions( const std::map<std::string, LandmarkNode>& landmark_nodes, bool freeze_landmarks, const MapById<NodeId, NodeSpec2D>& ...原创 2018-09-04 23:25:08 · 3351 阅读 · 0 评论 -
cartographer 处理IMU(激光,里程计等)流程
1、cartographer_ros入口文件:node_main.cc入口函数main,如下图: ::ros::init(argc, argv, "cartographer_node"); ::ros::start(); cartographer_ros::ScopedRosLogSink ros_log_sink; cartographer_ros::Run();2...原创 2018-08-03 16:19:27 · 12026 阅读 · 18 评论 -
cartographer OptimizationProblem2D
所处:MapBuilder cartographer/mapping/inter/optimization/optimization_problem_2d.cc /.h中 Pose_graph_2d.cc 中 RunOptimization()optimization_problem_->Solve(data_.constraints, GetTrajectoryStates(...原创 2018-08-31 09:39:10 · 875 阅读 · 0 评论 -
cartographer amcl 栅格地图统一
一、缘由 1.occupancy_grid_node_main.cc节点将子图转化为栅格地图发出去cartographer运行过程中动态发布的nav_msgs/OccupancyGrid格式的topic可作为地图用于navigation。occupancy_grid_node_main.cc 发布出的栅格地图 值 -1 【0-100】 的int value实测可以直接使用,但在运...原创 2018-10-08 11:28:31 · 4100 阅读 · 7 评论 -
cairo学习
cairo学习1. 合成运算符1.1 Example images1.1.1 The Destination1.1.2 Setting the compositing operator1.2 Operaters1.2.1 CAIRO_OPERATOR_CLEAR1.2.2 CAIRO_OPERATOR_SOURCE1.2.3 CAIRO_OPERATOR_OVER1.2.4 CAIRO_OPERA...原创 2019-10-24 17:49:59 · 1073 阅读 · 0 评论 -
cartographer 线程池+队列
C++简单线程池1.线程池1.1 线程池定义1.2 为何使用线程池1.3 线程池的工作原理1.5 工作者线程&I/O线程1.线程池1.1 线程池定义简单来说就是有一堆已经创建好的线程(最大数目一定),初始化时他们都处于空闲状态,当有新的任务进来时,从线程池中取出一个空闲的线程处理任务,然后当任务处理完成之后,该线程被重新放回到线程池中,供其他的任务使用,当线程池中的线程都在处理任务...原创 2019-10-08 22:46:20 · 1397 阅读 · 4 评论 -
cartographer Tsdf insert
carto tsdf1. range insert tsdf1.1地图是否生长:1.2 为“ range_data”中的每个“ return”估算法线1. range insert tsdf参数:const sensor::RangeData& range_data, GridInterface* grid即:激光点云数据 + 栅格1.首先获得截断距离 默认0.2m, 从.lu...原创 2019-11-25 13:55:08 · 191 阅读 · 0 评论