自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 再学C++(一):C++中类与结构体的区别

2024-08-21 21:37:18 563

原创 一文搞定MarkDown语法

本文主要是对MarkDown常用方法的一些整理,主要包括数学公式表示、文字相关设置,其中参考了很多其他优秀博客,已放在文末参考部分。本文将持续更新。。。。。

2024-03-18 07:30:00 1150

原创 线性代数(一)——向量基础

线性代数的核心是向量的加和乘两种运算的组合,本篇博客为线性代数的一个引子,主要从向量、线性组合和矩阵逐步引出线性代数的相关知识。

2024-03-11 08:33:23 1500

原创 百度Apollo规划算法——OBB障碍物检测代码解析

本文主要分析Apollo代码中函数的数学原理。在阅读此部分代码时,第一遍没看懂return的一堆什么意思,百度之后说是采用OBB原理,所以就去了解下OBB原理,回来看还是没太明白,直到看到了博客[1],通过博主的图解才有了进一步的了解,但对照代码还是没能完全理解,后来结合向量的相关知识,才算彻底明白了HasOverlap()实现的具体数学原理。下面,作者仅对代码进行数学解读。

2023-08-04 22:11:37 2554 1

原创 百度Apollo规划算法——轨迹拼接

在apollo的规划算法中,在每一帧规划开始时会调用一个轨迹拼接函数,返回一段拼接轨迹点集,并告诉我们是否重规划以及重规划的原因,那大家是否深入了解并思考过什么是轨迹拼接、为什么要进行轨迹拼接以及是如何进行轨迹拼接的呢?本篇文章便是针对这几个问题,在参考了前辈的一些文章和Apollo代码的基础上进行解答。

2023-03-05 18:24:31 3694

原创 ROS1——ROS自定义消息格式配置相关

在使用ROS时,其自带的消息格式已经是开发人员很方便,但是仍然避免不了会有一些特别的消息需要自己去定义,此时,就需要了解ROS中如何编写配置自定义消息格式。1、新建filename.msg文件首先,需要在本功能包pkg_name(功能包名,可自定义)下新建msg文件,并在msg文件下新建filename.msg(filename是文件名,可自定义)。2、补充消息内容在自定义消息文件中,我们最常用的是float32,float64,float32[]等,他们都在std_msgs标准消息格式下,当然也可

2021-06-16 11:31:19 940

原创 ubuntu常见问题及解决方案——yr 不在 sudoers 文件中,此事将被报告,同时,su无法验证的解决办法

昨晚因为改编译错误,修改了sudoers里的内容,导致(1)[用户名]不在sudoers文件中,同时,(2)su无法验证的解决办法。对于问题(1):网上解决办法su root//使用root登陆visudo//在root下添加自己的用户名root ALL=(ALL) ALL[users] ALL=(ALL) NOPASSWD: ALL执行到su root时就显示su无法验证的解决办法。所以,去找问题(2)的解决办法:1 yr@ubuntu:~$ sudo passwd 2 .

2021-03-10 10:15:05 2366 9

原创 转动惯量到底是个什么物理量

转动惯量,对于大多数人可能都很难理解,这个问题也困惑博主很久,最近本人需要用到建模知识,在回顾大学物理时重新学习了什么是转动惯量,同时也是参考了几篇博文和知乎文章才基本理解。本人秉持着“输出是最好的学习方法”,将转动惯量的理解写下来,也供大家参考,若有出错之处,务必指正!目录概念物理意义公式平动和转动中物理量关系参考概念转动惯量是表征刚体转动惯性大小、衡量刚体抵抗旋转运动的惯性的物理量。其地位相当于刚体平动中的质量,它与刚体的质量以及质量相对于转轴的分布有关。物理意义直接理解转动惯量比较抽象,但是

2020-09-09 07:47:53 22032 2

原创 经典力学(动力学)——刚体的转动

目录刚体的定轴转动 力矩刚体刚体转动的角速度和角加速度匀变速转动公式角量与线量的关系力矩转动惯量 转动定律质点的转动惯量角动量 角动量守恒定律角动量刚体定轴转动的角动量力矩做功 刚体定轴转动的动能定理力矩做功刚体绕定轴转动的动能定理刚体的定轴转动 力矩刚体刚体的定义:在外力作用下,形状和大小都不发生改变的物体。刚体的运动形式包括平动和转动。平动:刚体中所有点的运动轨迹都保持相同,各点...

2020-04-08 10:26:55 40696 3

原创 经典力学(动力学)——动量守恒定律与能量守恒定律

文章目录质点和质点系的动量定理冲量 质点的动量定理冲量质点的动量定理质点系的动量定理质点和质点系的动量定理力的累积效应{F⃗(t)对t的累积→I⃗,Δp⃗F⃗对r⃗累积→W,ΔE⟹\begin{cases} \vec{F}(t)对t的累积 \to \vec{I},\Delta\vec{p} \\ \vec{F}对\vec{r}累积 \to W,\Delta E\end{cases} \Long...

2020-04-08 10:20:49 5156 1

原创 C++学习笔记——多态

多态是C++面向对象三大特性之一动态多态的函数地址晚绑定多态分为两类:静态多态:函数重载和运算符重载属于静态多态,复用函数名动态多态:派生类和虚函数实现运行时多态静态多态和动态多态区别:静态多态的函数地址早绑定-编译阶段确定函数地址动态多态的函数地址晚绑定-运行阶段确定函数地址动态多态满足条件1、有继承关系2、子类重写父类的虚函数#include <iostream&g...

2020-04-05 16:35:01 218

原创 C++学习笔记——继承

1、继承的好处:减少重复代码语法:class 子类 :继承方式 父类子类又称派生类 父类又称基类派生类中成员包含两部分:一类是从基类继承过来的,表现其共性。一类是自己增加的成员,表现其个性。示例在这里插入代码片...

2020-03-29 22:07:57 191

原创 经典力学(动力学)——牛顿定律

牛顿第一定律任何物体都要保持静止或匀速直线运动状态,直到外力迫使它改变运动状态为止。当F⃗=0\vec{F}=0F=0时,v⃗=\vec{v}=v=恒矢量惯性:\blue{惯性}:惯性:物体保持其运动状态不变的特性。如果物体在一参考系中不受其它物体作用,而保持静止或匀速直线运动,这个参考系就称为惯性参考系\red{惯性参考系}惯性参考系.牛顿第二定律动量:p⃗=mv⃗\vec{p}=m...

2020-03-22 20:48:39 2108

原创 经典力学学习(运动学)——相对运动

运动描述的相对性同一物体的运动,由于所选参考系的不同,而有不同的描述,这一事实称为运动描述的相对性。同一运动在不同的参考系中的运动方程也不相同。相对与绝对当两个坐标系之间的相对运动速度(牵连速度)不是常量时,就存在一个加速度:a⃗e——牵连加速度\vec{a}_e——\blue{牵连加速度}ae​——牵连加速度则:a⃗a=a⃗r+a⃗e\vec{a}_a=\vec{a}_r+\vec{...

2020-03-18 09:33:15 2876 1

原创 经典力学学习(运动学)——圆周运动与一般平面曲线运动

圆周运动的运动方程\blue{运动方程}运动方程和轨迹方程\blue{轨迹方程}轨迹方程1、圆周运动方程的分量式\red{分量式}分量式x=Rcos(wt),y=Rsin(wt),z=0x=Rcos(wt),y=Rsin(wt),z=0x=Rcos(wt),y=Rsin(wt),z=01、圆周运动方程的矢量式\red{矢量式}矢量式r⃗=R(cos(wt)i⃗+sin(wt)j⃗)\ve...

2020-03-18 08:50:49 9010 1

原创 C++学习笔记——运算符重载

运算符重载:对已有的运算符进行重新定义,赋予其另一种功能,以适应不同的数据类型1、加号运算符作用:实现两个自定义数据类型相加class Person{public: //成员函数重载加号 //Person operator+ (Person &p) //{ // Person temp; // temp.m_A = this->m_A + p.m_A; //...

2020-03-17 20:28:18 175

原创 CSDN博客必备知识

MarkDown语法Markdown语法(简书中加入数学公式)Markdown 数学公式语法

2020-03-17 18:05:17 174

原创 经典力学学习(运动学)——质点运动学

由于需要用到对运动物体进行建模,所以重新学习大学物理经典力学和一部分。通过学习B站东北大学大学物理所做笔记经典力学框架运动学:是从几何观点研究和描述物体机械运动规律,研究“怎样动”的规律。动力学:是从受力的角度来研究和描述物体机械运动规律,研究“为什么动”的问题。运动状态:使用位置、速度、加速度等物理量来描述的在某一时刻物体状态。运动学的核心是“运动方程”。质点运动描述质点:...

2020-03-17 08:53:37 6246 1

原创 C++学习笔记——友元

引入友元的目的:让一个函数或类访问另一类中私有成员友元关键字:friend友元有三种实现方式:(1)全局函数做友元(2)类做友元(3)成员函数做友元全局函数做友元class Building{ //告诉编译器goodGay全局函数是Building好朋友,可以访问Building中私有成员 friend void goodGay(Building &bu...

2020-03-14 20:39:13 230

原创 使用git上传文件夹到GitHub仓库

准备工作首先你需要一个github账号,所有还没有的话先去注册吧!https://github.com/我们使用git需要先安装git工具,这里给出下载地址,下载后一路直接安装即可:https://git-for-windows.github.io/1、进入Github首页,点击New repository新建一个项目2、填写相应信息后点击createRepository nam...

2020-03-06 12:23:36 431

原创 C++学习笔记——C++对象模型和this指针

Visual Studio中可直接运行。#include <iostream>#include <string>using namespace std;#define FLAG 4#if FLAG==1/**************************************************************************1、...

2020-03-03 21:18:38 216

原创 C++学习笔记——构造函数与析构函数

在visual studio中可直接运行#include <iostream>#include <string>using namespace std;/****************************************************************** 1、构造函数和析构函数 (1)构造函数 格式:类名() {}...

2020-03-03 21:13:25 293

原创 C++学习笔记——类和对象之封装

#include <iostream>#include <string>using namespace std;/* **************C++面向对象的三大特性:封装、继承、多态************** 具有相同性质的对象,我们抽象称为类 */ /************************************************...

2020-02-28 12:41:35 174

原创 C++学习笔记——函数提高

#include <iostream>using namespace std;#define FLAG 4/*1、默认函数参数在C++中,函数的形参列表中的形参是可以有默认值的语法:返回值类型 函数名 (参数 = 默认值){}Tips:(1)如果某个位置已经有默认值,那么这个位置往后,从左到右都有默认值 (2)函数的声明和定义二者只能有一个有默认参数*/...

2020-02-27 14:37:10 152

原创 C++学习笔记——引用

#include <iostream>using namespace std;#define FLAG 6/*3、引用做函数参数作用:函数传参时,可以利用引用的技术让形参修饰实参优点:可以简化指针修改实参*///1、值传递void mySwap01(int a ,int b){ int temp = a; a = b; b = temp; cout &l...

2020-02-27 14:33:53 169

原创 C++学习笔记——new操作符

#include <iostream>using namespace std;/* new在堆区开辟数据 delete在堆区释放数据*///1、new基本语法int *func(){ //在堆区创建整型数据 int*p = new int(10);//new返回的是该数据类型的指针 return p;}void test01(){ int *p = f...

2020-02-27 14:26:26 174

原创 C++学习笔记——内存分区

#include <iostream>using namespace std;#define FLAG 2/* 内存分区模型: C++程序在执行时,将内存大方向分为4个区 1、代码区:存放函数体的二进制代码,由操作系统进行管理 2、全局区:存放全局变量和静态变量以及常量 3、栈 区:由编译器自动分配释放,存放函数的参数值,局部变量等 4、堆 区:由程序员分配和...

2020-02-25 21:39:47 226

转载 Matlab中计算程序运行时间的三种方法

经常我们需要计算我们程序到底运行多长时间,这样可以比较程序的执行效率。当然这个对于只有几秒钟的小程序没有什么意义,但是对于大程序就有很重要的意义了。下面我们就说说MATLAB中计算程序运行时间的三种常用方法吧!注意:三种方法由于使用原理不一样,得到结果可能有一定的差距!1、tic和toc组合(使用最多的)tic%代码块toc%disp(['运行时间: ',num2str(toc)])...

2020-02-25 16:13:19 15677 1

原创 C++学习笔记——指针

#include <iostream>using namespace std;//指针:通过指针保存一个地址int main(){ /************************************************************************ *1、定义指针 **********************************...

2020-02-19 20:57:50 261

原创 C++学习笔记——结构体

#include <iostream>#include <string>using namespace std;/*结构体属于用户自定义数据类型,允许用户存储不同的数据类型*/void printstu1(struct Student s);void printstu2(struct Student *s);void printstu3(const struc...

2020-02-19 20:54:53 161

原创 FreeRTOS——支持时间片

所谓时间片就是同一个优先级任务下可以有多个任务,每个任务轮流的享有相同的CPU时间,享有CPU的时间我们叫做时间片。在RTOS中,最小的时间单位是一个tick,即 SysTick 的中断周期。对于FreeRTOS,时间片只能是一个tick。与其说FreeRTOS支持时间片,倒不如说他的时间片就是正常的任务调度。一、原理分析之 所 以 在 同 一 个 优 先 级 下 可 以 有 多 个 任 务 ...

2020-02-19 12:02:34 1463

原创 FreeRTOS——任务延时列表的实现

在学习本章之前,为了实现任务的阻塞延时,在任务控制块中内置了一个延时变量xTicksToDelay。当每次任务需要延时时,就初始化xTicksToDelay需要延时的时间,然后将任务挂起,这里所说的挂起只是将任务在优先级位图表uxTopReadyPriority中对应的位清零,并不会将任务从就绪列表中删除。当每次时基中断(SysTick中断)来临时,就扫描就绪列表中每个任务的xTicksToDel...

2020-02-19 12:02:19 840

原创 FreeRTOS——支持多优先级

在FreeRTOS中,数字优先级越小,逻辑优先级也越小。一、如何支持多优先级就绪列表 pxReadyTasksLists[ configMAX_PRIORITIES ]是一个数组,数组里面存储的是就绪任务的TCB(准确来说是TCB里面的xStateListItem节点),数组的下表对应任务的优先级,优先级越低对应数组的下标越小。空闲任务的优先级最低,对应的是下标为0的链表。下图展示了就绪列表中...

2020-02-17 11:27:16 1045

转载 MATLAB quadprog函数参数介绍

2020-02-15 14:59:49 1548

原创 FreeRTOS——空闲任务与阻塞延迟实现

在裸机运行中,我们是使用软件延时来实现延时的功能(delay()),即是让CPU空等来达到延时的目的。使用RTOS的很大优势就是榨干CPU性能,永远不让他闲着,任务需要延时也就不需要让CPU空等来实现延时的效果。RTOS中的延时叫做阻塞延时,即任务需要延时的时候,任务会放弃CPU的使用权,CPU可以去干其他的事情,当任务延时时间到,重新获取CPU使用权,任务继续运行。这样就可以充分利用CPU资源...

2020-02-15 09:53:01 2390

原创 FreeRTOS——临界段保护

一、什么是临界段临界段就是一段在执行的时候不能被打断的代码。在FreeRTOS中,临界段最常出现的就是对全局变量的操作。那么在什么情况下临界段可以被打断?一个是系统调度,另一个是外部中断。但是在FreeRTOS中,系统调度最终也是产生PendSV中断,在PendSV Handler里面实现任务的切换,所以还是归结为中断。因此,FreeRTOS对临界段的保护最终还是回到了对中断开、关的控制。二...

2020-02-14 13:53:49 826

原创 FreeRTOS——任务的定义与切换

本节属于操作系统中基础中的基础,包括任务的创建与切换。以两个任务为例,在多任务系统中,两个变量波形完全一样,就好像CPU在同时做两件事,这才是多任务的意义。一、什么是任务裸机系统中,系统的主体是main函数里顺序执行的无限循环,这个无限循环里面CPU按照顺序完成各种事情。在多任务系统中,我们可以根据功能的不同,把整个系统分割为一个个独立的且无法返回的函数,这个函数我们就称为任务。如下:vo...

2020-02-12 09:32:50 848

原创 FreeRTOS数据结构——列表与列表项

在FreeRTOS中存在着大量的基础数据结构列表和列表项的操作,要想读懂FreeRTOS的源代码,就必须弄懂列表和列表项的操作。一、C语言链表简介链表就好比一个圆形的晾衣架,晾衣架上有很多钩子,钩子首尾相连。链表也是,链表由节点组成,节点与节点之间首尾相连。晾衣架的钩子本身不能代表很多东西,但是钩子本身可以挂很多东西。同样,链表也类似,链表的节点本身不可能存储太多东西,但是节点跟晾衣架的钩子一...

2020-02-10 08:10:51 731

原创 Apollo安装与仿真平台介绍(二)————Ubuntu16.04下部署Apollo2.5

最近要用到Apollo自动驾驶框架,便花了两天时间在Ubuntu16.04上搭建了Apollo2.5。Apollo源代码首先是下载apollo源代码,有两种方法(这里选择的F2):F1、直接从github上拉取git clone --branch v2.5.0 https://github.com/ApolloAuto/apollo.git拉取之后会有一个apollo文件夹在home下...

2020-02-08 20:58:34 2812 1

原创 新建FreeRTOS工程——软件仿真/裸机系统与多任务系统

一、新建FreeRTOS工程——软件仿真1、新建本地工程文件在开始新建工程之前,我们先在本地电脑端新建一个文件夹用于存放工程。文件夹名字我们取为“” FreeRTOS ”(名字可以随意取) ,然后再在该文件夹下面新建各个文件夹和文件:Doc:用于存放对整个工程的说明文件.readme.txt。Project:用于存放新建的工程文件。freertos:include:存放头文件por...

2020-02-08 17:03:50 1107

空空如也

空空如也

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

TA关注的人

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