自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(110)
  • 收藏
  • 关注

原创 轨迹规划:基于采样的(sample-based)路径规划算法

基于采样的路径规划算法PRM和RRT

2025-03-18 16:35:47 1142

原创 轨迹规划:基于查找的(search-based)路径规划算法

JPS算法通过。

2025-03-17 21:05:27 689

原创 强化学习算法概述

强化学习算法的分类和具体代表算法

2025-02-27 15:21:23 658

原创 强化学习DDPG算法Demo实现

强化学习DDPG算法倒立摆模型实例

2025-02-27 15:13:26 649

原创 数据结构:图(附C++实现代码)

数据结构-图,以及邻接矩阵和邻接表C++实现

2024-12-23 10:59:28 1043

原创 C++面试基础知识:移动语义 & Perfect Forwarding

C++左值右值问题,以及移动语义+完美转发问题,All in one

2024-12-01 17:02:57 1017

原创 Linux内核编译流程(Ubuntu24.04+Linux Kernel 6.8.12)

自己动手编译一个Linux内核

2024-11-29 17:45:20 1537 1

原创 C++面试基础知识:new vs malloc

C++中new和malloc的异同,以及相关联的问题。

2024-11-19 11:03:47 750

原创 计算机网络-理论部分(二):应用层

计算机网络应用层内容,只有重要概念,不涉及延迟计算等教科书上的无聊内容

2024-11-18 10:52:00 896 1

原创 计算机网络-理论部分(一):概览

计网概述部分,简单易懂

2024-11-17 17:57:45 957

原创 深度学习模型部署(十三)CUDA编程-CUDA线程模型 & 内存架构

CUDA的线程实现和内存架构

2024-11-17 10:37:27 1134

原创 C++内存模型与并发支持

C++内存模型以及并发支持相关内容以及示例代码

2024-11-15 10:13:54 1091

原创 计算机辅助几何设计:曲线曲面基础知识

计算机符合几何设计的一些基础知识

2024-11-11 16:52:07 862

原创 C++面试基础知识:排序算法 C++实现

面试中遇到的排序问题相关内容整理

2024-11-10 16:24:56 1075

原创 设计模式:软件设计七大原则

编程软件开设计七大原则,附带各自例子

2024-11-02 22:46:07 1193 1

原创 强化学习DQN实践(gymnasium+pytorch)

使用gymnasium和pytorch进行强化学习实践

2024-10-31 22:15:19 900 1

原创 强化学习原理:基本概念

强化学习数学理论基础

2024-10-30 10:47:03 401

原创 线性代数&群论应用:正逆运动学 & 变换矩阵

刚体变换不止在机器人中有使用,在图形学中也有使用,图形学中通过旋转矩阵,平移矩阵,投影矩阵,将3D的mesh投影到2D的显示器区域中。这些变换背后的数学原理都是线性代数和群论。

2024-10-28 16:53:13 2018 1

原创 目标检测综述:从HOG检测到DETR

目标检测二十年论文笔记+个人理解

2024-10-24 21:49:25 788

原创 C++数学库:Eigen & Ceres

两个常用的数学库,线性代数库Eigen,非线性最小二乘法求解数学库Ceres

2024-10-20 18:02:30 1121

原创 控制系统 & 状态观测问题 & Kalman卡尔曼(附MATLAB实现)

记录了状态观测问题的引入以及常见的解决方案,全维观测器以及卡尔曼观测器的原理以及matlab实现

2024-10-20 14:28:29 842 3

原创 ROS2 Jazzy(二) ROS相关工具 & 概念

ROS中常用的工具和概念

2024-10-14 12:08:36 846

原创 ROS2-Jazzy(一):让小乌龟跑起来

ROS2基础知识

2024-10-09 22:29:02 1941

原创 Ubuntu终端配置

Ubuntu终端基本配置

2024-10-08 10:53:09 1056

原创 OpenGL(四) 纹理贴图

纹理贴图的应用

2024-09-12 11:33:13 1364

原创 OpenGL(三)着色器语言GLSL

GLSL是一种着色器语言,需要有对应的图形API环境配合,可以使用OpenGL,也可以使用OpenGL ES,也可以使用WebGL。三者的关系可以简单理解为ES为GL的精简版,WebGL是ES的二次包装。如果我们打算从一个着色器向另一个着色器发送数据,我们必须在发送方着色器中声明一个输出,在接收方着色器中声明一个类似的输入。像cuda一样GLSL有几个数据并在一起的数据向量类型,例如vec4,包含4个float数据的向量。GLSL中内置的数据类型还有矩阵mat,但是矩阵只有浮点型的,而且是列优先排序。

2024-09-10 14:00:14 1177

原创 OpenGL(二)-核心模式下的三角形

一个更复杂,更正式且可扩展的三角形画法

2024-09-07 22:01:24 661

原创 傅里叶变换 & 基函数 & 曲线拟合 & Spherical Harmonics

万物皆是拟合,绝大部分问题到最后都要归于拟合问题。

2024-09-06 11:00:37 1469

原创 深度学习模型部署(十五)CUDA编程-流&sharememory

stream和share memory是cuda编程中优化的重点关照对象

2024-08-13 10:52:31 853

原创 工具学习:Google Test测试框架

C++测试框架Google Test使用方法

2024-08-11 13:55:11 1982

原创 C++入门:C++工具链

编程语言分为编译型语言和解释型语言,二者的区别可以简单理解为,编译型语言是生成和运行的过程是分开的,解释型语言是合在一起的,一句一句运行。编译型需要编译器,解释型需要解释器,C++就是典型的编译型语言。Python是典型的翻译型语言。生成可执行文件的过程称为编译,因为编译和运行是分开的,所以可能存在编译的机器和运行的机器不是一个架构的情况,所以在编译型语言中可能存在交叉编译的情况,即编译机器和运行机器架构不一致。

2024-08-10 11:04:57 952

原创 Qt入门(二):第一个Qt项目

简单的Qt入门

2024-08-07 17:48:49 931

原创 Modern C++ 智能指针

比如,指向某种资源的std::shared_ptr可能在一个线程执行析构(于是递减指向的对象的引用计数),在另一个不同的线程,std::shared_ptr指向相同的对象,但是执行的却是拷贝操作(因此递增了同一个引用计数)。因为只有一个智能指针指向对象,所以unique_ptr智能指针的赋值函数,拷贝构造函数,都被禁用了,构造函数添加了explicit关键字修饰,不能使用转换函数,即:不能隐式转换构造unique_ptr指针,总之,原始指针过于简陋,虽然强大,但是需要考虑的太多了,对菜鸡不友好。

2024-08-05 18:01:01 884

原创 Modern C++ 函数发展:从函数指针到匿名函数

函数作为最小的代码单元,在C++这个大杂烩中,可以跟很多特性结合,较为复杂,本文讲解C++中函数是如何一步步演变的。

2024-08-05 11:47:35 1212

原创 数值分析:线性方程组&行列式计算

对于一个n×nn \times nn×n的矩阵A,其行列式的可以记作det(A)det(A)det(A)或者∣A∣|A|∣A∣。对于方阵A来说,可以将它看成n个行向量的组合,也可以看成n个列向量的组合,不管是哪一种,行列式的绝对值都等于这n个向量所张成的n维立体的超体积。换句话说,对于方阵来说,行、列向量的区分不改变行列式。定义行列式方式有三种:定义为:det(A)=∣A∣=∣a11a12...a1na21a22...a2n............an1an2...ann∣=∑p(−1)τ(p)∏i=1

2024-08-02 19:45:24 1014

原创 modern C++:闭包与匿名函数

现代C++下的闭包与匿名函数机制

2024-07-11 21:43:45 847

原创 神经网络优化器-从SGD到AdamW

优化器的数学原理,以及优化器的发展,从SGD到AdamW。

2024-05-22 20:58:28 1307

原创 深度学习模型部署(十四)CUDA编程-基本流程&相关工具

可以使用C++11中的chrono库来进行计时,也可以使用cuda事件来计时,这里展示用cuda事件来计时,省略了无关的代码例如内存初始化等步骤。可以看到时间扩大了很多,再算一遍得到有效带宽:248.35268656412760416666666666667GB/s略小于显卡的有限带宽。该工具在11.6以后就被弃用了,现在使用的是Compute Sanitizer。上面那个计时代码没用进行free,会导致内存泄漏,可以使用工具检测一下试试。CUDA提供了名为CUDA-MEMCHECK的工具集’具体包括。

2024-05-22 16:18:02 1055

原创 并行编程(一)相关技术&工具&理论基础

SIMT在GPU中使用,SIMT指单指令多线程,以线程为单位,所有的线程代码相同,但是处理的数据可能不同,例如Nvidia的GPU,动则上千线程。8个线程是逻辑宽度。C++11以后在编译器层提供了内存模型的选项,是对体系结构中的内存模型的进一步封装,如果在C++中选择了强顺序,那么在ARM这种弱顺序的平台上生成的代码会添加很多内存屏障以确保强顺序。一条指令在CPU中的运行需要经过:取指令,译指,发射,执行,存储这几个步骤,除了指令所在的执行环节外,其他环节的电路空着也是空着,所以就提出了流水线技术。

2024-05-20 17:47:51 925

原创 Modern C++(二)C++并行编程

C++11并行编程知识点 & 案例代码

2024-05-19 20:59:00 1029

手写数字识别onnx模型

一个简单的CNN模型,用于识别mnist数据集中的手写数字

2024-03-02

空空如也

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

TA关注的人

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