- 博客(83)
- 收藏
- 关注
原创 c++使用protocol buffers
首先要创建一个.proto文件,在其中定义消息类型和字段。// 指定语法版本// 定义包名,防止命名冲突// 定义Person消息类型// 字段名、类型和唯一编号// 编号1-15在编码时更节省空间// 字符串类型字段// 定义枚举类型MOBILE = 0;HOME = 1;WORK = 2;// 定义嵌套消息类型// 重复字段相当于C++里的vector// 定义AddressBook消息类型。
2025-05-20 22:01:08
381
原创 在CMakeLists中判断当前使用catkin_make还是cmake
【代码】在CMakeLists中判断当前使用catkin_make还是cmake。
2025-04-15 18:17:13
97
原创 linux后台运行的程序查看和关闭办法
jobs命令可以查看当前终端中通过&后台运行的作业列表。每个作业都有一个作业号,例如[1]、[2]等。使用fg %作业号可以将后台作业切换到前台运行,然后按Ctrl + C组合键来停止程序。如果想继续让它在后台运行,可使用bg %作业号命令将其放回后台。
2025-04-11 08:16:53
241
原创 解决Certificate verification failed错误
将/etc/apt/sources.list中所有https改为http。猜测可能是因为改了时区,导致证书失效。正常情况下不会再报错了。
2025-04-01 21:29:51
679
原创 解决SolidWorks鼠标在模型上悬停导致卡顿的问题
这是动态高亮显示导致的,通过关闭相关设置可以解决:工具->选项->在右上角的搜索框中搜索“动态”,把出现的选项全部取消勾选->确定
2025-03-28 20:26:07
181
原创 解决GLIBC不兼容问题
在交叉编译时,报了GLIBC不兼容的问题。我分析产生这个问题的原因是 ,生成库时使用的GLIBC库比当前使用的交叉编译工具链中的GLIBC库更新,导致无法兼容。
2025-03-26 19:47:01
957
原创 多系统多电脑并行办公时的文件备份和同步问题解决方案
很多时候我们不止使用一台电脑办公,办公用的系统也各种各样,可能会同时使用windows和linux系统办公。这种情况下,各个系统的文件实时备份和同步就是件棘手的事情。
2025-03-06 01:05:45
220
原创 解决Cartographer编译报may be used uninitialized in this function [-Werror=maybe-uninitialized]错误的问题
打开functions.cmake 文件,把这一行注释掉。具体命令根据你自己的文件路径之类的信息调整。
2025-03-06 00:54:21
285
原创 解决undefined reference to `FT_Has_PS_Glyph_Names‘ undefined reference to `FT_Get_PS_Font_Info‘ 等错误
交叉编译时需要链接freetype的库,手动指定了链接libfreetype.a。
2025-02-04 17:57:14
199
原创 编译报错:bin/ld: static-reloc.c:(.text+0x24): undefined reference to `main‘ 的解决方案
交叉编译代码,很多链接库都是手动指定的,编译的代码中存在部分测试代码,需要gtest和gmock的支持。
2025-02-04 15:15:18
308
原创 Ubuntu16.04编译安装Cartographer 1.0版本
由于Ubuntu16.04已经是很老的系统,如果直接安装Cartographer官方安装文档安装会出现代码编译失败的问题,本文给出了解决这些问题的办法。正常情况下执行本文给出的安装方法即可成功安装。
2025-02-01 00:25:36
434
原创 Ubuntu安装VMware17
解决:Before you can run Vmware, several modules must be compiled and loaded into the running kernel。原文链接:https://blog.youkuaiyun.com/Netceor/article/details/125874278。原文链接:https://blog.youkuaiyun.com/lilihli/article/details/143043499。之后再打开vmware,可以正常启动虚拟机。
2025-01-30 12:31:12
786
原创 通过samba共享文件,并开机自启动
Samba 是在 Linux 和 Unix 系统上实现 SMB/CIFS 协议的一个免费软件,可用于在不同操作系统之间共享文件和打印机。以下将详细介绍如何在 Ubuntu 系统中通过 Samba 共享文件并设置开机自启。
2025-01-30 11:17:33
1011
原创 CMAKE工程编译好后自动把可执行文件传输到远程开发板
以下是将示例中的 my_app 替换为项目名称 MyProject 后的完整 CMakeLists.txt 文件示例,这样就能在编译项目生成的可执行文件后自动推送到 Linux 开发板。如果你还有多个 target 需要推送到开发板,可以按照同样的方式为每个 target 添加 add_custom_command 命令。
2025-01-29 21:57:34
322
原创 指定dpkg安装deb包时的安装路径
在使用dpkg安装.deb包时,一般不能直接指定安装路径,因为.deb包内部已经定义了文件的安装位置。这些位置是在打包.deb包时通过控制文件(通常是debian/control和debian/install等文件)指定的。如果你想改变安装路径,可以先解压.deb包,修改其中的控制文件来指定新的路径,然后重新打包并安装。
2025-01-28 14:12:28
1367
原创 机器人领域的一些仿真器
模拟工具和环境对于开发、测试和验证可变形物体操作策略至关重要。这些工具提供了一个受控的虚拟环境,用于评估各种算法和模型的性能,并生成用于训练和测试数据驱动模型的合成数据。用于可变形物体模拟的一个流行的物理引擎是 Bullet Physics Library,它支持刚体动力学和软体动力学,包括基于有限元的可变形模型。
2025-01-04 23:20:50
1142
1
原创 设计模式----迭代器模式
迭代器模式(Iterator Pattern)是一种行为设计模式。在 C++ 中,它提供了一种方法来顺序访问一个聚合对象(如容器,像vector、list等)中的各个元素,而又不暴露该对象的内部表示。简单来说,迭代器就像是一个导游,它可以带领你逐个访问容器中的元素,而不需要你了解容器是如何存储这些元素的。
2024-11-28 12:39:36
865
原创 设计模式——抽象工厂模式
抽象工厂模式是一种创建型设计模式。它提供了一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。简单来说,抽象工厂就像是一个工厂的抽象蓝图,这个蓝图定义了生产一组产品的方法,但具体怎么生产这些产品(产品的具体实现)由具体的工厂类来完成。
2024-11-25 23:02:54
894
原创 设计模式——传输对象模式
传输对象模式(Transfer Object Pattern),也称为值对象模式(Value Object Pattern),是一种设计模式。它主要用于在不同的层(如业务逻辑层和表示层)之间传递数据,以减少网络通信或方法调用的次数,提高系统性能。传输对象是一个简单的数据结构,它包含了一组相关的数据属性,并且可以被方便地序列化和传输。
2024-11-24 18:23:44
1029
原创 设计模式——服务定位器模式
服务定位器模式(Service Locator Pattern)是一种设计模式,用于帮助应用程序查找和获取所需的服务对象。它提供了一种间接的方式来访问服务,将服务的具体创建和查找过程封装在一个单独的定位器对象中,使得客户端代码不需要直接了解服务对象的创建细节和位置,从而降低了代码之间的耦合度。
2024-11-24 18:13:32
860
原创 设计模式——拦截过滤器模式
拦截过滤器模式(Intercepting Filter Pattern)是一种软件设计模式,主要用于在处理请求的过程中,对请求进行一系列预处理和后处理操作。这些操作通过一系列的过滤器来实现,过滤器可以在请求到达目标处理程序之前对请求进行检查、修改或记录等操作,也可以在目标处理程序生成响应之后对响应进行类似的操作。
2024-11-24 17:46:55
901
原创 设计模式——前端控制器模式
前端控制器模式(Front Controller Pattern)是一种软件设计模式,主要用于集中处理 Web 应用或其他多层架构应用的请求。它作为一个单一的入口点来接收和处理所有的客户端请求,将请求分发给相应的处理模块,从而提供了一种统一的请求处理机制,有助于提高系统的可维护性和可扩展性。
2024-11-24 17:04:09
1498
原创 设计模式——数据访问对象模式
以下是一个简单的 C++ 数据访问对象模式示例,用于访问一个简单的用户信息数据库(这里为了简化,假设数据存储在一个std::vector中,实际应用中可能是真正的数据库)。
2024-11-24 16:56:32
1578
原创 设计模式——MVC模式
MVC(Model - View - Controller)模式是一种软件架构模式。它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。这三个部分相互协作,使得应用程序的设计更加模块化、易于维护和扩展。
2024-11-24 15:35:40
2485
原创 设计模式——访问者模式
访问者模式(Visitor Pattern)是一种行为设计模式。它表示一个作用于某对象结构中的各元素的操作。它允许你在不改变这些元素的类的前提下定义作用于这些元素的新操作。例如,考虑一个包含多种图形(如圆形、矩形)的绘图系统。如果要对这些图形进行多种操作(如计算面积、绘制轮廓等),可以使用访问者模式。不用在每个图形类中添加各种操作方法,而是将操作封装成独立的访问者类,让这些访问者类去访问图形对象并执行相应的操作。
2024-11-24 13:47:52
1090
原创 设计模式——模板模式
模板模式(Template Pattern)是一种行为设计模式。它在一个抽象类中定义了一个操作的算法骨架,将一些步骤的实现延迟到具体子类中。这个抽象类就像是一个模板,定义了执行某个流程的基本框架,而具体的细节可以由不同的子类根据自身的需求来填充。例如,在制作饮品的过程中,制作饮品的流程(如准备材料、混合材料、添加调料、包装等)可以看作是一个模板。不同的饮品(如咖啡、茶)在这个流程的某些具体步骤(如混合材料、添加调料)上会有不同的做法,但整体的流程框架是相似的。
2024-11-24 13:39:28
1089
Gazebo中的待修复仿真模型与可用的完整仿真环境
2024-01-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人