自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(92)
  • 资源 (4)
  • 收藏
  • 关注

原创 STM32G0单片机自带RTC

STM32有个自带RTC外设,外接32.768KHz的晶振后可得到相对精确的计时功能。实测了一个一小时快个1秒多。

2025-04-15 12:05:34 308

原创 STM32单片机串口数据接收处理框架

在使用STM32单片机串口接收不固定长度数据包时,采用了每个字节中断,然后接收存储的方式,前面一直会有错误,尤其是波特率比较高(可能相对于该款单片机的主频,其他中断任务过多),甚至到后面没法接收到数据的情况。

2025-03-17 10:54:56 332

原创 wsl里面安装使用locate

WSL:WSL(Windows Subsystem for Linux)是微软在Windows 10及更高版本中引入的一个功能,它允许用户在不需要传统虚拟机或双系统的情况下,直接在Windows上运行Linux二进制可执行文件(ELF格式)。locate:在Ubuntu系统中,locate命令是一个非常快速且高效的工具,用于查找文件或目录。但是安装完locate后,使用时提示:/var/lib/plocate/plocate.db: No such file or director。就是没有文件数据库。

2025-01-08 12:01:21 341

原创 STM32G431收发CAN

PB8作为CAN_RX,PB9作为CAN_TX,连接一个CAN收发器TJA1051T/3。

2025-01-03 11:56:49 892

原创 STM32单片机内存映射

单片机的Flash,RAM,各个系统寄存器,共享同一地址空间32位单片机,意味着这个地址空间有2^32 byte,即4G,完全足够分配给实际的存储。所以所有的真实存储会映射到同一的4G大小的地址空间内,有序排放。-以STM32G4单片机为例几点:代码段:存放程序等,由真实的Flash映射到这段RAM段:存放变量,或者特殊情况下(如内存模式调试等)的代码堆(heap)和栈(stack):会被分配到RAM段内。堆可以由用户程序用malloc等函数使用,栈用作局部变量和函数传递参数。全局变量:

2024-11-21 14:42:12 310

原创 C++常用库

C++作为一种功能强大的编程语言,其强大的功能来源于其丰富的类库及库函数资源。

2024-11-18 11:01:14 703

原创 C++17中的并行STL算法

C++17引入了并行STL(Standard Template Library)算法,这允许你在多核处理器上并行执行常见的STL算法,从而提高性能。因此,在实际应用中,你可能需要进行性能测试来决定是否使用并行算法。要使用并行STL算法,你需要确保你的编译器和标准库支持C++17,并且通常需要使用特定的编译选项来启用C++17标准。注意,使用并行算法时,算法函数中的操作必须是无副作用的(即线程安全的),否则可能会导致未定义行为。使用并行STL算法非常简单,你只需要在调用算法时指定执行策略即可。

2024-11-15 10:11:05 387

原创 现代C++中的for循环

在现代C++(特别是C++11及以后的标准)中,for循环经历了一些显著的改变和增强,使得它更加灵活和强大。

2024-11-15 09:43:45 770

原创 C++ 20的条件判断语句的增强

C++20 引入了一些新的特性和改进,使得条件判断语句更加灵活和强大。

2024-11-15 09:33:33 544

原创 C++ 的协程

协程函数使用co_awaitco_yield(对于生成器)或co_return来控制其执行流程。下面是一个简单的例子,展示了如何使用co_await来挂起和恢复协程的执行。// 一个简单的awaitable对象,它会在一段时间后“完成”} // 协程需要挂起void await_suspend(std::coroutine_handle<>) const noexcept {} // 挂起时的操作(这里为空)

2024-11-13 12:07:47 636

原创 C++ 23的格式化输出

库的改进可能包括一些小的增强和额外的功能,但核心功能和使用方法与 C++20 是兼容的。要获得最新的信息和具体的改进内容,建议查阅最新的 C++ 标准文档或相关编译器的文档。在 C++23 中,它可能会变得更加标准或有所改进,但具体情况取决于标准的最终定义和编译器的实现。库本身的核心功能没有大的变化,但可能会有一些小的改进和额外的功能。然而,需要注意的是,具体的改进内容可能因编译器和标准库实现的不同而有所差异。库(也称为 C++20 的标准库格式化功能)的进一步支持和可能的增强。在 C++23 中,虽然。

2024-11-13 12:02:23 1163

原创 原子操作 std::atomic

是 C++11 引入的一个模板类,用于实现原子操作。原子操作是不可分割的操作,它们在多线程环境下可以安全地执行,而无需额外的同步机制(如互斥锁)。提供了对基本数据类型的原子操作支持,如整数、布尔值、指针等。以下是。

2024-11-11 12:10:00 589

原创 std::thread 多线程

C++11 标准库引入了多线程支持,使得 C++ 程序能够更高效地利用多核处理器。

2024-11-11 12:05:19 473

原创 多线程同步原语std::shared_timed_mutex 和 std::shared_lock

和是 C++11 标准库中提供的多线程同步原语,用于实现更灵活的读写锁机制。它们允许多个线程同时读取共享数据,但在写入时,只允许一个线程独占访问。是一个读写锁,它允许多个线程同时持有共享锁(用于读操作),但只允许一个线程持有独占锁(用于写操作)。当某个线程持有独占锁时,其他任何尝试获取共享锁或独占锁的线程都会被阻塞,直到独占锁被释放。truefalsetruefalselock()try_lock()truefalsetruefalseunlock()是一个锁管理类,专门用于管理或的共享锁。

2024-11-11 12:03:54 786

原创 智能指针std::weak_ptr

是一个模板类,它用于观察一个由管理的对象,而不拥有该对象。这意味着不会增加被观察对象的引用计数,因此当所有实例都被销毁时,对象仍然会被正确释放,即使还有实例指向它。

2024-11-07 14:23:28 425

原创 智能指针std::shared_ptr

是一个模板类,用于管理动态分配的对象。它允许多个实例共享对同一个对象的所有权。当最后一个拥有该对象所有权的被销毁或重置时,它所管理的对象也会被自动删除。这种机制有助于避免内存泄漏和悬挂指针等问题。

2024-11-07 14:18:58 499

原创 卡尔曼滤波算法Kalman filter algorithm

一、假如状态向量服从高斯分布:而且状态转移是线性的:测量是状态的线性关系(带噪声)初始状态的置信度也是正态分布二、卡尔曼滤波的算法流程为

2024-11-06 16:11:08 328

原创 智能指针 std::unique_ptr

是 C++11 引入的一种智能指针,它实现了独占所有权语义,即同一时间内只能有一个拥有某个对象。当被销毁时(例如,离开其作用域时),它所管理的对象也会被自动删除。这有助于防止内存泄漏和野指针问题。以下是。

2024-11-06 10:19:21 701

原创 C++中的Lambda表达式

Lambda 表达式是现代 C++(C++11 及以后版本)引入的一项功能,它允许你定义匿名函数对象。Lambda 表达式在编写简短的回调函数、算法操作以及需要传递函数对象的地方非常有用。

2024-11-06 10:08:17 559

原创 多变量高斯分布

2024-11-05 17:57:07 420

原创 git使用的一般流程

Git的一般工作流程是一个循环迭代的过程,涉及多个关键步骤,这些步骤帮助开发人员有效地管理项目版本和协作开发项目。

2024-11-05 17:24:10 1323

原创 std::future怎么使用?

是 C++11 引入的一个类模板,用于表示一个异步操作的结果。它通常与std::async或线程池等一起使用,以便在不阻塞当前线程的情况下获取其他线程或异步任务的结果。以下是如何使用。

2024-11-05 10:37:49 490

原创 三路比较运算符<=>

这是默认的三路比较运算符声明,它会被编译器自动实现为基于成员的比较。如果你的类有成员变量,并且这些成员变量也支持三路比较运算符,那么编译器会自动为你的类生成这个运算符的实现。double b;if (a!} else {在这个例子中,MyClass的首先比较成员变量a,如果a不相等,则直接返回a与other.a的比较结果;如果a相等,则继续比较成员变量b。

2024-11-05 10:32:54 510

原创 noexcept 是什么?

noexcept是C++11引入的一个关键字,用于指定一个函数或函数模板在运行时是否不会抛出异常。当函数被标记为noexcept时,它向编译器和程序的其他部分承诺不会抛出任何类型的异常。这一特性有助于提高代码的安全性和性能,因为编译器可以根据这一信息进行优化,避免生成处理异常的额外代码。

2024-11-05 10:29:53 523 1

原创 C++各个版本的主要特性

C++是一种高级编程语言,以其强大的功能、灵活性和高效性而闻名。随着C++标准的不断更新,C++语言持续发展,各个版本引入了不同的主要特性,以适应现代软件开发的需求。

2024-11-05 10:25:49 654

原创 处理ASAM-MDF格式的开源python库asammdf

asammdf是一个强大的Python库,专为处理ASAM(Association for Standardization of Automation and Measuring Systems)MDF(Measurement Data Format)文件而设计。MDF是一种用于存储测量和诊断数据的标准格式,广泛应用于汽车工程、航空航天以及其他领域。以下是对asammdf。

2024-09-25 10:47:25 728

原创 ASAM-MDF4标准格式

ASAM-MDF4(Measurement Data Format version 4)即测量数据格式版本4,是ASAM(Association for Standardization of Automation and Measuring Systems,自动化与测量系统标准化协会)的标准文件格式,专门用于汽车行业以二进制文件格式存储测量数据。

2024-09-25 10:45:21 790

原创 ros2中使用launch.xml启动时,怎么在命令行里设置参数,或者加载参数文件(params.yaml)

在ROS2中使用launch.xml启动时,可以通过命令行设置参数或加载参数文件(如params.yaml)。

2024-09-10 12:43:45 1004

原创 ASAM OpenX系列标准

ASAM OpenX系列标准包括OpenDRIVE、OpenCRG、OpenSCENARIO等多个子标准,每个标准都针对仿真测试场景的不同方面进行了详细规定。这些标准共同构成了自动驾驶仿真测试领域的重要基础,为全球自动驾驶技术的发展提供了有力支持。

2024-08-26 18:03:09 664

原创 OpenSCENARIO简介

OpenSCENARIO是ASAM OpenX系列标准之一,与OpenDRIVE和OpenCRG等标准共同构成了自动驾驶仿真模拟系统集成、测试评估领域的重要基石。它主要关注于描述驾驶模拟应用程序中的动态内容,如交通参与者的行为以及他们如何与其他参与者和环境进行交互。

2024-08-26 17:56:29 1029

原创 Lanelet2与OpenDrive和OpenStreetMap的关系

Lanelet2、OpenDrive和OpenStreetMap在自动驾驶和智能交通系统中都扮演着重要角色,但它们之间在功能和用途上存在一些差异。

2024-08-26 14:41:29 850

原创 ros2里面python编写的包中setup.py的语法

文件时,需要确保所有指定的元数据和依赖关系都是准确的,并且与你的包的实际内容相匹配。文件是一个Python脚本,用于定义包的元数据、依赖关系以及安装和分发包的指令。这个文件是Python包的标准配置方式,ROS 2中的Python包也遵循这一约定。部分包含了对ament资源索引的引用,这是ROS 2包的一部分,用于标识包的存在和位置。但是,请注意,在ROS 2中,Python节点通常不是作为独立的命令行工具来运行的,而是通过ROS 2的节点管理器(如。应该是一个字符串,表示你的包的版本号。

2024-08-20 10:45:18 1182

原创 ros2里面的launch.py的语法

ros2 的启动python文件的语法

2024-08-20 10:40:11 885

原创 ros2里launch.xml文件语法

remap>ROS 2 中的文件用于定义一组节点、服务、参数等的启动配置。这些文件遵循 XML 语法,并使用 ROS 2 的特定标签和属性来定义启动时的行为和配置。随着 ROS 2 的发展,ROS 2 引入了系统,它使用 Python 脚本(通常是.launch.py文件)作为主要的启动文件格式,但 XML 格式仍然被支持,特别是在一些旧的项目或为了与 ROS 1 兼容的场合。然而,值得注意的是,在 ROS 2 Foxy 及以后的版本中,XML 格式的启动文件()已经不再是官方推荐的方式。

2024-08-16 15:17:17 979

原创 大陆ars408雷达上传的扫描到的对象(object)的CAN消息

目标列表目标输出列表有5个消息组成,并且以固定的时间间隔发送,通过标识 RadarCfg_OutputType(0x200)。1、 Object 0 Status(0x60A)第一条消息包含列表头信息2、 Object 1 General(0x60B)此消息包含目标的位置和速度,并且反复在所有抓到的目标中发送。3、Object 2 Quality(0x60C)此消息包含目标的重要消息,并且反复在抓到的目标中发送。

2024-08-16 12:31:21 878

原创 ROS 2中,CMakeList.txt常见语法

在ROS 2中,CMakeList.txt 文件扮演着配置和管理构建过程的重要角色。这个文件遵循CMake的语法,用于定义如何编译和链接源代码。下面是一些在ROS 2项目CMakeList.txt文件中常见的语法和用法。

2024-08-16 12:02:35 1273

原创 pytorch学习笔记7 tensor基本数学运算

如果是(4,3,28,32)与(4,1,64,32),则会先做广播(broadcast)处理,再做矩阵乘法。floor: 下取整, ceil:上取整,trunc:整数部分 , frac:小数部分,round:四舍五入取整。或者torch.add, torch.sub, torch.mul, torch.div。函数把所有数据限定在指定范围内,小于最小值的会用最小值替代,大于最大值的用最大值替代。一个参数表示(min),两个参数表示(min,max)Exp(e的x次方), log(e为底的对数)

2024-08-08 15:39:29 193

原创 pytorch学习笔记6 tensor拼接和拆分

dim必须首选相同(上例都是3),其次除了合并的dim(上例中为dim0)外,其它dim的size必须相同(dim 1的size是32,dim2的size是8),否则需要手动处理到相同再合并。stack叠加,会增加一个新维度,下图显示stack与cat的差别。split 按长度拆分。chunk 按数量拆分。

2024-08-05 15:56:10 224

原创 pytorch学习笔记5 tensor 广播broadcasting

可广播的条件:右对齐,有dim的size必须是1(或者size相同),再扩展到相同size;没有dim,先插入dim,size=1,再扩展到相同size。否则不符合广播操作条件。=>[4,32,14,14] 做到与Feature maps的shape相同,才能进行相加。不同shape直接加减,系统会自动做broadcasting操作。比如:Feature maps: [4,32,14,14]先右对齐(小维度对齐)

2024-08-05 14:53:14 432

原创 pytorch学习笔记4 tensor变换

transpose操作之后要用contiguous()把存储空间规整到一起,再使用view。transpose(d1,d2)d1和d2维度交换。permute 重新按参数排列各维度数据。

2024-08-02 16:55:23 339

gnu make 指南

gnu make 指南 makefile 格式使用指南

2008-09-16

远程串口代理的python源码

python编写的远程串口代理,可以把远程主机上的串口报文转化为tcp报文,从而实现远程读写

2024-08-21

AI, 产品经理,面试,高频题目

AI, 产品经理,面试,高频题目

2024-08-13

控制器算法学习2-MPPI模型预测路径积分

nav2 MPPI github 参考论文

2024-02-27

路径追踪算法原理参考论文

-PP算法原理论文 -RPP算法原理论文

2023-12-26

控制器算法学习1-RPP受控纯追踪算法原理参考论文

Implementation of the Pure Pursuit Path 'hcking Algorithm

2023-12-25

控制器算法学习1-RPP受控纯追踪算法原理论文

-RPP受控纯追踪算法原理论文

2023-12-25

Sysconfig生成cmd文件

Sysconfig生成cmd文件

2023-12-07

工艺参数DSP-LSB-Parameter-01-PWMDutySeq-Doc201

光源板激发电路参数

2023-12-04

Excel强大的公式函数

Excel强大的公式函数 办公人员强有力的帮手

2008-09-16

Platform Builder 5.0的Build OS菜单详解

wince 开发工具Platform Builder 5的界面 嵌入式开发人员必备

2008-09-16

GNU Make 使用手册.

GNU Make 使用手册 C C++ 开发人员进阶必需要的手册 要下载从速

2008-09-16

空空如也

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

TA关注的人

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