自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (3)
  • 收藏
  • 关注

原创 【计算机网络】什么是 A、B、C 类地址?什么是子网掩码?

计算机网络,网络地址,A、B、C 类地址,子网掩码

2022-03-09 11:12:52 6566

原创 【单片机】STM32 最小板 学习笔记

目录&索引前言第一章 前期工作准备软件获取STM32 资料相关下载硬件准备第二章 单片机系统介绍第三章 库函数工程模板建立第一步,下载固件库,文件分类第二步,打开 mdk5 创建工程第三步,连接 ST-LINK,配置,下载 LED 点亮程序第四章 启动文件第五章 时钟第六章 GPIO 与寄存器方法第七章 串口下载第八章 库函数工程模板(led)第九章 库函数工程模板(button)第十章 位带操作第十一章 SysTick 定时器第十二章 中断第十三章 定时器第十四章 串口 USART(一)第十五章

2022-01-26 17:41:21 1295

原创 【PCL】ICP 旋转、平移实现深究,奇异值分解 SVD 推导(精析)

目录&索引前言参考书目SVD 详细推导(V 的构造、Ε 奇异值、U 的构造及其证明)ICP 历史文献(SVD 方法)ICP (SVD 为代表的代数方法推导,及手写实现)小结前言参考书目为博主个人推荐。个人整理,供参考。参考书目SVD 详细推导(V 的构造、Ε 奇异值、U 的构造及其证明)李航 《统计学习方法》 第二版,第 15 章 奇异值分解知识点归纳,基础理论、几何解释、应用介绍三大部分。需要提前掌握的线代及泛函分析知识点,整理如下:特征值,特征向量,基础解系,向量标准化,单位

2021-11-04 14:39:14 1228

原创 【数学】向量范数和矩阵范数(几种范数 norm 的简单介绍)

目录&索引一、什么是范式二、向量范式1-范数2-范数P-范数∞-范数-∞-范数三、矩阵范式1-范数2-范数∞-范数F-范数四、小结一、什么是范式范数,是具有“长度”概念的函数。在线性代数、泛函分析及相关的数学领域,范数是一个函数,是矢量空间内的所有矢量赋予非零的正长度或大小。二、向量范式1-范数1-范数(表示向量元素绝对值之和)norm(x, 1)2-范数2-范数(表示向量长度)norm(x, 2)一般没加下标的范数,是省略了下标 2,代表的意思为求向量模长。P-范数P-

2021-11-03 16:27:53 10862 2

原创 【PCL】ICP 源码分析

目录&索引一、ICP 介绍二、demo 示例三、源码分析align() 函数computeTransformation() 函数estimateRigidTransformation() 函数四、小结一、ICP 介绍ICP(Iterative Closest Point),即最近点迭代算法,是最为经典的点云配准算法。其方法在于,通过求取源点云和目标点云之间的对应点对,基于对应点对构造平移、旋转矩阵,利用所求矩阵,将源点云变换到目标点云的位置,估计变换后源点云与目标点云的误差函数,若误差函数值大

2021-10-28 14:41:40 3615 7

原创 【PCL】PCL 常用方法汇总(持续更新)

目录&索引pcl::PointCloud::Ptr 和 pcl::PointCloud 相互转换查找点云 x,y,z 最值已知点索引,从原点云拷贝对应索引点到新点云删除、添加对应索引点对点云进行全局、局部变换FLANN KdTree 查询 k 近邻计算点云索引,即 KdTree计算质心pcl::PointCloud::Ptr 和 pcl::PointCloud 相互转换#include <pcl/io/pcd_io.h>#include <pcl/point_types.h

2021-10-26 14:38:33 489

原创 【PCL】3 维点云为什么用 4 维转换矩阵?目的,统一实现平移、旋转等操作

目录&索引一、前言——疑问,PCL 中 PointXYZ 结构体源码,3 维点云为什么存 4 个数?二、解释——图形学矩阵三、3 维点云平移、旋转实现 demo 参考代码可视化四、小结一、前言——疑问,PCL 中 PointXYZ 结构体源码,3 维点云为什么存 4 个数?/** \brief A point structure representing Euclidean xyz coordinates. (SSE friendly) * \ingroup common */str

2021-10-26 11:42:22 762

原创 【C++】二维数组、指针数组 new 及 delete 用法,hash_map demo 实现

目录&索引一、前言二、new 指针数组 hash_map demo 实现三、小结一、前言C++ 堆空间变量,包括平时写算法题,常常用的是 new 单一变量,偶然发现自己不会 new 二维数组即 new 指针数组,说实话有点对自己失望,故总结此文,并附上 hash_map demo 实现。二、new 指针数组 hash_map demo 实现代码验证:// 简易 hash_map 原理及实现#include <iostream>using namespace std;

2021-08-05 17:02:04 1617

原创 【C++】ios::sync_with_stdio(false) 与 cin.tie(nullptr) 加速 IO

目录&索引一、前言题目二、ios::sync_with_stdio(false)三、cin.tie(nullptr)四、小结一、前言前面遇到大数据量(cin、cout 数据量级达到 1e5、1e6 ),考虑因为 IO 性能报错 TLE 选择 scanf、printf 替代 cin、cout,故解决问题,却没有深入研究其中的原因。只知关键词——同步,虽本质相同但差之千里,故记录本文。针对上述场景,这两天开始打的 LC 的周赛发现不少选手用的下述代码:// 已做相关改进,包括 cin.tie(

2021-07-11 10:28:25 5833 6

原创 【ROS】通过 URDF 模型完成小车外形建模,rviz 图形化,ROS 新手必知必看

目录&索引前言案例一、新建工程(重要),以自编写 launch 打开海龟及操控界面为例案例二、rosrun 输出 hello launch案例三、双海龟 remap 同步,rqt_graph 查看节点信息调试案例四、发送主题修改龟行走路线的颜色、绝对位置(附 ROS 通信架构分析)案例五、URDF 小车建模,rviz 图形化总结前言机器人项目仿真需求,故学习 ROS gazebo,通过 URDF 模型完成小车外形建模。该篇文章,主要通过多个案例,进一步理解 ROS 文件系统运作及 Topic

2021-06-29 01:05:22 3087

原创 【个人笔记】MySQL 数据库进阶 学习笔记

目录&索引前言第一章 MySQL 架构篇第二章 事务篇第三章 索引篇第四章 InnoDB 内存篇第五章 锁篇第六章 性能调优篇第七章 分库分表篇第八章 集群小结前言MySQL 数据库进阶 0611 完成 0620串起来的内容简述(仅基于个人理解)。MySQL 事务中 redo log、undo log 理解,undo log 实现 AC,同时 MVCC(RC、RR)下基于版本链创建规则实现 I,redo log 实现 D;索引对组合索引最左前缀研究,基本掌握索引优化思路;引擎 InnoDB

2021-06-20 22:14:14 1028 2

原创 【个人笔记】MySQL 数据库基础 学习笔记

TOC前言MySQL 数据库基础 0606 完成 0610当前除数据库以外,知识体系完整,较夯实。比方说包括,初次接触数据库锁概念,发现其等同进程间通信 IPC cond 与 mutex 对数据加锁,故死锁问题同需要考虑,所以初步判断,底层实现逻辑相同(待确认,接着理解相同点、不同点)。进度较快,但计划时间有限,提醒自己务必注重学习效率。0606 搭建环境,熟悉 MySQL 语法及规范,本地连接云服务器,解决 DataGrip 关键字默认 upper、console 无法中文输入等问题。紧接着 d

2021-06-11 00:05:08 915

原创 【个人笔记】网络编程与高级系统编程 学习笔记

目录&索引前言第一章 命令行解析第二章 文件与目录基本操作第三章 高级 IO P1第四章 高级IO P2第五章 多进程第六章 进程体系与进程管理第七章 进程间通信共享内存互斥锁和条件变量命名管道和匿名管道内存映射信号量消息队列第八章 多线程编程第九章 计算机网络第十章 网络编程粘包问题——C/S 文件传输软件的设计与实现网络并发模型结论前言网络编程与高级系统编程 0317 复习 0516 完成 0606历时三个月满当当,期间高强度两周搞定计网,完结撒花~数据库、还有重新开始刷题、面经,来啦来

2021-06-06 16:47:09 507

原创 【已解决】完美解决 ROS 安装 rosdep update(timed out)报错超时问题

目录&索引前言解决方案1. 修改 /etc/hosts 文件2. GitHub Proxy 代理加速2.1 修改 sources_list.py 文件2.2 修改 __init__.py 文件3. rosdep update 成功前言由于博主视觉检测项目在视觉算法实现的基础上,需要 IMU 融合视觉作真值验证及方法拓展,用到 ROS gazebo 仿真,故在此记录 ubuntu 20.04 安装 ROS Noetic 详细过程。 花了一个下午,解决相关报错,完成安装。附上官方 wik

2021-05-28 21:12:04 8738 28

原创 【Linux 进程间通信(IPC)详解 · 第二篇】内存映射的原理与共享内存

目录&索引1 概述2 内存映射3 共享内存3.1 共享内存代码(互斥锁、条件变量同步)3.2 测试结果4 mmap 与 shm 的区别5 小结1 概述Linux 中的两种共享内存——一种是我们的 IPC 通信 System V 版本的共享内存(shm),另外的一种就是内存映射(mmap)。2 内存映射内存映射的结果——通过直接操作虚拟内存来实现对文件的操作,进而不需要从用户态陷入内核态,以及不需要从内核态回归用户态,故可以加快执行速度。不是专门用来进行数据通信的,但它也可以用于进程间的

2021-05-23 01:59:55 583 4

原创 【个人笔记】《计算机网络》自顶向下 学习笔记

目录&索引前言第一章 概论第二章 应用层第三章 传输层第四章 网络层:数据平面第五章 网络层:控制平面第六章 链路层和局域网第八章 网络安全第九章 未来网络前沿技术前言《计算机网络》自顶向下 学习笔记 0429机械转码,发现掌握的计网知识点琐碎,故决定系统学习其原理、实现,选择《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》一书。计划之后 MIT 6.824 LAB 进阶。感触最深是从协议原理到实现,发现算法与数据结构的应用,如网络层控制平面 L

2021-05-12 16:16:39 663 3

原创 【C/C++】负数的右移运算

目录&索引1 计算机中数的二进制存储规则1.1 案例分析1.2 规则总结2 负数的右移运算3 正数的取反运算4 小结1 计算机中数的二进制存储规则1.1 案例分析你能看懂以下的运算吗?如果暂时还不行,请往下读,让我们一起把二进制存储规则彻底搞明白。#include <iostream>using namespace std;int main() { int n = -100; n = n >> 4; cout << n &l

2021-04-27 14:46:07 3401 3

原创 【Linux 进程间通信(IPC)详解 · 第一篇】进程间通信(IPC)基本概念

目录&索引0 前言1 概述0 前言IPC 是进程间通信(interprocess communication)的简称。传统上该术语描述的是运行在某个操作系统之上的不同进程间各种消息传递(message passing)的方式。1 概述以下三种类型的 IPC 合称为 System V IPC:System V 共享内存区System V 信号量System V 消息队列这个称谓作为这三种 IPC 机制的通称是因为它们源自 System V Unix。System V IPC 在访

2021-04-26 11:23:51 2833 5

原创 【C++】设计模式全解析——访问者模式(code c++)

目录&索引访问者模式程序代码懒汉式:加 lock,线程安全饿汉式:线程安全结论访问者模式在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。==通过这种方式,元素的执行算法可以随着访问者改变而改变。==这种类型的设计模式属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。程序代码懒汉式:加 lock,线程安全#include <iostream>#include <mutex&g

2021-04-17 20:48:57 1415 1

原创 【C++】设计模式全解析——单例模式(code c++)

目录&索引单例模式程序代码饿汉式:线程安全,注意 delete懒汉式:加 lock,线程安全结论单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。主要解决:一个全局使用的类频繁地创建与销毁。何时使用:想控制实例数目,节省系统资源的时候。如何解决:判断系统是否已存在单例,如果有则返回,没有则创建。关键代码:默认构造私有,拷贝构造私有(删除)。单例的实现主要有两种:懒汉式和饿汉式懒汉:故名思义,不到万不得已就不会去实例化类,也就是说在第一次用到类实例的时候才会去实例化

2021-04-17 17:53:17 206

原创 【Git】Git 将项目上传到 GitHub 仓库,协作开发(详细教程,学习 Git 看这个就够)

目录&索引1 前言2 准备工作(相关软件及库)3 实现步骤3.1 三维建模保存stl网格文件3.2 stl网格文件转obj网格文件a) 在工具里勾选SW插件ScanTo3D,后续格式保存要用b) 以ScanTo3D网格文件打开保存的stlc) 另存为ScanTo3D(*.obj)文件3.3 利用PCL采样可执行程序,实现obj网格文件转pcd点云a) 接下来就是最重要的两步了,在安装PCL的路径下bin文件夹打开,找到pcl_mesh_sampling_debug.exe或pcl_mesh_samp

2021-04-14 10:48:53 563

原创 【C++】自定义实现 vector 模板类(code c++)

目录&索引程序代码自定义实现 vector 模板类 code c++运行结果结论程序代码自定义实现 vector 模板类 code c++#include <iostream>#include <vector>using namespace std;class A {public : A() = delete; A(int x) : x(x) {} friend ostream &operator<<(ostrea

2021-04-13 14:34:16 1070

原创 【C++】自定义实现可配置哈希函数的哈希表类(code c++)

目录&索引功能与不足简述程序代码实现可配置哈希函数的哈希表类 code c++运行结果结论功能与不足简述如 HashTable 类定义所示,自定义实现 insert、erase、find、中括号访问及扩容等方法。不足——通过源码阅读扩容,其扩容发生包括如下三个方面:初始化、处理哈希冲突满足拉链长度且不满足 capacity、size 占到 capacity 一定比例。诸如此类,详见下文代码,尚待优化。扩容性能分析——rehash、创建新的数组、遍历放到新的数组。思考:其一,从避免扩容角度出

2021-04-12 23:55:18 473 1

原创 【C++】自定义实现 priority_queue——用 vector、堆实现(code c++)

目录&索引程序代码实现 priority_queue——用 vector、堆排实现 code c++运行结果结论程序代码实现 priority_queue——用 vector、堆排实现 code c++#include <iostream>#include <algorithm>#include <vector>using namespace std;class IQueue { // 实现 priority_queue, 接口定义public

2021-04-12 10:34:03 413

原创 【个人笔记】ubuntu 终端软件搜索、安装、卸载等常用命令整理(附国内源查找方法)

目录&索引1 linux apt 命令1.1 更新软件源sudo apt updatesudo apt upgrade1.2 搜索软件包apt-cache search string1.3 安装软件sudo apt install package_name1.4 卸载软件sudo apt remove package_namesudo apt purge package_name1 linux apt 命令1.1 更新软件源sudo apt updatesudo apt update 更新

2021-04-08 22:01:43 1067

原创 【C++】STL中 sort、priority_queue 自定义 cmp 方法汇总(code c++)

目录&索引1 sort 函数中的 cmp1.1 重载小于运算符1.2 自定义 cmp 函数1.3 自定义仿函数1.4 自定义 lambda 表达式1.5 输出结果(逆序)2 priority_queue 中的 cmp2.1 重载小于运算符2.2 自定义仿函数2.3 自定义 lambda 表达式2.4 输出结果(小顶堆)3 结论1 sort 函数中的 cmp1.1 重载小于运算符sort 重载小于运算符,重载示例如下:#include <iostream>#include &l

2021-04-01 16:22:10 4580 1

原创 【PCL】ICP(Iterative Closest Point)原理剖析——仿射变换(Affine Transformation)数学模型

目录&索引1 变换模型2 准备工作(相关软件及库)3 实现步骤3.1 三维建模保存stl网格文件3.2 stl网格文件转obj网格文件a) 在工具里勾选SW插件ScanTo3D,后续格式保存要用b) 以ScanTo3D网格文件打开保存的stlc) 另存为ScanTo3D(*.obj)文件3.3 利用PCL采样可执行程序,实现obj网格文件转pcd点云a) 接下来就是最重要的两步了,在安装PCL的路径下bin文件夹打开,找到pcl_mesh_sampling_debug.exe或pcl_mesh_sa

2021-03-31 22:10:03 1828

原创 【C++】面向对象编程,为什么将父类指针用子类实例化?(code c++)

目录&索引实例化概念定义形式为什么将父类指针用子类实例化?目的——实现多态程序代码实现多态 code c++运行结果结论实例化概念定义实例化是指在面向对象的编程中,把用类创建对象的过程称为实例化。是将一个抽象的概念类,具体到该类实物的过程。形式实例化过程中一般由类名 *对象名 = new 类名(参数1,参数2…参数n)构成。为什么将父类指针用子类实例化?目的——实现多态这个实例是子类的,但父类声明,所以正常情况下,访问不到子类中非继承自父类的成员。换句话说,只能访问到子类从父类继

2021-03-15 10:17:34 1760

原创 【C】自定义实现栈stack入栈和出栈(非链栈)(code c)

目录&索引程序代码实现栈stack入栈和出栈(非链栈) code c运行结果结论程序代码实现栈stack入栈和出栈(非链栈) code c#include <stdio.h>#include <stdlib.h>#include <time.h>typedef struct Stack { int *data; int size, top;} Stack;Stack *init(int n) { Stack *s =

2021-03-11 12:25:07 240

原创 【C】自定义实现循环队列 queue 入队、出队和扩容(非链队列)(code c)

目录&索引程序代码实现队列queue循环插入和删除 code c运行结果结论程序代码实现队列queue循环插入和删除 code c#include <stdio.h>#include <stdlib.h>#include <time.h>typedef struct Queue { int *data; int head, tail, size; // tail指向末尾元素的下一个位置 int count;} Queue;

2021-03-11 10:09:42 329

原创 【C】自定义实现单链表 list 插入、删除和翻转(code c)

目录&索引程序代码实现链表list插入、删除和翻转 code c运行结果结论程序代码实现链表list插入、删除和翻转 code c#include <stdio.h>#include <stdlib.h>#include <time.h>typedef struct Node { int data; struct Node *next;} Node;typedef struct List { Node head; //

2021-03-10 16:19:11 130

原创 【C】自定义实现顺序表 vector 插入、删除和扩容(code c)

目录&索引程序代码实现vector增、删、扩容功能 code c运行结果结论程序代码实现vector增、删、扩容功能 code c#include <stdio.h>#include <stdlib.h>#include <time.h>typedef struct Vector { int *data; int size, length;} Vec;Vec *init(int n) { Vec *v = (Vec *

2021-03-10 10:36:31 192

原创 【C++】自定义实现 shared_ptr 智能指针(bug 求助贴)(code c++)

目录&索引程序代码实现shared_ptr智能指针 code c++运行结果结论程序代码实现shared_ptr智能指针 code c++#include <iostream>using namespace std; class A {public : A() { cout << "defualt constructor" << endl; } ~A() { cout <<

2021-03-09 21:22:17 156

原创 【C++】运算符重载实现复数类的加减乘除(code c++)

目录&索引程序代码实现复数类的加减乘除 code c++运行结果结论程序代码实现复数类的加减乘除 code c++#include <iostream>using namespace std;class Complex {public : Complex() : real(0), img(0) {} Complex(int real, int img) : real(real), img(img) {} Complex(const Complex

2021-03-09 17:01:03 2754 1

原创 【图论】bellman-ford 算法 + spfa 算法(基于队列优化)单源最短路(code c++)

目录&索引算法原理bellman-ford算法与spfa算法两者关系spfa算法通俗介绍(对比于dijkstra算法)程序代码bellman-ford code c++spfa code c++结论算法原理bellman-ford算法与spfa算法两者关系spfa 算法是 bellman-ford算法 的队列优化算法的别称,通常用于求含负权边的单源最短路径,以及判负权环。spfa 最坏情况下复杂度和朴素 bellman-ford 相同,为 O(nm)。spfa算法通俗介绍(对比于dijks

2021-03-04 22:44:27 358 1

原创 【图论】链式前向星 + dijkstra 算法 单源最短路(code c++)

目录&索引算法原理链式前向星dijkstra算法程序代码链式前向星 code c++dijkstra code c++结论算法原理链式前向星链式前向星可以理解为静态建立的邻接表,但比邻接表好写。记住,边的结构定义模拟链表。dijkstra算法Dijkstra 算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结

2021-03-04 08:55:16 1333 1

原创 【图论】邻接矩阵 + floyd 算法 多源最短路(code c++)

目录&索引算法原理程序代码code c++结论算法原理Floyd 算法是一个经典的动态规划算法,它又被称为插点法。该算法名称以创始人之一、1978 年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名。Floyd 算法是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,算法目标是寻找从点 j 到点 k 的最短路径。从任意节点 j 到任意节点 k 的最短路径不外乎 2 种可能,1 是直接从 j 到 k,2 是从 j 经过若干个节点 i 到 k。所以,算法假设 Dis(

2021-03-04 08:30:47 576 2

原创 【已解决】ubuntu 20.04 64 位 sshd_config 阿里云配置文件

目录&索引问题描述解决方案阿里云sshd_config配置文件(附)步骤1:控制台VNC远程连接步骤2:修改配置文件sshd_conf结论问题描述博主安装的是ubuntu20.04,配置阿里云服务器,错误修改sshd配置文件,导致无法连接服务器。ssh远程连接服务器,提示——登录实例失败,拒绝连接。解决方案阿里云sshd_config配置文件(附)步骤1:控制台VNC远程连接步骤2:修改配置文件sshd_conf快捷键ctrl + alt + t 打开终端,输入sudo vim

2021-03-03 11:23:45 2266

原创 【已解决】linux ssh 远程连接服务器,出现登陆慢、打字卡顿输入卡顿解决方案

问题描述:提示:这里可以添加学习目标例如:一周掌握 Java 入门知识解决方案:提示:这里可以添加要学的内容例如:1、 搭建 Java 开发环境2、 掌握 Java 基本语法3、 掌握条件语句4、 掌握循环语句...

2021-02-27 22:58:45 34349 6

原创 【软件安装教程】ubuntu20.04 安装 ROS Noetic 详细过程(含 timed out 解决方案)

前言由于博主视觉检测项目在视觉算法实现的基础上,需要IMU融合视觉作真值验证及方法拓展,用到ROS gazebo仿真,故在此记录ubuntu 20.04安装ROS Noetic详细过程。 花了一个下午,解决相关报错,完成安装。附上官方wikiros安装链接,请注意,根据博主文档安装报错ERROR,需先解决报错再执行下一步任务。当然,若在安装过程中有解决不了的难题,欢迎留言一起交流讨论。操作系统: ubuntu20.04ROS版本: Noeticubuntu20.04安装ROS Noetic详细过

2020-12-19 14:23:33 4717 3

SQL数据脚本.txt

博客《MySQL 数据库基础 学习笔记 0606》对应的 SQL 数据脚本,免费自取。传送门:https://blog.csdn.net/idiot5lie/article/details/117793661

2021-06-11

三级 Linux 应用与开发技术考试大纲(2021年版).pdf

全国计算机等级考试 三级 Linux 应用与开发技术考试大纲(2021年版) 有需要的话,免费自取 已通过 3 月份考试

2021-03-03

Merry Christmas ( 雪人与圣诞树 )

雪人与圣诞树,送给你心爱的 ta

2020-12-25

空空如也

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

TA关注的人

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