- 博客(43)
- 收藏
- 关注
原创 查看笔记本预装系统的产品密钥
cmd命令:wmic path softwarelicensingservice get OA3xOriginalProductKey搞定cmd命令:wmic path softwarelicensingservice get OA3xOriginalProductKey搞定cmd命令:wmic path softwarelicensingservice get OA3xOriginalProductKey搞定cmd命令:wmic path softwarelicensingser
2022-03-25 20:07:51
923
原创 VSLAM14-习题&答案-ch1
线性方程A*x=b ,如果已知A、b,需要求解x,如何求解?对A、b有什么要求?提示:从A的维度和秩的角度来分析。当b=0时,设A为m x n 矩阵,则齐次线性方程组Ax = b 有非零解的充分必要条件是系数矩阵A的秩r(A)< n。当b!=0时,非齐次方程组Ax = b 有解的充分必要条件时系数矩阵的秩等于增广矩阵的秩,即r(A)= r(A|b)高斯分布是什么?他的一维形式是什么样子?高维形式又是什么样子?高斯分布又称正态分布,是一个常见的连续概率分布。正态分布的数学期望值或期望值μ..
2021-10-31 21:23:48
238
原创 JZ11 - JZ15
JZ11 二进制中1的个数该题中求二进制中1,考虑从低位出发,每次消除最低位的1,如检测数字是n,那么其与n-1的与运算,会导致最低位的1变为0,通过这个性质,我们保存与运算的结果,并将其存放在n中,只需要记录一共进行了多少次与运算后,n=0,就可以得到1的个数,代码如下:class Solution {public: int NumberOf1(int n) { int ans=0; while(n){ ++ans;
2021-09-21 21:10:45
111
原创 JZ6 - JZ10
JZ6 旋转数组的最小数字根据 题中给出的要求,空间复杂度为O(1),时间复杂度O(logn);那么很明显,肯定是二分法注意算法逻辑,左端数字肯定大于等于右端数字,通过这个特性进行剪枝;也就是当二分到左端小于右端时,左端就是答案class Solution {public: int minNumberInRotateArray(vector<int> rotateArray) { int left = 0, right = rotateArray.size()
2021-09-19 17:59:47
132
原创 JZ1-JZ5
JZ1 二维数组中的查找//本体暴力,时间复杂度O(mn), 根据题中给的规律://每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。//考虑从数组矩阵右上方切入,如果target小于当前位置左边的数字,左移,否则下移//那么时间复杂度就到了O(m+n)class Solution {public: bool Find(int target, vector<vector<int> > array) { if(array.emp
2021-09-18 13:23:49
174
原创 C++11常用新特性
C++11是一种目前最常用的C++标准,可以说不同标准下的语言,给人的感觉如同不同语言。面试中的C++,除了基本语法和基本特性(如:三大特性:封装、继承、多态,虚函数等)对C++11标准的考察也是重中之重。一般会围绕智能指针、lambda、auto关键字等典型特性来询问。下面是关于C++11标准的回答。1、C++11有哪些新特性?nullptr代替了NULL引入了auto和decltype这两个关键字实现了类型推导基于范围的for循环 for(auto& i: res)类和结构体中的
2021-09-12 20:43:06
467
原创 sort()排序函数
sort函数的用法:void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);日常使用的时候,基本上,我们只会用到前面两个参数,分别代表的是排序的起始位置和终止位置,sout的第三个参数表示的是排序的规则,很多时候,往往我们的需求不仅仅是要求从小到大排序,此时,我们就可以自定义排序规则,通过自定义comp函数,达到排序目的;comp函数可以自己编写,以适应不同的数据结构。比如要排列一个结构体,采用降
2021-04-08 15:53:16
428
原创 Leetcode报错runtime error
Line 1034: Char 34: runtime error: addition of unsigned offset to 0x602000000310 overflowed to 0x60200000030c (stl_vector.h)原因很简单,往往是由于下标出现了小于零的-1
2021-04-02 20:05:31
7270
1
原创 记录一下哈希表查找
Q:查找两链表的公共结点?第一想法是双循环,接下来记录一下哈希表查找,其实思路是一样的,循环查找从在链表中查找到哈希表;哈希查找:在哈希表中查找某个值是否存在:if(m.find(cur->val)!=m.end())...
2021-03-27 14:54:14
347
原创 ROS下配置编译规则和自定义通信数据接口
配置编译规则CMakeLists.txt什么是Cmake?ROS下注意事项package.xml自定义通信数据接口话题通信服务通信CMakeLists.txt什么是Cmake?CMake 是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的 Makefile 或者 project 文件,CMake 并不直接建构出最终的软件,而是产生标准的建构档(如 Makefile 或 projects)。ROS下注意事项由于在创建功能包时,已经生成了CMakeL
2021-03-20 22:15:36
398
原创 ROS下同步通信topic和异步通信service的异同
ROS下同/异步通信方式的异同异步通信话题(Topic)--异步通信机制消息(Message)--话题数据示意图同步通信服务(Service)--同步通信机制示意图话题与服务的区别异步通信话题(Topic)–异步通信机制节点间用来传输数据的重要总线;使用 发布/订阅 模型,数据由发布者传输到订阅者,同一个话题的发布者或订阅者可以不唯一;消息(Message)–话题数据具有一定的类型和数据结构,包括ROS提供的标准类型和用户自定义类型;使用与编程语言无关的 .msg 文件定义,编译过程中产
2021-03-20 20:59:56
1163
1
原创 ROS项目开发流程和注意事项
创建工作空间工作空间(workspace)是一个存放工程开发相关文件的文件夹;其中包括:src:代码空间(Source Space)build:编译空间(Build Space)devel:开发空间(Development Space)install:安装空间(Install Space)创建工作空间mkdir -p ~/catkin_ws/srccd ~/catkin_ws/srccatkin_init_workspace编译工作空间cd ~/catkin_ws/catki
2021-03-20 20:17:40
647
原创 反转链表(双指针+递归)
本题出自LeetCode第206题最普通的方法,无非是找一中间量,用于二者之间的置换,采用双指针;class Solution {public: ListNode* reverseList(ListNode* head) { ListNode* cur=head,* pre=NULL,* temp;//trmp用于保存cur的下一个节点 while(cur){ temp=cur->next;//由于下一句,需要改变cur->
2021-03-09 16:13:52
348
原创 deque 和 vector 的区别
deque与vector非常相似。它也采用动态数组管理元素,提供随机存取,有着和vector几乎一样的接口。不同的是deque的动态数组头尾都开放,因此能在头尾两端进行快速安插和删除。deque通常实作为一组独立区块,第一区块朝某方向扩展,最后一个区块朝另一个方向扩展。deque与vector的主要不同之处在于:两端都能快速安插和删除元素,这些操作可以在分期摊还的常数时间(amortized constant time)内完成。元素的存取和迭代器的动作比vector稍慢。迭代器需要在不同
2020-12-02 19:52:15
2472
原创 C++函数的形参和实参以及*& 用法
形参和实参实参(argument):全称为"实际参数"是在调用时传递给函数的参数. 实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。形参(parameter):全称为"形式参数" 由于它不是实际存在变量,所以又称虚拟变量。是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数.在调用函数时,实参将赋值给形参。因而,必须注意实参的个数,类型应与形参一
2020-11-13 10:40:43
8654
原创 C++中NULL和nullptr的区别
传统意义上来说,c++把NULL、0视为同一种东西,有些编译器将NULL定义为 ((void*)0),有些将其定义为0.c++不允许直接将void隐式的转化为其他类型,但是如果NULL被定义为 ((void)0),当编译char *p = NULL;NULL只好被定义为0。还有:void func(int);void func(char*);如果NULL被定义为0,func(NULL)会去调用void func(int),这是不合理的所以引入nullptr,专门用来区分0、
2020-11-12 15:52:13
161
转载 数据结构(二)线性表
线性表是最常用且是最简单的一种数据结构。形如:A1、A2、A3….An这样含有有限的数据序列,我们就称之为线性表。 线性表 一、线性表的定义二、线性表的抽象数据类型三、线性表的顺序存储 1. 顺序存储定义2. 顺序存储的实现方式3. 顺序存储的优缺点 四、线性表的链式存储 1. 链式存储定义2. 链式存储的实现方式 链式存储的优缺点 五、其他线性表 循环链表双链表静态链表间接寻址 参考 一、线性表的定义 线
2020-11-11 19:14:21
379
原创 数据结构(一)数据结构与算法
数据结构与算法数据结构的基本概念基本概念和术语数据结构三要素算法和算法评价算法的基本概念算法效率的度量数据结构的基本概念基本概念和术语1、数据数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中被计算机程序识别和处理的符号的集合。2、数据元素数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。一个数据元素可以由若干数据项组成,数据项是构成数据元素不可分割的最小单位。eg,学生记录就是一个数据元素,它由学号、姓名、性别等数据项组成。3、数据对象数据对象是具有相同性质的数
2020-11-11 16:28:52
454
原创 CMake error with move_base_msgs
在ROS-SLAM navigation模块的学习过程中,编译程序过程中报错,如下:CMake Warning at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:76 (find_package): Could not find a package configuration file provided by "move_base_msgs" with any of the following names: move_ba
2020-10-30 21:44:40
1295
原创 VSLAM-视觉里程计VO(三)3D-2D:PnP
1024,码个博客记录一下https://blog.csdn.net/weixin_45592315/article/details/109166481待补充
2020-10-24 22:54:15
254
原创 Ubuntu16.04下PCL1.7的安装调试
Ubuntu16.04下PCL1.7的安装调试PCL是什么?安装PCL1.7版本1、更新2、安装VTK3、安装PCL测试文件PCL是什么?PCL(Point Cloud Library)是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结构,涉及到点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。支持多种操作系统平台,可在Windows、Linux、Android、Mac OS X、部分嵌入式实时系统上运行。如果说Op
2020-10-21 20:49:57
1646
1
原创 Ubuntu16.04下安装ROS Kinetic(爬坑版)
ROS kinetic安装过程1、设置sources.list2、设置key(公钥已更新)3、更新package4、安装ROS Kinetic完整版5、初始化rosdep6、配置ROS环境7、安装依赖项8、测试ROS是否安装成功9、爬坑心得这是一部爬坑的血泪史,怎么就部分文件突然被墙了呢,本来觉得ROS安装还是对小白挺友好的,并不需要写博客记录,本文用来记录一下解决方案。这个部分,所有的教程都是根据ROS wiki来的,基本上都是翻译了一下网页,就简单贴个流程;1、设置sources.listsud
2020-10-20 21:37:48
1386
10
原创 VSLAM-视觉里程计VO(二)2D-2D:对极几何
视觉里程计关键词:对极约束、本质矩阵、八点法前言上一篇文章中,简单说了一下特征点法的理论依据和应用。现在,假设我们从两张图像中得到了一些配对好的特征点,通过若干匹配好的特征点对,就可以求解到这些二维图像点的对应关系,恢复出在两关键帧之间相机的运动,那么,需要多少对匹配好的特征点才能正确估计相机位姿变换?又该怎样得到相机之间的位姿变化呢?基础概念(一)以上的问题就称之为对极几何,其完整概念为:对极几何(Epipolar Geometry)是Structure from Motion问题中,在两
2020-10-19 20:08:07
524
1
原创 Ubuntu下python的版本切换
Ubuntu16.04自带的python版本会有2.7.12以及3.5.2,但是其默认的版本为python2.7,由于两个版本之间差距很大,毕竟横跨了一个大版本,而且一些东西是不兼容的,我们需要指定python的版本。当然,直接把python2移除也行,但是版本的切换有利于我们在同一台电脑上面使用不同的版本的python(每次遇到新项目,最烦的往往是版本适配问题,有些老一点的代码甚至要考古老版本才能运行)查看当前版本python --version#orpython -V如果想查pytho
2020-10-19 18:46:28
220
原创 VSLAM-视觉里程计VO(一)特征点法
视觉里程计概念一个slam系统分为前端和后端,其中前端也称之为视觉里程计(VSLAM领域),视觉里程计根据相邻图像(关键帧)的信息估计粗略的相机运动(之所以是“粗略”,是因为存在噪声和匹配误差,这也突出后端的重要性),提供较好的初始值。视觉里程计的算法主要分成两个大类:特征点法和直接法。基于特征点法的前端,一直以来都是视觉里程计中的主流算法,具有稳定,对光照、动态物体不敏感的有事,是目前比较成熟的方案。特征点法视觉里程计,即根据一系列的图像估计相机的运动。图像,从本质来说是一个矩阵,包含亮
2020-10-17 14:40:07
854
原创 找出数组中第K大的数,时间复杂度O(n)
通常在K比较小的时候,第一思路是进行K次循环,找出第一大、第二大。。。一直到第K大。这思路当然是没有问题,但是时间复杂度较高,而且K一旦太大,就不太适用了。可以用vector数组降序存储K个元素,符合条件的加入数组中:(K=3)class Solution {public: int thirdMax(vector<int>& nums) { vector<int> ans; for(auto n : nums){
2020-09-20 11:06:38
1619
原创 快慢指针、反转链表
单链表中快慢指针可用于找链表中点,模板如下: ListNode*slow=head,*fast=head; while(fast&&fast->next){ slow=slow->next; fast=fast->next->next; }反转链表,模板如下: ListNode* cur = head, * pre = NULL; //反转链表的模板 while(cur) { ListN
2020-09-17 19:38:44
196
原创 <报错记录> python文件在Linux系统下设置为可执行文件
在ROS工作空间中,一般用的是C++和python,在编译过程中,C++文件可以通过Cmakelist文件进行统一的编译,python不需要编译,但是需要将.py文件变成可执行文件:chmod +x file.py记得cd到py文件的路径下,(file对应文件名)接着source一下,就可以了...
2020-09-13 18:22:33
1121
原创 <报错记录> ros_control
使用gazebo过程中,需要对模拟机器人进行控制,由于之前安装ROS过程中,有一些功能包是没有安装上的,编译过程中报错如下:解决方法:安装一下ros_control即可sudo apt-get install ros-kinetic-gazebo-ros-control接下来编译就不会报错了。实际上,在ROS的编译过程中,是会经常遇到找不到ROS包的情况,ROS Wiki给出的方案是:单个软件包的安装,也可以安装某个指定的ROS软件包(注意替换package以及ROS版本号)sudo apt
2020-09-12 20:56:30
158
原创 论文阅读 主题:高动态自适应的深度结构光测量
论文标题:高动态范围三维形状测量的自适应数字条纹投影技术理论部分摘要:对于任何光学方法来说,测量具有大范围反射率变化的物体都是一个挑战。图像饱和导致捕获的条纹图案图像强度不正确,导致相位和测量误差。摘要提出了一种新的自适应数字条纹投影技术,该技术在测量物体表面反射率变化较大的三维形状时,避免了图像饱和,且信噪比高。相比以前的高动态范围的3 d扫描方法使用许多曝光和边缘模式预测,消耗大量的时间,该技术只使用两个边缘投影和图像捕获模式的初步步骤生成适应边缘模式,通过自适应调整的pixel-wise强度饱和像
2020-09-10 20:50:58
1307
原创 SimpleScreenRecorder安装与使用教程(Ubuntu)
作为生产力工具的Linux,可谓是功能强大;但与Windows系统不一样的是,好多软件都不支持,诸如微信,QQ,播放器等;这也太不方便了吧…希望厂商能推动一下Linux底下的开发,毕竟这国际形势,Win到时候也禁了就抓瞎了(扯远了,构建生态良好的Linux还是很有必要的);录屏工具也不像Windows那样五花八门,基本上大家用的多的也就:1)SimpleScreenRecorder;(最经典,功能齐全,你值得拥有)2)Peek;(同学推荐,虽然我没用,写上给个面子)3)Kazam;(这个很小很方便,可
2020-08-16 17:32:02
12674
4
原创 结构光测距+三维成像
一、硬件1、EPSON projector(普通投影仪,有4500,但是时间太赶,下次再用吧)2、HIKVISION camera*2 (海康威视的工业相机,镜头8mm)3、PC二、相机驱动由于系统是Ubuntu,首先要安装好相机的驱动,海康威视提供了MVS,直接到官网下载对应的软件包海康工业相机客户端下载好以后,安装MVS,重启电脑,在opt/MVS/bin目录下打开终端并输入指令./MVSPlayer即可打开工业相机客户端,之前下载的程序中有Demo,可以跑一下看看有什么问题我遇到
2020-08-11 16:17:51
1331
原创 VS Code C++语言调试或执行程序按回车窗口闪退的问题
由于刚下载好VS Code,安装调试过程中发现,测试程序无法读出键盘输入数据,一旦按下回车键,就会关闭CMD窗口,闪退,终端显示:终端将被任务重用,按任意键关闭。图片如下:更改后的代码:其实就只用在控制台应用程序exit(0);前一行加上 system(“pause”); 即可(别忘记;),使其在退出程序前调用系统的暂停命令暂停命令行,如果不加的话程序运行就会立即退出。此时记得加上头文件 #include<stdlib.h>结果:虽然依然显示终端将被任务重用,按任意键关闭,CMD窗口已经
2020-05-24 09:03:34
6912
2
原创 anaconda+python版本适配问题
关于anaconda+python的适配问题在anaconda上安装好了opencv的库文件,试了一下,能够读取图片,但是过了几天发现,突然无法读取了,GitHub上寻求帮助,官方答复说是python3.7会出现这些问题,将版本降到3.6就好,但是conda安装尝试多次无果网址搬运https://github.com/spyder-ide/spyder/issues/8288...
2020-05-21 18:42:10
337
原创 ubuntun16.04+cuda9.0+cudnn7+anaconda3+pytorch+anaconda3下py2安装pytorch
ubuntun16.04+cuda9.0+cudnn7+anaconda3+pytorch+anaconda3下py2安装pytorch一、电脑配置说明:电脑配置:LEGION笔记本CPU Inter Core i7 8代GPU NVIDIA GeForce GTX1060Windows10所需的环境:Anaconda3(64bit)CUDA-9.0CuDNN-7.1二、安...
2019-09-24 20:19:45
251
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人