自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [MIT]微积分重点学习笔记 目录

先介绍下自己的情况,大学的时候学习不认真,很多概念都忘记了,工作中有时要用到微积分,碰到不会的在网上查询,感觉这样学习的比较零散,也不能建立系统的认识。多次想要从头看一遍同济版《高等数学》也只是停留在前几页,配套的网课也听过,但是都没坚持下来。在知乎看到大神杨熙写学习笔记后,打算自己也跟着学习一波,于是就有这篇笔记,由于数学基础比较差,会写得会比较仔细,如有错误,请大家指出,谢谢!之前看过Gilbert Strang教授的线性代数课程,感觉受益良多。但是之前都是把笔记记在本子上,不利于回看,后续有时间会慢

2022-06-04 22:49:43 1413 1

原创 激光SLAM理论与实践 - 第六期 作业与心得 目录

本文当作我学习《激光SLAM理论与实践 - 第六期》的一个记录,这里的作业答案并不是标准答案,心得部分将用斜体标出,如有错误请指出,谢谢!参考的文章会在文末列出。github地址(用于放置最新的源码)CSDN目录地址目录第1章 激光SLAM简介第2章 传感器数据处理I:里程计运动模型及标定第3章 传感器数据处理II:激光雷达数学模型和运动畸变去除第4章 激光SLAM的前端配准方法 Ⅰ第5章 激光SLAM的前端配准方法 Ⅱ第6章 基于图优化的激光SLAM方法(Grid-based)第7

2021-10-06 22:25:30 1214 8

原创 C++Primer第五版 习题答案 目录

C++Primer第五版 习题答案本文当作我学习C++的一个记录,这里的习题答案并不是标准答案,仅仅是我的理解,如有错误,请大家指出,谢谢! 我参考的文章会在文末列出,谢谢大家。第一章...

2018-07-29 21:14:38 50992 10

原创 [MIT]微积分重点 第十七课 六函数、六法则和六定理 学习笔记

1.六函数积分六函数导数xn+1/(n+1)x^{n+1}/(n+1)xn+1/(n+1)xnx^nxnnxn−1nx^{n-1}nxn−1−cos⁡x-\cos x−cosxsin⁡x\sin xsinxcos⁡x\cos xcosxsin⁡x\sin xsinxcos⁡x\cos xcosx−sin⁡x-\sin x−sinxecx/c\rm e^{cx}/cecx/cecx\rm e^{cx}ecxcecxc\rm e^{cx}cecxx

2022-05-23 14:11:34 465

原创 [MIT]微积分重点 第十六课 关于增长的微分方程 学习笔记

本节课讲的是关于增长的微分方程。1.最简单的增长微分方程为:d⁡yd⁡t=cyy(0)\frac{\operatorname{d}y}{\operatorname{d}t} = cy\quad y(0)dtdy​=cyy(0)解为:y(t)=y(0)ecty(t) = y(0)\rm {e}^{ct}y(t)=y(0)ect这里讲的比较抽象,可以用个例子帮助理解下。 y(t)y(t)y(t) 表示储蓄账户里的钱, ccc 为年利率, y(0)y(0)y(0) 为第 000 年存入的钱。如

2022-05-16 16:32:16 511

原创 [MIT]微积分重点 第十五课 关于运动的微分方程 学习笔记

本节课讲的是常系数线性二阶微分方程。常系数是指函数 yyy 及其 nnn 阶导数前的系数都为常数;线性是指函数 yyy 及其 nnn 阶导数的幂都为 111 ;微分方程即以自变量 xxx ,函数 yyy 及其 nnn 阶导数组成的方程。md⁡2yd⁡t2+2rd⁡yd⁡t+ky=0m\frac{\operatorname{d}^2y}{\operatorname{d}t^2} + 2r\frac{\operatorname{d}y}{\operatorname{d}t} + ky = 0mdt2d2y

2022-05-10 14:36:02 615 1

原创 [MIT]微积分重点 第十四课 幂级数和欧拉公式 学习笔记

1.幂级数和泰勒级数在 x=ax=ax=a 时的一般幂级数为:∑n=0∞an(x−a)n=a0+a1(x−a)+a2(x−a)2+a3(x−a)3+⋯\sum_{n=0}^{\infin} a_n(x-a)^n = a_0 + a_1(x-a) + a_2(x-a)^2 + a_3(x-a)^3 +\cdotsn=0∑∞​an​(x−a)n=a0​+a1​(x−a)+a2​(x−a)2+a3​(x−a)3+⋯下面将讨论关于 x=0x=0x=0 的幂级数,为:∑n=0∞anxn=a0+a1x+a2

2022-05-03 14:19:34 519

原创 [MIT]微积分重点 第十三课 线性近似和牛顿法 学习笔记

线性近似和牛顿法线性近似是求 f(x)f(x)f(x) 的值;牛顿法是求 F(x)=0F(x)=0F(x)=0 的解。先看线性近似,下面推导一下:在 x=ax=ax=a 处,d⁡fd⁡x=f′(a)=lim⁡x→af(x)−f(a)x−a≈f(x)−f(a)x−a(1)\frac{\operatorname d f}{\operatorname d x}=f'(a)=\lim_{x\to a}\frac{f(x) - f(a)}{x - a}\approx \frac{f(x) - f(a)}{x

2022-04-30 11:49:50 1130

原创 [MIT]微积分重点 第十二课 增长率和对数图 学习笔记

1.增长率增长函数xxxx2x^2x2 , x3x^3x3 ,…2x2^x2x , exe^xex , 10x10^x10x ,…x!x!x! , xxx^xxx ,…增长方式线性增长多项式增长指数增长阶乘增长增长数量级10310^310310610^6106 , 10910^9109 ,…1030010^{300}10300 , 1043410^{434}10434 , 10100010^{1000}101000 ,…10256610^{2566}1025

2022-04-18 16:05:11 1038

原创 [MIT]微积分重点 第十一课 对数函数和反三角函数的导数 学习笔记

1.对数函数的导数首先回顾了之前学过的求导法则:加减、乘除和链式法则。下面的求导将用到链式求导法则和逆函数。根据逆函数可以得到: f−1(f(x))=xf^{-1}(f(x))=xf−1(f(x))=x 和 f(f−1(y))=yf(f^{-1}(y))=yf(f−1(y))=y 。对其进行链式法则求导就可以得到逆函数的导数。复习下逆函数:例: y=ax+b=f(x)y=ax+b=f(x)y=ax+b=f(x) 。求得逆函数为: x=y−ba=f−1(y)x=\frac{y-b}{a}=f^{-1

2022-04-11 10:48:43 528

原创 [MIT]微积分重点 第十课 逆函数和对数函数 学习笔记

1.逆函数y=f(x)y=f(x)y=f(x) 的逆函数是: x=f−1(y)x=f^{-1}(y)x=f−1(y) 。例:求函数 y=x2(x≥0)y=x^2(x\geq 0)y=x2(x≥0) 的逆函数。求得: x=yx=\sqrt{y}x=y​ 。这里需要有条件 x≥0x\geq 0x≥0 ,求逆函数需要 yyy 与 xxx 的值一一对应。例:圆面积公式为: A=πr2=f(r)A=\pi r^2=f(r)A=πr2=f(r) ,其逆函数为: r=Aπ=f−1(A)r=\sqrt{\frac

2022-04-08 10:22:58 677

原创 [MIT]微积分重点 第九课 极限和连续 学习笔记

1.极限ϵ\epsilonϵ 在数学上往往用来表示极小的数,不管数列 ana_nan​ 前面的数怎么变化,数列中足够靠后的数字无一例外的都会落在 A−ϵA-\epsilonA−ϵ 和 A+ϵA+\epsilonA+ϵ 之间,这就意味着当 nnn 接近于 ∞\infty∞ 时, ana_nan​ 的值接近于 AAA (用符号表示为:当 n→∞n \rightarrow \inftyn→∞ 时, an→Aa_n \rightarrow Aan​→A )。同样,落在 000 和 ϵ\epsilonϵ 之间为趋向

2022-03-28 23:39:20 971

原创 [MIT]微积分重点 第八课 链式法则 学习笔记

1.链式法则照例先给出链式法则:y=g(x)z=f(y)d⁡zd⁡x=d⁡zd⁡yd⁡yd⁡xy=g(x)\quad z=f(y) \\[2ex]\frac{\operatorname{d}z}{\operatorname{d}x}=\frac{\operatorname{d}z}{\operatorname{d}y}\frac{\operatorname{d}y}{\operatorname{d}x} \\[2ex]y=g(x)z=f(y)dxdz​=dydz​dxdy​2.例子: sin(

2022-03-09 23:35:38 940

原创 [MIT]微积分重点 第七课 乘法法则和除法法则 学习笔记

1.乘法法则先放结论:P(x)=f(x)g(x)d⁡pd⁡x=d⁡fd⁡xg(x)+f(x)d⁡gd⁡xP(x)=f(x)g(x) \\[2ex]\frac{\operatorname{d}p}{\operatorname{d}x}=\frac{\operatorname{d}f}{\operatorname{d}x}g(x)+f(x)\frac{\operatorname{d}g}{\operatorname{d}x}P(x)=f(x)g(x)dxdp​=dxdf​g(x)+f(x)dxdg​

2022-03-08 23:48:52 1749

原创 [MIT]微积分重点 第六课 sinx和cosx的导数 学习笔记

这节课先看了教授的视频没看懂,后来又去看了《普林斯顿微积分读本》看懂了,再看教授的课程才明白,这里就按照我的理解讲下《普林斯顿微积分读本》里的证明过程。1.求 sin⁡x\sin xsinx 的导数令 f(x)=sin⁡xf(x)=\sin xf(x)=sinx ,则:f′(x)=lim⁡Δx→0f(x+Δx)−f(x)Δx=lim⁡Δx→0sin⁡(x+Δx)−sin⁡xΔx=lim⁡Δx→0sin⁡xcos⁡Δx+cos⁡xsin⁡Δx−sin⁡xΔx=lim⁡Δx→0sin⁡x(cos⁡Δx−1

2022-03-06 23:19:28 664

原创 [MIT]微积分重点 第五课 积分总览 学习笔记

0.先上本节课目录:1.函数二是函数一的导数函数一: Heighty(x)Height y(x)Heighty(x)函数二: Slopes(x)Slope s(x)Slopes(x)函数一 -> 函数二:Slopes(x)=d⁡yd⁡x=limit of ΔyΔxSlope s(x)=\frac{\operatorname dy}{\operatorname dx}=limit\ of\ \frac{\Delta y}{\Delta x}Slopes(x)=dxdy

2022-03-06 00:22:23 417

原创 [MIT]微积分重点 第四课 指数函数(exponential) 学习笔记

0.先上本节课目录:讲的顺序不完全按照目录来的,下面就按照讲的顺序来。1.推导指数函数 y=exy=e^xy=ex 的展开式对于指数函数 y=exy=e^xy=ex ,是通过微积分构造的函数,其最重要的性质就是它的导数就是其自身。用式子表示为:d⁡yd⁡x=y(1)\frac{\operatorname dy}{\operatorname dx}=y\tag1dxdy​=y(1)这是一个微分方程,是最简单的微分方程。此时还需要一个初值,以防得到的结果不是 10ex10e^x10ex ,等等。

2022-03-03 23:50:17 2300

原创 [MIT]微积分重点 第三课 极值和二阶导数 学习笔记

0.先上本节课目录:1.二阶导数:导数的导数我们经常需要定位极值点,并判别是极大值还是极小值。定位极值点是一阶导数的职责,一阶导数为0即为极值点;是极大值还是极小值这就是二阶导数的职责了,二阶导数的符号表示曲线的弯曲方向。2.二阶导数的例子这里用距离、速度(距离的导数)和加速度(速度的导数)来举例。距离:y=x2y=x^2y=x2速度:d⁡yd⁡x=2x\frac{\operatorname dy}{\operatorname dx}=2xdxdy​=2x加速度:d⁡2yd⁡x2=2\

2022-03-01 16:22:58 2495

原创 [MIT]微积分重点 第二课 导数总览 学习笔记

这节课是为了引出导数概念的。0.先上本节课目录:1.函数关系从 a.距离v速度;b.高度v斜率 来引出斜率概念。2.三个重要函数的斜率这里先给出了幂函数、三角函数和指数函数的斜率(这里是瞬时斜率也就是导数,不是平均斜率)。3.斜率的含义之例一:y=x2y=x^2y=x23.1 平均斜率先求了 xxx 在 [1,2][1,2][1,2] 之间的平均斜率:average slope=ΔyΔx=y(2)−y(1)2−1=22−11=3average\ slope=\frac{\D

2022-02-28 16:35:34 436

原创 [MIT]微积分重点 第一课 微积分总览 学习笔记

这节课是为了引出微积分概念的。0.先上本节课目录:1.微积分是函数一和函数二之间的桥梁2.两个例子,函数一:距离和函数二:速度,函数一:高度和函数二:斜率3.例子:匀速情况、变速情况从 sss 的匀速情况推出0起点的 fff ,再到非0起点的 fff ,最后画出变速的情况。函数二:speed or slope=upacross=ΔfΔt=sspeed\ or\ slope=\frac{up}{across}=\frac{\Delta f}{\Delta t}=sspeed

2022-02-26 23:37:07 776

原创 laser_filters源码整体分析

laser_filters 也用了挺久,感觉还是蛮好用的,最近看了下源码( laser_filters包为kinetic-devel, filters包为hydro-devel),在这里写个流水账。laser_filters总的来说 laser_filters包 调用了 filters包,下面来详细阅读下代码。<launch><node pkg="laser_filters" type="scan_to_scan_filter_chain" output="screen" name

2022-01-23 23:52:15 744

原创 使用laser_filters屏蔽车架

我们在实际应用中,难免会碰到车体遮挡激光雷达的情况,最常见的情况是使用四个柱子作为支撑遮挡了激光雷达,这时可以使用 laser_filters 处理激光雷达数据。有两种处理方法,最简单的方法为屏蔽对应角度;另一种为屏蔽车体内部的激光数据。方法一:屏蔽角度这里用 LaserScanAngularBoundsFilterInPlace 插件来实现,使用这种方法需要有底盘的详细数据,计算出柱子遮挡的角度,由于每次只能屏蔽一个角度,需要连续使用四次。如果觉得效率不够高,可以自己实现一个滤波插件。使用的参数如下:

2021-12-30 10:56:40 1249

原创 使用LaserScanSpeckleFilter过滤激光雷达噪点

使用laser_filters::LaserScanSpeckleFilter过滤激光雷达噪点

2021-12-24 18:14:54 2429 2

原创 激光SLAM理论与实践 - 第六期 大作业(运行并测试 GMapping、Hector Slam、Karto、Google Cartographer ) 作业与心得

大作业内容 3 选 1:实现一个完整的激光 SLAM 算法。把前面各小节的内容串联起来,可以用前面作业提供的 rosbag,也可以其它的数据集。运行并测试 GMapping,Hector Slam, Karto, Google Cartographer 等开源激光 SLAM 算法,并给出详细的测试对比报告。不同场景下/数据集的精度,速度,是否有回环,算法差异等。选择一个激光+IMU/IMU/视觉/里程计/GNSS 或激光与其它多传感器融合的技术方向做调研,撰写总结报告,最...

2021-09-27 09:32:43 2033 9

原创 激光SLAM理论与实践 - 第六期 第7章 基于已知定位的建图 作业与心得

补充代码,通过覆盖栅格建图算法进行栅格地图构建;(3 分) //start of TODO 对对应的map的cell信息进行更新.(1,2,3题内容) //1 GridIndex beamPointIndex = ConvertWorld2GridIndex(world_x, world_y); std::vector<GridIndex> beamTraceindexes = TraceLine(robotIndex.x, robotIndex.y, b...

2021-09-20 00:09:44 747 10

原创 激光SLAM理论与实践 - 第六期 第6章 基于图优化的激光SLAM方法(Grid-based) 作业与心得

补充代码,实现高斯牛顿方法对 Pose-Graph 进行优化;(6 分)计算jacobian矩阵和error;//TODO--Start// Eigen::Matrix3d zij = PoseToTrans(xi).inverse() * PoseToTrans(xj);// Eigen::Vector3d eij = TransToPose(PoseToTrans(z).inverse() * zij);Eigen::Matrix2d RijT;RijT << cos...

2021-09-13 10:06:57 932 4

原创 激光SLAM理论与实践 - 第六期 第5章 激光SLAM的前端配准方法 II 作业与心得

补充代码,实现 gaussian_newton_scanmatcher 模块;(6 分)在地图上的进行插值,得到coords处的势场值和对应的关于位置的梯度;//TODOint map_index_x = floor((coords[0] - map->origin_x) / map->resolution) + map->size_x / 2;int map_index_y = floor((coords[1] - map->origin_y) / map-&g...

2021-09-06 11:13:00 1079 9

原创 激光SLAM理论与实践 - 第六期 第4章 激光SLAM的前端配准方法 I 作业与心得

补充代码,实现两帧间的 IMLS-ICP 激光匹配;(6 分)实现 imls_icp.cpp 中的 computeNormal(ICP)函数,该部分可参考 PPT 中 NICP 法向量的计算方法;//TODO//根据周围的激光点计算法向量,参考ppt中NICP计算法向量的方法Eigen::Vector2d average;average.setZero();for(auto v : nearPoints){ average += v / nearPoints.size(...

2021-09-01 14:37:13 1058 4

原创 激光SLAM理论与实践 - 第六期 第3章 传感器数据处理II:激光雷达数学模型和运动畸变去除 作业与心得

补充去除激光雷达运动畸变模块的代码;(6 分)设世界坐标系 ${W}$ 的原点与odom坐标系的原点重合, {B}\{B\}{B} 为某一帧激光数据的基坐标(一般为第一束激光测量时的坐标), {S−E}\{S-E\}{S−E} 为激光采样过程中每一束激光测量时对应的坐标(start to end frame), {B}\{B\}{B} 和 {S−E}\{S-E\}{S−E} 都是激光坐标系,只是在不同的时间相对世界坐标系的位姿。默认每一束激光都是在基坐标时刻完成测量的,但是实际是激光雷达每帧的测量...

2021-08-24 15:49:40 717

原创 激光SLAM理论与实践 - 第六期 第2章 传感器数据处理I:里程计运动模型及标定 作业与心得

补充直接线性方法的里程计标定模块代码;(6 分)Main.cpp,第 358 行中的 cal_delta_distance()函数,该函数的功能为给定两个里程计位姿,计算这两个位姿之间的位姿差。这里是上一章的内容,已知上一时刻的位姿和当前位姿,求位姿差。假设odom原点为世界坐标系 {W}\{W\}{W} 的原点,上一时刻的位姿为 lastWT^W_{last}TlastW​T ,当前位姿为 nowWT^W_{now}TnowW​T,位姿差为 nowlastT=WlastT⋅nowWT=...

2021-08-19 23:38:12 926

原创 激光SLAM理论与实践 - 第六期 第1章 激光SLAM简介 作业与心得

了解 Linux 系统:阅读《鸟哥的 Linux 私房菜》自学前三部分内容,或利用互联网进行学习,简答以下问题;(3 分)列举三个你常用的 Linux 命令,并说明他们的功能。man 指令,是manual(操作说明)的缩写,该指令用于查看其他指令的详细说明;比如 $ man date ,就会出现有关 date 的详细说明。cd 指令,是change directory(改变目录)的缩写,该指令用于改变工作目录;比如 $ cd /home/tx-ubuntu64 ,就会将当前目录变为 ...

2021-06-30 21:00:48 852 1

原创 使用ScanShadowsFilter过滤激光雷达拖尾

什么是拖尾现象理想的激光脉冲打在目标上是一个点,但是实际上激光出射都存在一定的发散角,打在物体上时光斑是一个面。因此,当存在前后两个物体,且激光正好打在前面一个物体的边缘时,就有可能出现一部分激光能量打在了后面的物体上,这时的回返光就是两个光斑反射光的叠加。这时雷达会判断测量目标在这两个面之间,造成拖尾现象。如何解决该问题发生拖尾现象时,激光束呈射线状,我们可以根据这一现象来去除问题数据。转换坐标系,可以比较容易得出目标角,从而判断目标角是否在阈值范围内。

2020-12-03 11:52:08 4267 2

原创 rosbridge源码阅读与问题解决

0.碰到的问题1)大数据发送不全;2)发送的数据出现交叉的情况(大数据中会插入小数据,导致解析错误)。1.安装方法具体方法参考官网教程,这里假定已经跑通rosbridge,已经可以获得如下log://...略去部分registered capabilities (classes): - rosbridge_library.capabilities.call_service.CallS...

2019-08-10 21:00:34 1364 2

原创 C++Primer第五版 习题答案 第十四章 操作重载与类型转换(Overloaded Operations and Conversions)

练习14.1在什么情况下重载的运算符与内置运算符有所区别?在什么情况下重载的运算符又与内置运算符一样?有所区别:当一个重载运算符是成员函数时,this绑定到左侧的运算对象;逻辑与运算符、逻辑或运算符和逗号运算符的运算对象求值顺序规则无法保留下来;&&和||运算符的重载版本也无法保留内置运算符的短路求值属性,两个运算对象总是会被求值。一样:对于一个重载的运算符来说,...

2019-05-25 09:15:40 2516 9

原创 C++Primer第五版 习题答案 第十五章 面向对象程序设计(Object-Oriented Programming)

练习15.1什么是虚成员?虚函数是基类希望其派生类进行覆盖的函数。练习15.2protected 访问说明符与 private 有何区别?派生类的成员函数可以访问protected访问运算符的成员,而不能访问private的。练习15.3定义你自己的 Quote 类和 print_total 函数。Quote_ex03.h#ifndef QUOTE_H_#defin...

2019-05-25 08:11:39 3373 3

原创 C++Primer第五版 习题答案 第十六章 模板与泛型编程(Templates and Generic Programming)

练习16.1给出实例化的定义。实例化:编译器处理过程,用实际的模板实参来生成模板的一个特殊实例,其中参数被替换为对应的实参。当函数模板被调用时,会自动根据传递给它的实参来实例化。而使用类模板时,则需要我们提供显式模板实参。练习16.2编写并测试你自己版本的 compare 函数。#include <iostream>template<typename T&g...

2019-05-24 23:23:00 2769 6

原创 C++Primer第五版 习题答案 第十七章 标准库特殊设施(Specialized Library Facilities)

练习17.1定义一个保存三个 int 值的 tuple,并将其成员分别初始化为10、20和30。#include <iostream>#include <tuple>#include <vector>int main(){ std::tuple<int, int, int> threeI(10, 20, 30); std::tu...

2019-05-24 22:07:10 1390 1

原创 C++Primer第五版 习题答案 第十八章 用于大型程序的工具(Tools for Large Programs)

练习18.1在下列 throw 语句中异常对象的类型是什么?(a) range_error r("error"); throw r;(b) exception *p = &r; throw *p;(a)range_error;(b)exception。throw p,此时抛出的为指向局部对象的指针,我们几乎可以肯定这是一种错误行为。练习18.2当在指定的位置发生...

2019-05-24 18:41:40 1368 1

原创 C++Primer第五版 习题答案 第十九章 特殊工具与技术(Specialized Tools and Techniques)

练习19.1使用 malloc 编写你自己的 operator new(sizt_t)函数,使用 free 编写operator delete(void *)函数。#include <cstdlib>#include <new>void *operator new(size_t size){ if(void *mem = malloc(size)) r...

2019-05-23 23:40:51 1171

原创 C++Primer第五版 习题答案 第十三章 拷贝控制(Copy Control)

13.1如果一个构造函数的第一个参数是自身类类型的引用,且任何额外的参数都有默认值,则次构造函数是拷贝构造函数。一个对象作为函数参数,以值传递的方式传入函数体;一个对象作为函数返回值,以值传递的方式从函数返回;一个对象用于给另外一个对象进行初始化(常称为赋值初始化);用花括号列表初始化一个数组中的元素或一个聚合类成员。13.2永远也不会调用成功,为了调用拷贝构造函数,我们需要拷贝...

2018-11-18 23:31:15 4491 46

空空如也

空空如也

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

TA关注的人

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