logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

校招C++20并发系列08-安全生产多线程队列:并发容器替代STL实战

当然,这并不意味着在所有应用中都能获得 50% 的提升,因为大多数业务逻辑受限于 I/O 或其他瓶颈,不会在紧密循环中进行海量元素的推送。本期教程将对比“基于互斥锁保护的 STL 容器”与“原生支持并发的 TBB 容器”,深入探讨为何专用的并发容器能带来巨大的性能提升。虽然逻辑正确,但在高并发场景下,大量线程竞争同一把锁会导致严重的上下文切换和等待时间,这就是所谓的“锁竞争瓶颈”。这种写法不仅代码

#c++20#安全#c++
Jazzy ROS2入门指南系列05-配置VsCode实现ROS2项目开发

在 ROS 2 开发中,正确的环境配置能显著减少后续调试设置错误或缺失工具的时间成本。遵循“慢即是稳”的原则,通过系统化的安装与配置步骤,可以为长期的机器人软件开发奠定坚实基础。本教程将详细拆解如何在 Ubuntu 系统上安装 VS Code,并配置适用于 ROS 2 开发的扩展插件与编辑器设置。至此,一个功能完备、配置规范的 ROS 2 开发环境已搭建完成,可以着手进行具体的机器人程序开发了。在

#vscode#ide#编辑器
Jazzy ROS2入门指南系列02-如何安装 ROS2 Jazzy

ROS 2 Jazzy Jalisco 是 ROS 2 的最新长期支持(LTS)版本之一,专为 Ubuntu 系统优化。我们将不仅安装软件,还会配置必要的语言环境、添加官方软件源、设置环境变量,并运行经典的“发布者-订阅者”示例来验证安装的正确性。在安装 ROS 2 之前,必须确保系统的区域设置(Locale)正确。为了支持机器人仿真,我们还需要安装 Gazebo Harmonic(ROS 2 J

#ubuntu#人工智能
ROS2 C++开发系列14-Lambda表达式处理传感器数据流|文件IO保存机器人实验日志

通过本教程,我们掌握了 C++ 中两个提升开发效率的关键技术。Lambda 表达式让数据操作变得简洁直观,特别是结合 STL 算法如sort和for_each时,能够大幅减少样板代码。同时,掌握fstream的基本用法是构建可靠机器人软件的基础,它确保了实验数据的安全留存。将这些技巧结合起来,你可以轻松构建出既高效又具备数据持久化能力的机器人节点。

#c++#机器人#开发语言
ROS2 C++开发系列09-写出更高效、可复用的机器人控制代码之函数与指针实战

随着机器人功能复杂度的增加,将所有逻辑写在main函数中会导致代码难以阅读和维护。通过定义独立的函数,我们可以实现代码的复用和解耦。例如,计算两点间的欧几里得距离是机器人路径规划中的常见需求。

#c++#机器人#开发语言
ROS2 C++开发系列11-VS Code一键生成Doxygen注释|让ROS2节点文档自动跟上代码迭代

通过安装 Visual Studio Code (VS Code) 的特定扩展,我们可以实现“一键生成”注释模板的功能,从而将精力集中在内容本身而非格式排版上。:Doxygen 注释的核心在于结构化信息的提取,而非单纯的文本堆砌。:务必确认安装的是 Christoph Schlosser 开发的版本,其他同名或类似功能的插件可能在快捷键绑定或标签解析上存在差异。在该文件中,我们需要定义一个基础的机

#c++#java#数据库
ROS2 C++开发系列15-模板实现通用算法|宏定义ROS2调试开关|一次编码适配多平台

宏是 C++ 预处理器指令,允许在编译前进行文本替换。虽然现代 C++ 更推崇使用const变量、内联函数或模板,但在某些场景下(如条件编译或快速原型开发),宏依然有其用武之地。理解宏有助于阅读遗留代码或处理特定配置需求。通过本教程,我们掌握了 C++ 中宏与模板的基本用法。宏适用于简单的文本替换和常量定义,但需注意其潜在风险;模板则提供了强大的泛型编程能力,无论是函数还是类,都能通过模板适应多种

#c++#算法#java
ROS2 C++开发系列18-STL容器实战:deque缓存激光雷达数据|priority_queue调度任务

默认情况下,是大顶堆(最大值优先)。为了实现自定义优先级(如整数越小优先级越高,或字符串特定含义),通常需要定义结构体并重载运算符。#include <functional> // 用于 greater 等函数对象// 定义任务结构体// 优先级数值,假设数值越小优先级越高(或根据需求定义)// 重载 < 运算符以定义优先级顺序// 注意:priority_queue 默认是最大堆,即 a < b

#c++#缓存#开发语言
ROS2 C++开发系列07-高效构建机器人决策逻辑,运算符与控制流实战

掌握运算符和控制流是编写高质量 C++ 机器人代码的前提。算术运算:熟练掌握加减乘除及取模运算,注意整数除法截断问题,合理使用类型转换。逻辑决策:利用&&||!组合条件,构建清晰的if-else分支,确保覆盖所有可能的状态组合。循环选择for:用于已知次数的遍历(如数组扫描)。while:用于依赖状态变化的动态循环(如等待传感器就绪)。do-while:用于必须至少执行一次的初始化或采集任务。简洁

#c++#机器人#开发语言
    共 32 条
  • 1
  • 2
  • 3
  • 4
  • 请选择