自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

搬砖人的自我修养

自动驾驶规控算法领域的知识记录

  • 博客(49)
  • 收藏
  • 关注

原创 8-选择静态或共享库

此时,如果您构建了所有内容,您可能会注意到链接失败,因为我们正在将不依赖位置的静态库与具有位置依赖的库组合在一起。在本节中,我们将展示如何使用BUILD_SHARED_LIBS变量来控制add_library()的默认行为,并允许控制如何构建没有显式类型的库(STATIC、SHARED、MODULE或OBJECT)。要做到这一点,我们需要将BUILD_SHARED_LIBS添加到顶级的CMakeLists.txt中。接下来,我们需要为静态库和共享库指定输出目录。

2024-07-09 17:08:42 145

原创 7-打包安装程序

接下来,我们将一些CPack变量设置到存储此项目的许可证和版本信息的位置。CPACK_GENERATOR和CPACK_SOURCE_GENERATOR变量分别选择用于二进制和源代码安装的生成器。接下来假设我们想要将我们的项目分发给其他人,以便他们可以使用它。这与我们之前在安装和测试中所做的安装略有不同,在安装中我们安装了从源代码构建的二进制文件。在本例中,我们将构建支持二进制安装和包管理特性的安装包。最后,我们将包括CPack模块,它将使用这些变量和当前系统的一些其他属性来设置安装程序。

2024-07-09 16:55:57 237

原创 6-添加自定义命令和生成的文件

通过在 CMake 构建过程中,定义了一个名为Table.h的自定义生成规则。当构建过程需要这个文件时,会执行MakeTable程序来生成它。确保在执行生成命令之前,会先构建MakeTable。这种方法通常用于生成代码、复制文件或执行其他自定义构建任务,使得 CMake 的构建系统能够灵活地扩展和自定义。接下来我们要让CMake知道这个mysqrt.cxx依赖于生成的文件Table.h。这是通过将生成的Table.h添加到SqrtLibrary库的源列表中来实现的。mysqrt.cxx。

2024-07-09 16:33:36 510

原创 5-添加可用性检测

考虑在我们的项目中添加一些代码,这些代码依赖于目标平台可能没有的特性。对于本例,我们将添加一些代码,这些代码取决于目标平台是否具有log和exp函数。当然,几乎每个平台都有这些功能,但在本教程中,我们假设它们并不常见。

2024-07-09 15:24:56 377

原创 3-添加库的使用需求

目标参数的使用要求允许对库或可执行文件的链接和包含行进行更好的控制,同时也允许对CMake中目标的传递属性进行更多的控制。本节使用的示例代码见。

2024-07-09 14:00:12 269

原创 2-添加库

本节将学习如何在项目中创建和使用库,还将看到如何使库的使用成为可选的。 要在CMake中添加一个库,使用add_library()命令并指定哪些源文件应该组成该库。 我们可以使用一个或多个子目录组织项目,而不是将所有源文件放在一个目录中。在本例中,我们将专门为库创建一个子目录。在这里,我们可以添加一个新的CMakeLists.txt文件和一个或多个源文件。在顶级的CMakeLists.txt文件中,我们将使用add_subdirectory()命令将子目录添加到构建中。 创建库之后,使

2024-07-09 13:27:45 617

原创 1-简单开始cmake实践

教程所使用的实例代码见本文资源绑定的文件。最基本的CMake项目是从单个源代码文件构建的可执行文件。对于这样的简单项目,只需要一个包含三个命令的CMakeLists.txt文件。注意:虽然CMake支持大写,小写和混合大小写命令,但小写命令是首选,并将在整个教程中使用。任何项目的最重要的CMakeLists.txt必须从使用cmake_minimum_required()命令指定最小CMake版本开始。这将建立策略设置,并确保以下CMake函数与CMake的兼容版本一起运行。

2024-07-08 16:41:07 591

原创 4-安装和测试

通常,仅仅构建可执行文件是不够的,它还应该是可安装的。使用CMake,我们可以使用install()命令指定安装规则。

2024-07-07 14:41:21 752

原创 8-google::protobuf::util命名空间下常用的C++ API--time_util.h

一、总览二、TimeUtil类

2024-07-05 14:16:32 123

原创 7-google::protobuf::io命名空间下常用的C++ API----zero_copy_stream_impl.h

一、protobuf输入输出文件流C++ API总览。二、经常会用到的API。

2024-07-05 13:55:05 151

原创 4-google::protobuf命名空间下常用的C++ API----text_format.h

用于以人类可读的基于文本的格式打印和解析协议消息的工具类。

2024-07-05 13:33:06 226

原创 6-google::protobuf命名空间下常用的C++ API----repeated_field.h

这些类与STL的vector非常相似,但包含了许多优化,这些优化被发现特别适用于协议缓冲区的情况。RepeatedPtrField与STL vector特别不同,因为它管理它所包含的指针的所有权。通常,用户不需要直接访问RepeatedField对象,而应该使用protocol编译器自动生成的访问器函数。所生成的协议消息类使用RepeatedField和RepeatedPtrField来操作重复字段。

2024-07-05 11:27:13 254

原创 5-google::protobuf命名空间下常用的C++ API----message.h

namespace。

2024-07-05 11:15:46 615

原创 3-protocol buffer c++生成代码指南

当使用--cpp_out=命令行标志调用时,protocol buffer 编译器产生c++输出。--cpp_out=选项的参数是您希望编译器在其中编写c++输出的目录。编译器为每个.proto文件输入创建一个头文件和一个实现文件。输出文件的名称是通过获取.proto文件的名称并进行以下更改来计算的:扩展名(.proto)被.pb.h或.pb替换。分别为头文件或实现文件。proto路径(用--proto_path=或-I命令行标志指定)被输出路径(用--cpp_out=标志指定)替换。

2024-07-04 15:28:11 574

原创 2-Protocol Buffer 基础(c++)

要创建地址簿应用程序,需要从.proto文件开始。proto文件中的定义很简单:为要序列化的每个数据结构添加消息,然后为消息中的每个字段指定名称和类型。下面是定义消息的.proto文件addressbook.proto。proto文件以包声明开始,这有助于防止不同项目之间的命名冲突。在c++中,生成的类将放在与包名匹配的命名空间中。接下来,您有您的消息定义。消息只是包含一组类型化字段的聚合。

2024-07-03 17:31:03 560

原创 1-Protocol Buffers语言特性 (proto 3)

在前面的示例中,Result消息类型是在与SearchResponse相同的文件中定义的——如果您想要用作字段类型的消息类型已经在另一个.proto文件中定义了怎么办?您可以通过导入其他.proto文件来使用它们。

2024-07-03 15:48:41 782

原创 4-使用事件处理程序

ros2学习记录

2024-03-13 10:34:37 847

原创 3-替换launch文件

ros2学习记录

2024-03-12 17:26:23 962

原创 2-将launch文件集成到ROS 2包中

ros2学习记录

2024-03-11 11:11:06 296

原创 1-创建launch文件

launch文件简化了运行具有许多节点和特定配置细节的复杂系统。您可以使用Python、XML或YAML创建启动文件,并使用ros2启动命令运行它们。

2024-02-22 17:31:30 923

原创 五次多项式曲线插值

曲线插值是指基于特定的曲线类型(多项式曲线、贝塞尔曲线、B样条曲线等),根据自车期望达到的状态(比如自车到达某点的速度和加速度要为特定的数值),将此期望值作为边界条件带入曲线方程进行求解,获得曲线的系数,从而确定出满足要求的曲线。

2024-02-05 16:15:44 1343

原创 5-监视参数更改(c++)

ros教程

2023-12-18 11:06:29 102

原创 4-在单个进程中组合多个节点

ros2教程

2023-12-16 11:24:59 68

原创 3-编写动作服务器和客户端(c++)

ros2教程

2023-12-15 14:48:23 1267

原创 2-如何创建动作通信的数据结构

ros2教程

2023-12-14 17:17:19 300

原创 1-用rosdep管理依赖

ros2教程

2023-12-14 16:47:15 1151

原创 10-创建和使用插件(c++)

ros2教程

2023-12-07 11:23:54 121

原创 9-使用ros2doctor来定位问题

ros2教程

2023-12-07 10:30:12 65

原创 8-在类中使用参数

ros2教程

2023-12-06 17:26:11 38

原创 7-实现自定义接口

ros2教程

2023-12-06 13:43:47 51

原创 6-创建自定义消息和srv文件

ros2教程

2023-11-29 14:00:00 186

原创 5-编写一个简单的服务端和客户端

ros2教程

2023-11-27 15:17:05 93

原创 4-编写一个简单的发布端和订阅端

ros2教程

2023-11-23 11:35:53 44

原创 3-创建工作包

ros2教程

2023-11-22 09:25:32 33

原创 2-建立工作空间

ros2教程

2023-11-11 20:08:12 72

原创 1-使用colcon编译工作包

ros2基础教程

2023-11-09 10:55:02 469

原创 10-记录和播放bag数据

ros2教程

2023-11-08 11:20:59 332

原创 9-启动节点(launch文件)

ros2教程

2023-11-08 10:31:21 68

原创 8-使用rqt_console 查看log

ros2教程

2023-11-08 09:51:36 137

原创 7-理解动作

ros2教程

2023-11-07 13:49:31 30

cmake实践所使用代码

cmake实践所使用代码

2024-07-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除