Cartogropher1.0和2.0笔记
文章平均质量分 61
是不是有很多坑!有坑就对了!
wishchin
CV算法工程师:从事室内场景感知方面工作,完成算法实验和软件开发。
展开
-
多项式图搜索:Teaser++用于3D点云重定位
全天候定位是一个麻烦的问题,Agent重定位,自动驾驶有自动驾驶的方法,高速的定位方法是不能主要依赖主动视觉的,低速的方法倒可以。3D点云的Align方法:Teaser++ fast & certifiable 3D registration ,hd_location使用的一个重定位方法,是个非常优秀的3D重定位方法。论文中和RNASAC、ICP效果对比。原创 2024-04-25 14:39:56 · 901 阅读 · 1 评论 -
gtsam:undefined symbol: _ZTVN5gtsam19GaussianFactorGraphE
貌似前面的那个GTSAM_LIBRARY_DIRS 没卵用,有可能是写错了。原创 2024-04-03 14:53:16 · 508 阅读 · 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 · 490 阅读 · 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 · 358 阅读 · 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 · 207 阅读 · 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 · 666 阅读 · 0 评论 -
cartographer的C++1.0的AddRangeData到submap和LBA过程
cartographer并非使用3d或者视觉slam的经典poseLBA过程,而是通过网格优化来进行计算的。1. cartogrpher的AddNode与优化过程。2. range数据到submap的嵌入更新过程。在每一次添加节点的时候进行判断是否优化。端的数据添加,对接参考章节。逻辑里面,调用堆栈到。原创 2023-06-16 15:22:53 · 661 阅读 · 0 评论 -
cartographer1.0 纯定位模式改变
1.0版本已有的纯定位模式,只是做了一件事情-,230509。纯定位模式并没有离开slam模式和优化过程,只是限制了=3选项。且整个工程只使用了pure_loaction一次这个选项!!!原创 2023-06-16 14:47:16 · 1843 阅读 · 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 · 130 阅读 · 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 · 1320 阅读 · 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 · 2595 阅读 · 0 评论 -
Cartographer添加新的传感器接口AddSensorData(
在C++使用addensorData的时候,使用了unique指针的函数指针,暂时不能使用函数函数重载的方式实现。需要使用通过添加新的函数名称的方式实现。原创 2023-06-16 10:34:49 · 338 阅读 · 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 · 279 阅读 · 0 评论 -
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 · 1899 阅读 · 5 评论 -
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 · 1484 阅读 · 0 评论 -
Cartographer纯定位模式优化了什么?
Cartographer1.0纯定位模式做了什么工作呢?设定kSubmapsToKeep = 3。原创 2023-05-08 17:35:44 · 216 阅读 · 1 评论 -
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 · 1230 阅读 · 0 评论