摘要:
1、unordered_set是什么 unordered_set 容器,可直译为“无序 set 容器”。即 unordered_set 容器和 set 容器很像,唯一的区别就在于 set 容器会自行对存储的数据进行排序,而 unordered_set 容器不会。 unordered_set的几个特性 阅读全文
摘要:
1、vector是什么 vector我们常将其称作向量,是STL中实现的一个容器,其本质是一个动态数组 2、vector的初始化 仅指定长度 不具有初值 //定义具有10个整型元素的向量(尖括号为元素类型名,模板参数) vector<int>a(10); 指定长度 且指定初值 //定义具有10个整型 阅读全文
摘要:
几种排序算法的联系 希尔排序相当于直接插入排序的升级,同属于插入排序类; 堆排序相当于简单选择排序的升级,同属于选择排序类; 快速排序是最慢的冒泡排序的升级,属于交换排序类; 快速排序的基本思想 快速排序是通过不断比较和移动交换来实现排序的,只不过它的实现增大了记录的比较和移动的距离,将关键字较大的 阅读全文
摘要:
归并排序算法简介 归并排序就是利用归并的思想实现的排序方法 假设初始序列含有n个记录,看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到 |n/2|(|x|表示不小于x的最小整数)个长度为2或1的有序子序列;再两两归并,如此重复,直至得到一个长度为n的有序序列为止,这种排序方法称为2路 阅读全文
摘要:
堆排序算法用到的大顶堆/小顶堆 以使用大顶堆的堆排序算法为例,其实堆排序算法的原理就是不断将剩余的未完成排序的数据构造成一个大顶堆,然后每次将大顶堆的堆顶元素(也就是最大的元素)取出,如此循环即完成了堆排序。 大顶堆:每个结点的值都大于或等于其左右孩子结点的值,如下图所示,就是一个大顶堆: 堆排序算 阅读全文
摘要:
二叉排序树删除操作的几种情况 要删除的结点在二叉排序树中是叶子结点: 则可以直接删除,因为删除它们对于整棵树来说,其他节点的结构并不受到影响 要删除的结点只有左子树或者右子树: 删除结点后,将它的左子树或右子树移动到删除结点的位置即可(子承父业) 要删除的结点既有左子树又有右子树: 简单的想法:让删 阅读全文
摘要:
关键路径VS最短路径 关键路径算法一般会在最短路径算法的后面进行讲解。 这就需要我们首先区分出关键路径算法和最短路径算法在前提上的不同: 最短路径算法是找尽可能短的路来保证路径长度最小,你只需要找出一条最短的路就行。 但是在关键路径里,一个顶点是有多个前提的,只有前提的路径都走完,才能发生该顶点的事 阅读全文
摘要:
1、前言 首先,我们需要大致理解Kmp算法的整体思想以及大致原理,同时需要学会手算next数组的方法。这些都是很简单并且容易理解的,本文不再赘述,如对以上内容仍有疑问,推荐一个B站视频讲解:BV1jb411V78H 另外本文的所有图片出处:B站视频 BV16X4y137qw 2、代码 以下是本文讲要 阅读全文
摘要:
背景:一个项目需要完成一个工件表面粗糙度的测量系统,该系统的驱动方式是双路的步进电机,分别驱动X轴和Y轴的工作太移动,以完成粗糙度的测量。 硬件介绍: 主控:STM32F103C8T6 电源:CJ7805 + AMX1117 电机:42步进电机 驱动:DRV8825模块*2 通信:USART 采样: 阅读全文
摘要:
背景:在做一个中国象棋机器人的项目,项目中需要识别象棋棋子上的汉字,计划采用CNN的方式实现这一功能。在制作CNN训练的数据集的时候,需要一个截取象棋中心文字的问题。当我们定位到一个象棋的位置之后,我首先将包裹象棋的一个50*50的矩形取阈截取出来,但是,发现如果只是做矩形的截取的话,截取的图像仍然 阅读全文
摘要:
1、首先确认libcanberra-gtk是否安装: 在终端输入如下命令: locate libcanberra-gtk-module.so 若输出如下,则说明libcanberra-gtk已经安装: yutian@linux-yutian:~$ locate libcanberra-gtk-mod 阅读全文
摘要:
参考资料: 1)cJson源码:https://sourceforge.net/projects/cjson/ 2)知乎《从零开始的 JSON 库教程》系列专栏:https://zhuanlan.zhihu.com/json-tutorial 1、Json是什么: JSON(JavaScript O 阅读全文
摘要:
1、多于一条语句的宏: 当C语言中的宏定义包含了多余一条语句时,如下面这种情况: #define M() a(); b() 如果后面的程序需要使用这个定义的宏M(),则可能产生错误。 2、错误演示: #define M() a(); b() if (cond) M(); else c(); /* 预 阅读全文
摘要:
1、简介: 断言(assertion)是 C 语言中常用的防御式编程方式,减少编程错误。 2、使用场景: 最常用的是在函数开始的地方,检测所有参数。有时候也可以在调用函数后,检查上下文是否正确。 3、编译: C 语言的标准库含有 assert() 这个宏(需 #include ),提供断言功能。 当 阅读全文
摘要:
对于一般的变量来说,其实没有顶层const和底层const的区别,而只有向指针这类复合类型的基本变量,才有这样的区别。 一、如何区分顶层const和底层const 指针如果添加const修饰符时有两种情况: 1 、指向常量的指针:代表不能改变其指向内容的指针。 声明时const可以放在类型名前后都可 阅读全文
摘要:
1、进入Github网站,选择新建仓库 2、输入仓库名称等信息之后,选择创建仓库 3、完成之后,可以获得一个仓库的地址 4、进入计算机中需要放置项目的目录,讲仓库clone下来(右键git bash,输入如下命令) git clone https://github.com/XXXXX/Test.gi 阅读全文
摘要:
实物图片: 项目介绍: 整体项目设计基本参照Hack实验室(B站账号如下)的WIFI时钟项目,主要对硬件进行了移植与少量修改,从Kicad移植到Altium designer,使用了Hack实验室WIFI时钟的第二版硬件搭配Hack实验室WIFI时钟的第一版软件完成。 硬件部分: 电路板长度是9.6 阅读全文
摘要:
IDE:Clion 背景:使用学校的邮箱完成学生认证登录JetBrain的IDE,第一次登录成功,后面位置原因无法登录,提示:Certificate used to sign the license is not signed by JetBrains root certificate (2) 解决 阅读全文
摘要:
安装教程参考: https://blog.csdn.net/qq_38189484/article/details/105237757 虚拟机死机无法关机问题: https://blog.csdn.net/s546889/article/details/105045714?utm_medium=di 阅读全文
摘要:
环境: 树莓派4B + Raspberry Pi OS(64位) 报错信息: 类似:No JDK found. Please validate either CL_JDK, JDK_HOME or JAVA_HOME env 解决: 系统中没有安装JDK,这个64版本的系统原生可能没有带JDK。 网 阅读全文
摘要:
环境:树莓派4B,respberrypi系统(64位) 1、修改软件源 输入如下命令修改软件源配置文件 sudo nano /etc/apt/sources.list 将原始内容注释掉,修改为如下内容:(中科大软件源) deb http://mirrors.ustc.edu.cn/raspbian/ 阅读全文
摘要:
参考:unoob.com 的git教程 常用操作表格: 1、Git工作流程: 2、Git的工作区、暂存区和版本库 工作区:在自己的电脑中看到的目录 暂存区(英文叫 stage 或 index):一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引 阅读全文
摘要:
参考github: https://github.com/2293736867/JetBrainsActivation 阅读全文
摘要:
3D-2D:PnP问题 描述了当知道n个3D空间点及其投影位置时,如何估计相机的位姿。 PnP 问题有很多种求解方法,例如:用 3 对点估计位姿的P3P、直接线性变换DLT、EPnP(Efficient PnP) 、UPnP等等。此外,还能用非线性优化的方式,构建最小二乘问题并迭代求解,也就是万金油 阅读全文
摘要:
分析原因: 我最近发生了两次这个问题,第一次重装系统才解决,但是因为环境太难配了,第二次研究了半天应该怎么解决。 很明显不是死机,时间在更新说明系统实际是在正常运行的,但是此时鼠标和键盘无效,我们无法与系统进行交互,实际的问题是我们在安装或者卸载某些软件的时候,导致xserver-xorg-inpu 阅读全文
摘要:
单目相机模型: 针孔相机模型的映射关系: 化为矩阵形式: 其中,中间的矩阵被称为相机的内参矩阵K。通常认为,相机的内参在出厂之后是固定的,不会在使用过程中发生变化。有点相机生产厂商会告诉你相机的内参,而有时需要你自己确定相机的内参,也就是所谓的标定。(目前标定算法已经比较成熟,如著名的单目棋盘格张友 阅读全文
摘要:
概述: 在实际的SLAM中,我们除了对旋转进行表示之外,还需要对它们进行估计和优化。因为在SLAM中位姿是未知的,而我们需要解决什么样的相机位姿最符合当前的观测数据这样的问题,一种典型的方法是把他们构成一个优化问题,求解最优的的R,t,使误差最小化。 旋转矩阵姿自身是带有约束的(正交且行列式为1)。 阅读全文
摘要:
旋转矩阵与欧式变换: 其中e1,e2,e3和e1',e2',e3'分别为旋转变换前后的坐标系的标准正交基 上式左乘: 则有: 其中中间的矩阵定义为R,它描述了旋转本身,因此称之为旋转矩阵——旋转矩阵是行列式为1的正交矩阵。(行列式为1的正交矩阵也是一个旋转矩阵) 特殊正交群(Special Orth 阅读全文
摘要:
第一章 SLAM(Simultaneous Localization and Mapping(同时定位与地图构建)):搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己的运动。 第二章 考虑携带于机器人本体上的传感器——IMU、激光、相机。 SLAM一般分为激 阅读全文
摘要:
一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: error while loading shared libraries: libGCBase_gcc421_v3_0.so cannot open shared object file: No such file 阅读全文
摘要:
ubuntu安装Sophus报错(系统版本:18.04) 遇到的问题: /Sophus/sophus/so2.cpp:32:26: error: lvalue required as left operand of assignment unit_complex_.real() = 1.; /Sop 阅读全文
摘要:
主要参考: https://www.cnblogs.com/lfri/p/10769144.html 搜狗输入法候选区乱码问题解决办法: https://blog.csdn.net/huayunhualuo/article/details/103722937 https://www.cnblogs. 阅读全文
摘要:
步骤: 1、第一个命令:下载man帮助的中文包 2、第二个命令:用vi编辑man的配置文件 3、第三个命令:将所有的/usr/share/man替换为/usr/share/man/zh_CN 具体操作: 1、直接输入命令: apt-get install manpages-zh 2、直接输入命令: 阅读全文
摘要:
主要步骤: https://blog.csdn.net/cocoaqin/article/details/78163171 依赖包libjasper-dev无法安装的问题解决办法参考: https://blog.csdn.net/weixin_41053564/article/details/812 阅读全文
摘要:
1、在vscode中的扩展中搜索:GBKtoUTF8 2、下载并重新加载,就解决了中文乱码的问题 阅读全文
摘要:
我用的系统是ubuntu20.04LTS。 非 root 用户下命令行是有配色的,如下图所示,主要是前面的用户名显示是有颜色的,这样方便区分命令的输出文本和实际输入的命令(实际输入的命令会在有颜色的用户名后面),也方便找到上一条命令的输出的开始位置。 但是su到root用户后,用户名显示就没有颜色了 阅读全文
摘要:
SwitchyOmega插件下载地址:https://xbsj9875.xyz/download/SwitchyOmega_Chromium.crx 把下载好的SwitchyOmega_Chromium.crx插件直接拖到浏览器 提示:程序包无效:"CRX_HEADER_INVALID" 解决办法: 阅读全文
摘要:
ubuntu下无法正常使用qq、wechat等软件 注:使用wine运行qq、wechat,我这里经常出bug qq for linux界面太难受 我使用两台电脑,一台window,一台ubuntu,在互传文件时,我使用基于SSH的FileZilla软件(使用方法见2020年5月31日的随笔:htt 阅读全文
摘要:
报错信息: error C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WA 阅读全文
摘要:
解决方法: 如果开机不是自动登录,可以将密钥环密码设为和登录密码一致。这样登录后自动解密密钥环。 如果是自动登录,可以将密钥环密码留空。 将密钥环设置为空的方法: 1. 用seahorse命令从命令行启动图形界面 2.在左侧面板中,右击“默认密钥环”,并选择“修改密码” 3.输入你的当前登录密码。 阅读全文