摘要: 主要的测试类 //测试纯虚函数的用法 class Animal{ public: Animal() = default; ~Animal() = default; virtual string color() = 0; static bool eat(); }; bool Animal::eat() 阅读全文
posted @ 2023-04-23 14:58 水水滴答 阅读(3) 评论(0) 推荐(0) 编辑
摘要: LocalParameterizations are deprecated in Ceres Solver 2.2.1 LocalParameterization -> Manifold ceres2.2.1之前的版本用的是LocalParameterizations来定义优化量的定义和求导,在之后 阅读全文
posted @ 2023-04-23 09:44 水水滴答 阅读(10) 评论(0) 推荐(0) 编辑
摘要: c++11新标准中decltype类型指示符:作用是选择并返回操作数的数据类型 在此过程中,编译器分析表达式并得到它的类型,却不实际计算表达式的值。 decltype与引用 (1)如果表达式的内容是解引用,则decltype将得到引用类型 (2)如果decltype给变量加上一层或多层括号,编译器就 阅读全文
posted @ 2023-04-20 16:22 水水滴答 阅读(42) 评论(0) 推荐(0) 编辑
摘要: const关键要点: 1、必须初始化 2、不能被重新赋值 3、不能将常量引用绑定到普通对象上,会报错 error: binding reference of type ‘int&’ to ‘const int’ discards qualifiers 4、可以将普通对象的常量引用赋值给普通对象 5、 阅读全文
posted @ 2023-04-20 16:17 水水滴答 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 类模板的几个简单测试例程 几个要点: (1)类模板类型,在实例化时需要显式类型名称 (2)已经显式类型后,传入的参数如果不是相应类型,则会发生强制转换 (3)在类外定义的成员函数,需要加上模板参数列表和类作用域,且类作用域带类型列表 (4)多个参数模板时,可以在函数中使用其中若干个,不用全部都使用。 阅读全文
posted @ 2023-04-17 10:46 水水滴答 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 模板函数的几种常见写法 几个要点 (1)设置了几个模板类型,就要在函数参数里面至少用一次 (2)函数模板类型名称和其他类型不可重名 (3)函数模板类型不支持隐式类型转换,除非显式类型名称 (4)模板函数和普通函数重载,优先匹配到普通函数 // // Created by ht on 2023/4/1 阅读全文
posted @ 2023-04-16 22:51 水水滴答 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 前言: explicit是为了自定义类在初始化或赋值时,发生数据类型隐性强制转换为类类型。 特点: 1、只对单实参的构造函数有效 2、只能在类内声明构造函数是用explict,在类外定义时不写explicit 3、explicit的构造函数在生成对象时,只能用直接初始化,不能赋值 示例1: clas 阅读全文
posted @ 2023-04-14 21:31 水水滴答 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 在c++ 11标准库中,加入了std::tie,在c++ 14中改进,方便使用。 其与tuple关系密切, 主要目的是方便地使用tuple std::tie 一般std::tie有2个作用: 创建一个std::tuple; 解包标准库中的一些集合类,简化访问方法。 元组 std::tuple 元组t 阅读全文
posted @ 2023-04-10 18:39 水水滴答 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 参考官网文档:https://google-cartographer-ros.readthedocs.io/en/latest/compilation.html#system-requirements ubuntu20.04 + neotic ros sudo apt-get update sudo 阅读全文
posted @ 2023-04-10 14:23 水水滴答 阅读(63) 评论(0) 推荐(0) 编辑
摘要: VINS FUSION里面对时间做了封装,如下 #include <ctime> #include <cstdlib> #include <chrono> class TicToc { public: TicToc() { tic(); } void tic() { start = std::chr 阅读全文
posted @ 2023-04-06 15:30 水水滴答 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 树莓派4b,内存4g,4核,运行cartographer的情况: ![](https://img2022.cnblogs.com/blog/1044586/202206/1044586-20220628152302950-2054355318.png) 目前除cartographer,其他节点起的也 阅读全文
posted @ 2022-06-28 15:26 水水滴答 阅读(269) 评论(0) 推荐(0) 编辑
摘要: ### 前言 #### 几个关键数据结构 * submap:父类,由submap2d继承后,还会有栅格类型等的属性 ``` //子图的局部位姿 const transform::Rigid3d local_pose_; //子图包含的激光帧数 int num_range_data_ = 0; //子 阅读全文
posted @ 2022-06-23 10:17 水水滴答 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 树莓派开机桌面没有了,连上显示器发现提示Read-only file system 先用命令 ` df -T -h ` 查看文件系统ext4挂载名称 然后执行下面的修复命令 ` fsck.ext4 -y /dev/vdb1 ` /dev/vdb1就是树莓派ext4分区的挂载名称 完成后reboot 阅读全文
posted @ 2022-06-21 10:46 水水滴答 阅读(181) 评论(0) 推荐(0) 编辑
摘要: Node node(node_options, std::move(map_builder), &tf_buffer, FLAGS_collect_metrics); c++11: std::move 是将对象的状态或者所有权从一个对象转移到另一个对象,只是转移, 没有内存的搬迁或者内存拷贝所以可以 阅读全文
posted @ 2022-06-20 08:58 水水滴答 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 概要: emplace内部实现是多参数模板,保证在插入对象的时候,直接插入构造函数的参数列表。如下例子中,自定义类C的插入 #include <iostream> #include <thread> #include <unistd.h> //休眠时间 #include <vector> using 阅读全文
posted @ 2022-06-17 10:41 水水滴答 阅读(431) 评论(0) 推荐(0) 编辑
摘要: 报错如下: com.jetbrains.cidr.execution.debugger.backend.gdb.GDBDriver$GDBCommandException: ptrace: Operation not permitted. 解决: 编辑/etc/sysctl.d/10-ptrace. 阅读全文
posted @ 2022-06-16 09:47 水水滴答 阅读(625) 评论(0) 推荐(0) 编辑
摘要: 1、常用快捷键(不区分大小写) Run > Start Debugging (F5) debug View > Run (Ctrl+Shift+D) 运行并且debug View > Search (Ctrl+Shift+F) 全局搜索 这些快捷键都可以修改,定制符合自己的快捷方式: 文件 > 首选 阅读全文
posted @ 2022-06-15 14:15 水水滴答 阅读(71) 评论(0) 推荐(0) 编辑
摘要: https://zhuanlan.zhihu.com/p/404552723 在跟着上面教程,对cartographer配置clion环境时,报GMOCK_LIBRARY的错误 修改三个地方: cartographer文件夹下的CMakelists.txt文件中GMOCK_LIBRARY改为GMOC 阅读全文
posted @ 2022-06-15 11:41 水水滴答 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 编译carto时报错: Could not import extension sphinx.builders.latex (exception: cannot import name 'contextfunction' from 'jinja2' 原因: sphinx和jinja2版本不匹配 解决: 阅读全文
posted @ 2022-06-15 10:54 水水滴答 阅读(1533) 评论(0) 推荐(0) 编辑
摘要: ### 准备 * 1、终端起roslaunch cartographer_ros bslidar.launch * 2、clion里面:Run ==> Attach to Process,在下拉框中选择cartographer_node来执行,可以debug debug栏中可以看到线程信息,从下到上 阅读全文
posted @ 2022-06-15 09:08 水水滴答 阅读(241) 评论(0) 推荐(0) 编辑