- 博客(600)
- 收藏
- 关注
原创 c++--std::deque
std::deque使用std::deque你需要频繁地在序列的开头和结尾插入或删除元素。这是它相对于的主要优势。
2025-08-25 17:33:27
573
原创 cmake--CPack/deb
怎么使用cmake把项目的依赖想打包为deb包,把项目的可执行文件和依赖文件打包为deb包,又怎么样配置apt源,让项目在jenkins构建之后,可以通过sudo apt install 下载deb包和安装到任意主机上?
2025-08-24 14:36:59
55
原创 c++--文件头注释/doxygen
但为了代码的可读性和一致性,建议遵循一定的逻辑顺序。,由 Apache 软件基金会(ASF)制定,广泛用于允许商业使用、修改和分发的开源项目。Apache License 2.0(Apache 2.0 许可证)是一种。在生成的文档(如 HTML/PDF)中显示。所以对于公司项目,不可使用这个许可证。在 Doxygen 的文件头注释中,Doxygen 会自动将。
2025-08-17 21:10:14
338
原创 slam--代价地图
例如:直接位于障碍物上、非常靠近障碍物、位于禁止通行区域、地面不平或有坡度、交通拥堵区域等。根据AGV轮廓和所需安全距离,在障碍物周围生成一个“膨胀”的高代价区域,确保AGV本体不会碰到障碍物。表示该位置非常适合AGV自由、安全、高效地通过。例如:空旷、平坦、远离障碍物的通道。它本质上是个网格地图,每个格子有个代价值,代表通过该区域的难度。基于预先加载的静态地图(墙壁、固定设备)和长期障碍物。实时更新障碍层的信息(添加新障碍物、移除消失的障碍物)。尽可能选择平坦、宽敞、直线距离短的路径。
2025-08-12 16:39:45
402
原创 slam---占用地图
占用地图将环境划分为离散单元(通常是二维栅格),每个单元存储一个值,表示该位置被障碍物占据的概率或状态。-- 该区域被占用的概率。
2025-08-12 16:39:36
307
原创 time--ctime
类型的时间戳(通常是自 1970-01-01 00:00:00 UTC 的秒数)转换为。格林尼治标准时间,以伦敦格林尼治天文台的本地平太阳时为基准,曾是全球时间的参考标准。基于原子钟的国际标准时间,与 GMT 几乎相同(误差在 ±0.9 秒内)。由于地球自转速度不均匀,GMT 逐渐被更精确的。仍被沿用,但实际表示的是。中的一个函数,用于将。
2025-08-07 14:45:47
45
原创 升级g++编译器
例如 Ubuntu 22.04 默认提供 GCC 11,但开发者可能需要 GCC 12/13/14 支持新特性(如 C++20/C++23)。为了确保软件包的安全性,系统会自动下载并信任该 PPA 的签名密钥。:Ubuntu 22.04 的代号,系统会根据你的发行版自动匹配。(被注释):表示源代码包的仓库地址(默认不启用,开发者才需要)。,这些版本通常比 Ubuntu 官方仓库提供的默认版本更高。是该团队下的 PPA 名称(通常包含较新的测试版软件)。的仓库地址(可安装编译好的程序)。
2025-08-07 10:24:27
164
原创 c++--模板--实例化
注意,在最终的代码中,只有编译单元(一个.cpp文件就是一个编译单元),没有头文件之说,所以,即使你的模板放在头文件中,最终头文件也只是插入到元文件中作为一个编译单元。所以模板的实例化是直接在每一个编译单元中实力化。那么多而编译单元,如果实例化出相同的函数或者对象,怎么办?链接时,链接器会保留其中一份(通常通过 COMDAT 节去重),但,拖慢编译速度(这句话来源于deepseek)。
2025-08-02 15:35:00
354
原创 ros2--参数指令--rqt
ros2 param describe 节点名 参数。刚打开没有参数,需要点击节点名,才会现实出参数。ros2 param get 节点名 参数 值。ros2 param get 节点名 参数。
2025-07-31 23:10:10
51
原创 c++11----std::tuple
tuple--元组。在C++中,tuple是一种数据结构,用于将多个值组合在一起,形成一个有序的元组。每个值在tuple中都有一个对应的索引,可以通过索引来访问和操作其中的值。
2025-07-27 15:00:03
38
原创 c++17--std::variant
是 C++17 引入的一个类型安全的联合体(union)替代品,它允许存储多种不同类型的值,但在任何时候只能存储其中一种类型的值。
2025-07-27 14:25:30
24
原创 docker--挂载
挂载类型,“bind”:表示这是一个绑定挂载。绑定挂载将宿主机上的目录或文件映射到容器中。是要搜索的关键词(即 Docker 容器挂载信息的 JSON 字段)。(空字符串):默认值,表示未显式指定,实际行为由。:控制挂载点的传播方式(影响子挂载的可见性)。:只读挂载(容器内无法修改挂载内容)。:读写挂载(容器内可修改挂载内容)。:布尔值,直接控制挂载是否可读写。主要用于嵌套挂载的场景(如挂载。:宿主机被挂载的路径(如果是。:指定挂载的读写模式(
2025-07-21 11:17:25
172
原创 docker--程序自启动
能否在docker的ubuntu环境中创建service?不能。原因:这个错误表明你的系统没有使用systemd作为初始化系统(init system)。Ubuntu 通常默认使用systemd,但某些特殊环境(如 Docker 容器、WSL 或某些嵌入式系统)没有使用systemd。
2025-07-18 13:41:15
351
原创 ubuntu--自启动程序
记录终端会话的所有输出(包括颜色等控制字符)。-q:静默模式(不显示script自身的提示信息,如-c "...":指定要运行的命令(这里是你的程序路径)。/dev/nullscript默认会把所有输出写入一个文件,这里用/dev/null丢弃这个文件(因为我们用tee自己管理日志)。如果没有在script命令中指定输出文件(即省略/dev/null),script默认会将终端会话记录保存到当前目录下名为 typescript的文件中。execshell 直接执行script。
2025-07-16 23:44:19
309
原创 rxcpp--composite_subscription
composite复合的,混合的。RxCpp中的`composite_subscription`是一个,它允许你将多个订阅组合在一起,然后通过一个`unsubscribe()`调用来取消所有这些订阅。这在需要同时取消多个订阅的场景下非常有用,比如在销毁一个对象时取消所有相关的异步操作。1. **组合订阅**:可以将多个订阅添加到同一个`composite_subscription`对象中。
2025-07-06 22:57:39
175
原创 rxcpp--原理和使用
RxCpp基于两个核心概念:**Observable**(可观察对象)和**Observer**(观察者),以及操作符(Operators)来连接它们。- **OnNext**:传递一个新的数据项。- **OnError**:传递一个错误,并终止流。- **OnCompleted**:表示流正常结束,不再有数据。数据的发布段。- 订阅Observable,并处理它发出的信号。无论显式还是隐式,每个 Observer 必须实现三个方法:- **on_next**:处理OnNext信号。
2025-07-06 22:11:58
993
原创 rxcpp--基础
RxCpp(Reactive Extensions for C++)是一个用于C++的响应式编程库,它基于观察者模式、迭代器模式和函数式编程的思想,提供了一种处理异步数据流和事件流的强大方式。RxCpp是ReactiveX(Rx)系列的一部分,ReactiveX在多种语言中都有实现(如RxJava、RxJS、Rx.NET等)。RxCpp的主要编程语言是C++,它是一个纯头文件库,依赖于标准C++库。
2025-07-06 20:57:05
199
原创 boost--io_service/io_context
Boost.Asio的核心类,其中维护了一个任务队列,用来存储异步的IO请求事件。work: 可以防止io_service里注册的所有事件完成时退出。是一个强大的跨平台网络和底层I/O编程库,专门用于处理。负责处理异步事件和任务。当没有任何工作项时,将会停止并且不能再接受新的任务。一直处于活动状态,可以创建一个。在 Boost.Asio 中,方法来执行异步操作。
2025-07-04 21:11:43
54
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人