自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c++中的结构体

关于结构体的一些东西1. 什么是结构体?:结构体是个集合,这个集合中有各种类型的数据.2. 如何声明一个结构体:struct Person { string name; string id; int age; string address; };3. 如何定义一个结构体对象:3.1: 在声明结构体的同时定义该结构体的对象struct Person { string name;

2021-06-09 10:38:51 236

原创 atan2() 反正切函数,atan() 的增强版,能确定象限

atan2() 反正切函数,atan() 的增强版,能确定象限atan2() 函数的功能是求 y/x 的反正切值。atan2() 是 atan() 的增强版,能够确定角度所在的象限。反正切函数 atan2() 和正切函数 tan() 的功能恰好相反:tan() 是已知一个角的弧度值,求该角的正切值;而 atan2() 是已知一个角的正切值(也就是 y/x),求该角的弧度值。返回值返回 y/x 的反正切值,以弧度表示,取值范围为(-π,π]。如上图所示,tan(θ) = y/x,θ = atan2(y

2021-05-22 15:28:04 1189

原创 向前欧拉法

参考文章感谢作者

2021-03-26 17:21:24 1717

原创 车辆横向控制---pure pursuit

控制模块的输入输出:输入:局部路径、车辆状态、车辆位置输出车辆前轮转角(横向)、车辆油门开度,刹车开度(纵向)pure pursuit 控制核心思想纯跟踪控制算法是基于车辆运动学模型(将车辆简单描述为两轮自行车模型)的一种算法。该算法的步骤是:找到path(输入的局部路径)上距离车辆后轴(点B)最近的点A要控制前轮的转角,使B点经过点A当然可以用一直线连接点A、B,也可以用圆弧连接两点,连接的直线或者圆弧就能算出前轮转角按照3计算得出的车轮转角,控制车辆沿着直线或者圆弧到达B点

2021-03-11 10:20:13 1254

原创 C/C++中的函数指针与回调函数

函数指针指向函数的指针变量称为 “函数指针”。一般说的指针变量是指向一个整形、字符型或者其他类型,而函数指针则是指向函数。函数指针可以像一般函数一样,用于调用函数,传递参数。回调函数函数指针作为某个函数的参数。函数指针变量可以作为某个函数的参数来使用的,回调函数就是一个通过函数指针调用的函数。简单讲:回调函数是由别人的函数执行时调用你实现的函数。#include <stdlib.h> #include <stdio.h> // 回调函数void popula

2021-03-08 10:53:55 144

原创 NDT配准介绍

应该认真总结一下这方面内容

2021-02-03 09:27:18 276

原创 c++中的异常机制

C++异常处理(try catch throw)完全攻略程序运行时常会碰到一些异常情况,例如:做除法的时候除数为 0;用户输入年龄时输入了一个负数;用 new 运算符动态分配空间时,空间不够导致无法分配;访问数组元素时,下标越界;打开文件读取时,文件不存在。这些异常情况,如果不能发现并加以处理,很可能会导致程序崩溃。所谓“处理”,可以是给出错误提示信息,然后让程序沿一条不会出错的路径继续执行;也可能是不得不结束程序,但在结束前做一些必要的工作,如将内存中的数据写入文件、关闭打开的文件、释放动

2021-01-28 09:43:05 324

原创 c++中获取类中成员函数的函数指针

比如有一个Student类如下:class Student{private: string name_; string id_; int age_;public: Student(string name, string id, int age=0) :name_(name),id_(id),age_(age) {} Student(){} ~Student(){} string getName(){return this-&g

2021-01-26 10:47:06 1639 1

转载 c++之lambda表达式

参考文章,谢谢作者!

2021-01-23 16:54:00 113

原创 ros中的launch文件详细解释

<!--该launch来演示launch文件的使用,一定要会--><!--以launch标签开头以表明是launch文件--><launch> <!--1: group标签定义命名空间--> <!--以下利用group标签启动两个相同的节点--> <group ns="turtlesim1"> <node pkg="turtlesim" name="sim" type="turtl

2021-01-22 10:55:08 1285

原创 简单理解c++中的线程

#include <iostream>#include <vector>#include <algorithm>#include <thread>using namespace std;//线程函数void getSum(vector<int>::iterator first, vector<int>::iterator last, int& sum){ sum = accumulate(first,

2020-12-12 17:21:26 111

原创 编写及运行c++程序的整个过程的各种问题详解

源文件main.cpp中包含的 头文件 及 头文件的实现—库文件 的区别及联系:1–头文件:头文件中包含函数的声明和(部分)定义。通常被包含在其他源文件中,是其他程序调用该头文件中定义的函数的接口。头文件以 .h 结尾,因为其内容是ASCII码的,用文本编辑器可以直接打开查看。2–库文件:声明放在头文件中,而库文件中包含函数的定义。库文件是已经编译好的、可以复用的、二进制的代码,可以被操作系统载入内存中执行。用文本编辑器打开查看的时候会显示乱码。头文件以 .a 或者 .so 结尾(linux系

2020-12-08 14:26:29 510

原创 C++中调用C编译器生成的库文件

应该写出来

2020-12-06 22:29:46 99

原创 c/c++中memset函数详解

memset() 函数包含于 string.h 头文件中。函数原型:/* Set N bytes of S to C. */void *memset(void *s, int c, unsigned long n);函数作用:定义变量时一定要进行初始化,尤其是数组和结构体这种占用内存大的数据结构。在使用数组的时候经常因为没有初始化而产生“乱码”。每种类型的变量都有各自的初始化方法,memset() 函数可以说是初始化内存的“万能函数”,通常为新申请的内存进行初始化工作。它是直接操作内存空间,

2020-12-03 16:53:32 290

原创 为什么总要计算群点的质心,然后计算各个点相对于质心的坐标?

自己的理解。等群点旋转的时候,各个点的坐标都会发生变化,但是这些点相对于他们质心点的位置不会变化。因此为了摆脱旋转变化的干扰,计算各个点相对于质心的坐标(其实就是原来的坐标系远点平移到质心点)。这时各个点的这些坐标就不会随着旋转发生变化了,毕竟,质心点也会跟着旋转。...

2020-12-02 21:10:47 843

转载 linux下面的sudo ldconfig命令

ldconfig命令的作用ldconfig是一个动态链接库管理命令安装完成某个工程后生成许多动态库,为了让这些动态链接库为系统所共享,还需运行动态链接库的管理命令–ldconfig。(直接sudo ldconfig即可)。ldconfig命令的用途:主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件。缓存文件默认为 /et

2020-11-30 20:40:18 9060

原创 Ubuntu系统阿里源

deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multive

2020-11-28 15:03:18 506

原创 之前用的好好的ROS,今天建了个ros工作空间,本想编译以下,却发现catkin_make未安装?

ros中出现的奇葩的问题:之前用的好好的ROS,今天建了个ros工作空间,本想编译以下,却发现catkin_make未安装?草,怎么解决?环境变量!!!vim ~/.bashrc发现:source /opt/ros/kinetic/setup.bash早已经写在里面了啊没办法,只能重新写一遍,在终端:echo “source /opt/ros/kinetic/setup.bash” >> ~/.bashrc #将这句话写进bashrc文件末尾source ~/.bashrc

2020-11-26 17:02:05 306

转载 如何阅读c++源代码

转载自:https://www.cnblogs.com/markalex/p/3289696.html如何阅读C++源代码(这是我在阅读C++源代码时总结的一些体会,以后还要把新的体会再补充进来,逐步扩充和完善本文。)读C++源代码时,按照声明文件(.h文件)和实现文件(.cpp文件)的顺序来读,先弄清楚各个类的组成,再弄清各个类的成员函数的实现,判定和理解各个成员函数的功能。在读C++源代码时,要注意类与类之间的静态联系和动态联系。类与类之间的静态联系包括类之间的继承关系、组合关系等;类与

2020-11-19 19:25:29 4461 1

原创 C++中的inline(内联)函数

inline函数

2020-11-13 23:09:28 181

原创 C++中的防卫式声明

防卫式声明()

2020-11-13 22:59:30 1032

原创 c++中如何判断函数是否重载

对于函数名相同的函数,如果其参数列表中形参个数不同 或者形参类型不同或者是形参顺序不同,那么就属于重载。注意:不能把返回值作为函数重载的条件,原因是编译器在编译时不会去判断函数的返回类型,函数只有调用后,编译器才会去验证返回类型,所以返回值不能作为函数重载的依据。注意常函数 const 可以作为函数重载判断依据,原因:重载[]运算符时,有没有const的区别是:有const只读,没有const读写都可以。...

2020-11-13 20:53:16 1378

原创 导数链式法则

2020-11-13 11:06:20 1835

原创 数学当中的解析解与数值解的区别

转自科学网:http://blog.sciencenet.cn/blog-450601-348385.html这段时间一直在听数学学院的课,反反复复听到“解析解”和“数值解”,始终不明白这两者的区别。经学长解释,总算有点眉目:解析解就是给出解的具体函数形式,从解的表达式中就可以算出任何对应值;数值解就是用数值方法求出解,给出一系列对应的自变量和解。e.g.eq: x^2=5solution: x=sqrt(5) – analytical solution 这就是解析解x=2.236 – num

2020-11-13 10:01:48 6069

原创 slam十四讲第六讲《非线性优化》理解

本文摘自:计算机视觉life 《从零开始学习[张氏相机标定法](四)优化算法前传》

2020-11-12 23:33:07 117

原创 c++中的atof()函数

atof()

2020-11-12 19:25:14 2722

转载 c++在哪些情况下只能使用初始化列表而不能用赋值

构造函数与初始化列表初始化列表只能用于构造函数在类的实现中,构造函数体内“初始化”的实际上是赋值而不是初始化。也就是说,当代码运行到构造函数内部时,初始化列表已经执行完了,因此相当于是先初始化了一遍,然后又赋值了一遍,重复计算,浪费效率,因此应该优先使用初始化列表。同时,当没有默认的无参构造函数时,就一定会使用初始化列表。(即使自己没有在含参构造函数中都是基本数据类型, 不强制显式使用初始化列表, 也会自动调用初始化列表, 而在构造函数内部执行的仅仅是赋值)创建派生类对象时,程序首先调用基类构造函数,

2020-11-10 19:31:31 812

原创 方向导数及梯度详细介绍

梯度

2020-11-10 14:27:40 207

原创 通俗点介绍RANSAC算法

十四讲中的:Mat rvec, tvec, inliers;cv::solvePnPRansac(pts3d, pts2d, K, Mat(), rvec, tvec, false, 100, 4.0,0.99, inliers);参数列表分别为:pts3d:一个vector(由多个三维点组成),这些三维点都是已经经过筛选后的匹配距离较小的点pts2d:一个vector(由多个二维点组成),这些二维点都是已经经过筛选后的匹配距离较小的点...

2020-11-07 16:13:02 1436

原创 在十四讲的第九讲中运行02时候,内点总是显示0问题出现的原因

在十四讲的第九讲02运行的时候,内点的个数总是显示0,因此在运行几次后,丢失个数达到最大,退出程序,找了半天的原因,居然:while(!fin.eof()){ ... ... myslam::Camera::Ptr camera (new myslam::Camera); //这里生成了一个Camer类对象的指针,但是调用的是默认构造,而Camera的默认构造如}//--------------------------------------------------------------

2020-11-06 18:20:39 74

原创 openCV中的特征检测及匹配步骤

openCV中的特征检测及匹配步骤包含头文件:#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/features2d/features2d.hpp>示例代码如下:#include <iostream>#include <opencv2/core/core.hpp>#include <opencv2/hi

2020-11-02 14:49:33 615 2

原创 c++中的min_element()与max_element()

c++中的min_element()与max_element()你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的

2020-10-31 14:32:27 294

深度学习反向传播四大公式详细推导

手把手教你反向传播四大公式的由来及推导过程,学不会揍我!

2022-08-24

空空如也

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

TA关注的人

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