自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言关键知识点集合

变量/函数的声明仅声明变量/函数存在于程序中的某个位置也就是后面程序会知道这个函数或者变量的类型,但不分配内存。关于定义,当我们定义变量/函数时,除了声明的作用外,它还为该变量/函数分配内存。宏定义又称为宏代换、宏替换,简称“宏”。定义数据类型:#define reg register定义数值:#define MAX 1000定义函数:#define MAX(a, b) ((a)>(b)?(a):(b)) 用于简单表达式函数,处理更快,但是无法调试。......

2022-08-03 19:51:32 673 1

原创 指针常量和常量指针概述

const是constant的简写,只要一个变量前面用const来修饰,就意味着该变量里的数据可以被访问,不能被修改。是指指向常量的指针,顾名思义,就是指针指向的是常量,即,它不能指向变量,它指向的内容不能被改变,不能通过指针来修改它指向的内容,但是指针自身不是常量,它自身的值可以改变,从而指向另一个常量。它指向的地址是不可改变的,但地址里的内容可以通过指针改变。//*在前,定义为指针常量。指向常量的指针,指针的地址可以变,指针指向的内容不能变。指针是一个常量,指针的地址不能变,指向的内容可以变。...

2022-08-02 14:34:34 636

原创 汽车诊断协议UDS概述

UDS会提供很多诊断服务,比较常用的有$10DiagnosticSessionControl(诊断会话),$14ClearDiagnosticInformation(清除诊断信息),$19ReadDTCInformation,$22ReadDataByIdentifier(通过ID读数据),$27SecurityAccess(安全访问),$2EWriteDataByIdentifier(通过ID写数据),$3ETesterPresent(待机握手)等等。...

2022-08-02 11:06:48 8123 1

原创 register和volatile的区别

在多线程情况下,并且多个线程对这个变量会进行频繁读写的话,那就会出现脏数据。即,如果一个线程修改了这个变量的值,但是变量新值还未及时更新到缓存或者寄存器时,另外一个线程一旦访问缓存或者寄存器,就会获取没有及时更新的脏数据。在ANSIC语言中,由于用了register,变量需要写入寄存器而不在内存中,所以利用&取址运算符是无法获取地址的,即,&取址运算符不能用于register修饰的变量。就针对编译器而言,volatile所做的就是要求变量必须保存在内存中,而不允许被编译器进行优化放入缓存或者寄存器等等。..

2022-07-31 00:10:27 367

原创 中断向量表概述

目录中断中断源什么是中断向量表?中断向量中断函数中断的优先级中断服务程序的设计中断所谓中断是指CPU在正常执行程序的过程中,由于内部/外部事件的触发或由程序的预先安排,引起CPU暂时中断当前正在运行的程序,而转去执行为内部/外部事件或程序预先安排的事件的服务子程序,待中断服务子程序执行完毕后,CPU再返回到被暂时中断的程序处(断点)继续执行原来的程序,这一过程成为中断。中断源触发中断的事件则被称作中断源。什么是中断向量表?中断向量表就是中断向量的列表。中断向量表在内存中保存,其中存放着中断源(

2022-07-30 21:08:08 7486

原创 进程与线程

文章目录进程与线程概述进程进程概述进程间通信线程线程与进程的关系和区别火车类比过程数据组成进程与线程概述不管是基于windows,linux还是其他平台,或者C还是java等编程语言,都会最后得到运行的程序,都会使用到进程与线程。程序是一种静态概念,是保存在磁盘上的一系列文件。进程是一种动态概念,是运行中的程序,是资源分配的最小单元,一个程序包括一个或多个进程。线程是CPU运算调度的最小单元,也可以当做轻量级的进程,一个进程可以包含一个或者多个线程。进程进程概述多进程是指操作系统能同时运行多

2022-07-29 13:25:52 75

原创 Apollo7.0系统概述

目录Apollo概述通信框架代码结构代码目录总览canbus模块示例环境的搭建ubuntu系统的安装Nvidia显卡的安装安装docker安装docker工具包操作命令启动apollo docker容器进入apollo docker容器编码细节编译方法启动Apollo DreamView启动Apollo-LGSVL DreamView清除编译环境查看Log启动CANBus调试工具监控topic启动和停止CANBus launch文件Apollo概述Apollo系统是百度推出的自动驾驶平台,目前已经迭代到

2022-07-28 11:46:34 1272 1

原创 linux系统中TCP/UDP套接字编程概述

目前linux系统中使用的比较普遍的网络通信协议是TCP和UDP,下面就讲一下两个协议的通讯原理。主要是分为客户端和服务器端,客服端用于发送数据,而服务器端用于接收数据,一个服务器端可以对应多个客户端。目录UDP通信协议UDP通信协议概述UDP通信协议原理图API函数socket函数bind函数recvfrom函数sendto函数TCP通信协议TCP通信协议概述TCP通信协议原理图API函数connect函数write函数read函数UDP通信协议UDP通信协议概述UDP全称用户数据报协议(User

2022-07-22 13:50:56 598

原创 ROS基本编程概述

它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。一个node可以定义要发送的topic名字和数据类型,类似于广播的形式,而另一个node则可以订阅该topic,从而实现了两个node之间的通信。roscore,启动节点管理器,在一个ros系统中,有且只有一个,它是ros节点运行的前提,所以在执行启动ros节点前,第一步都需要执行roscore。在rviz中,可以通过QT添加插件,用来发送topic给ros系统,从而实现对机器人或者汽车的反向控制。...

2022-07-22 13:44:31 1221

原创 rostopic的命令

rostopic命令

2022-06-28 16:29:33 449

原创 在ubuntu 18.04下安装Nvidia显卡驱动的黑屏问题

目录安装环境问题解决办法安装环境ubuntu 18.04ROG 幻16 3060问题禁用ubuntu 自带显卡驱动Nouveau,具体流程网上查询根据系统推荐,安装了nvidia-driver-510重启电脑后,出现黑屏解决办法开机进入ubuntu恢复模式,然后进入root模式删除禁用ubuntu 自带显卡驱动Nouveau时添加的配置文件先挂载系统可读写mount -o remount,rw /删除之前创建的文件rm -f /etc/modprobe.d/black

2022-03-10 16:06:48 6977 8

原创 在ubuntu 18.04下linux版本的搜狗输入法

目录安装步骤安装步骤安装fcitxsudo apt-get install fcitx将简体中文和英文添加到安装的y语言键盘输入法系统设定为fcitx,应用到整个系统,重启电脑安装linux版搜狗输入法sudo dpkg -i sogoupinyin_版本号_amd64.deb如果报错,需要安装依赖sudo apt -f install重启电脑即可——————2022.3.10...

2022-03-10 15:41:17 307

原创 C++中读文件以及getline和atof函数的运用

文章目录读文件getline函数atof函数读文件一次性从某个文件中读取数据,并存入固定的vetor结构体中。文件中的数据结构为:A,B,C,DA,B,C,DA,B,C,DA,B,C,DA,B,C,Dvoid showPlanningPath(void){ string lineStr; //读取文件,以读模式打开文件 ifstream infile; infile.open("/home/mdc/MDC/lgsvl/rsc/refTrajectory.csv",ios::in)

2022-01-28 00:45:13 2227

原创 C++中写文件以及setprecision函数的运用

文章目录写文件问题setprecision函数的运用写文件周期性将数据写入某个固定文件中,按照固定的格式,每一行数据类型相同,都是double类型。A,B,C,DA,B,C,DA,B,C,D#include <fstream>#include <iostream>//写入文件,以写模式打开文件int main(void){ ofstream outfile; outfile.open("data.txt",ios::out|ios::app); if(out

2022-01-26 19:41:44 1275

原创 树莓派设置时区同步时间

文章目录问题解决方法问题在获取树莓派的实时时间时,发现树莓派显示的日期是正确的,但是时间相隔8个小时,应该是时区没有设置的原因。解决方法设置中国的时区输入 sudo dpkg-reconfigure tzdata,选择亚洲Asia选择Chongqing,保存退出即可输入date,就可以显示正确的时间了————2022.01.23家中...

2022-01-23 23:15:01 1784

原创 MDC300上激光雷达的接入

文章目录

2022-01-10 11:32:20 1022

原创 Ubuntu 18.04安装ROS melodic教程

文章目录

2022-01-10 10:26:16 143

原创 MDC300的ADSFI框架介绍

文章目录什么是ADSFI框架?ADSFI应用框架图MDC300上有哪些ADSFI框架?各个ADSFI框架的联系单个ADSFI框架的构成单个ADSFI框架中的yaml文件什么是ADSFI框架?ADSFI(Autonomous Driving Service Framework Initiative)ADSFI对外提供各种自动驾驶领域常用的应用框架,其中应用框架覆盖感知类的框架,融合类的框架,规划控制类框架,定位类的框架,场景分析管理类框架。ADSFI提供的功能:提供自动驾驶服务框架:MDC支持Ada

2021-12-30 23:26:07 2878 7

原创 MDC300平台介绍

目录什么是MDC?MDC300F提供的组网方案MDC提供的工具链MDC的框架图什么是MDC?MDC(Mobile Data Center)硬件设计目标为高度智能驾驶硬件平台,承载如TJP(Traffic Jam Pilot)、HWP(Highway Pilot)、APA(Auto Parking Assist)等功能,聚焦在智能驾驶的计算单元,是智能驾驶全景感知、地图&传感器融合、车辆定位、规划控制等功能的硬件载体。MDC300F提供的组网方案MDC提供的工具链MDC的框架图...

2021-12-28 23:37:43 1956

原创 Autoware中pure pursuit纯跟踪算法的代码分析(三)

目录calcCurvature函数详解calcCurvature函数详解calcCurvature函数原型如下:double PurePursuit::calcCurvature(const geometry_msgs::Point& target) const{ double kappa; const geometry_msgs::Point pt = calcRelativeCoordinate(target, current_pose_); const double den

2021-12-17 00:16:40 991

原创 Autoware中pure pursuit纯跟踪算法的代码分析(二)

目录calcRelativeCoordinate函数详解calcRelativeCoordinate函数详解calcRelativeCoordinate函数原型如下:// calculation relative coordinate of point from current_pose framegeometry_msgs::Point calcRelativeCoordinate(geometry_msgs::Point point_msg, geometry_msgs::Pose curren

2021-12-17 00:13:47 895 1

原创 C++中vector的初始化和at函数以及clear函数的使用

目录vector的初始化at函数clear函数vector的初始化vector的初始化有很多,以下列举几种。vector<int> v; //定义一个vector容器,类型是int,size为0vector<int> v = {0,1,2}; //定义一个vector容器,类型是int,size为3,初始化值为0,1,2。vector<int> v(3,1); //定义一个vector容器,类型是int,size为3,全部初始化为1。at函数vecto

2021-12-16 17:20:07 2059

原创 Autoware中pure pursuit纯跟踪算法的代码分析(一)

目录pure pursuit纯跟踪算法的简介源码分析文件简介涉及到的两个类框架性函数介绍算法实现函数(按顺序介绍)computeLookaheadDistancegetNextWaypointcalcCurvaturecalcRelativeCoordinatecanGetCurvatureconvertCurvatureToSteeringAnglepure pursuit纯跟踪算法的简介pure pursuit纯跟踪算法在汽车智能驾驶领域目前的应用很广泛,主要用于汽车的循迹。这种算法比较基础,利用的

2021-12-13 13:31:55 4026 4

原创 for循环和auto类型

目录auto的定义auto的作用范围for语句auto的定义auto类型是C++11标准引入的说明符,用它可以让编译器替我们去分析表达式所属的类型。auto的作用声明变量时根据初始化表达式自动推断该变量的类型;声明函数时函数返回值。auto f = 3.14 //double类型的auto out = std::make_shared<HafLocation>(); //HafLocation是结构体类型范围for语句C++11新标准引入了一种更加简单的for语句,这种语

2021-12-10 15:57:12 1407

原创 内存管理和智能指针

目录

2021-11-24 13:48:18 833

原创 C++中的容器

目录容器的定义顺序容器常见顺序容器的类型vectorlistforward_listdequearraystringvector的示例定义一个结构体定义一个vector容器向容器中添加元素容器的定义一个容器就是一些特定类型对象的集合。顺序容器顺序容器为程序员提供了控制元素存储和访问顺序的能力。这种顺序不依赖于元素的值,而是与元素加入容器时的位置相对应。常见顺序容器的类型vector可变大小数组。支持快速随机访问。在尾部之外的位置插入或删除元素可能很慢。list双向链表。只支持双向顺序访问。

2021-11-23 11:08:31 139

原创 虚函数和纯虚函数的使用方式以及区别

虚函数和纯虚函数可以定义在同一个类(class)中,含有纯虚函数的类被称为抽象类(abstract class),而只含有虚函数的类(class)不能被称为抽象类(abstract class)。虚函数可以被直接使用,也可以被子类(sub class)重载以后以多态的形式调用,而纯虚函数必须在子类(sub class)中实现该函数才可以使用,因为纯虚函数在基类(base class)只有声明而没有定义。虚函数和纯虚函数都可以在子类(sub class)中被重载,以多态的形式被调用。虚.

2021-11-03 15:00:00 279

原创 C++类中的各种函数

目录成员函数构造函数和析构函数虚函数友元函数内联函数成员函数成员函数是定义为类的一部分的函数,有时也被称为方法。类的成员函数可以把定义和原型写在类的内部,就像类定义中的其他变量一样。类成员函数是类的一个成员,它可以操作类的任意对象,可以访问对象中的所有成员。类的成员函数的定义可以在类的内部,也可以在类的外部。成员函数定义在类的内部class Box{ public: double length; // 长度 double breadth;

2021-11-03 14:48:42 2639

原创 C++中的类访问修饰符

目录什么是类访问修饰符?类访问修饰符的分类什么是类访问修饰符?数据封装是面向对象编程的一个重要特点,它防止函数直接访问类类型的内部成员。类成员的访问限制是通过在类主体内部对各个区域标记 public、private、protected 来指定的。关键字 public、private、protected 称为访问修饰符。一个类可以有多个 public、protected 或 private 标记区域。每个标记区域在下一个标记区域开始之前或者在遇到类主体结束右括号之前都是有效的。成员和类的默认访问修饰符是

2021-11-02 16:38:02 482

原创 C++中的继承

目录为什么要用继承?继承的定义为什么要用继承?面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行效率的效果。当创建一个类时,您不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。这个已有的类称为基类,新建的类称为派生类。继承代表了 is a 关系。例如,哺乳动物是动物,狗是哺乳动物,因此,狗是动物,等等。继承的定义通过继承联系在一起的类构成一种层次关系,通常

2021-11-02 00:13:49 71

原创 C++中的类模板

目录索引为什么使用模板?类模板简介定义一个类模板模板外定义模板里面的函数类模板的使用类模板的继承为什么使用模板?模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。模板是C++中泛编程的基础,一个模板就是一个创建类或函数的蓝图或者公司。类模板简介定义一个类模板类模板以关键字template开始,后面跟模板参数列表。template <class T1,class T2>class A{ public: T2 add(T1 x, T1 y );}在这

2021-10-25 15:36:13 534

原创 C++中的命名空间

目录为什么要使用命名空间?命名空间的含义命名空间的定义标准库命名空间std普通命名空间的定义命名空间的使用命名空间可以是不连续的命名空间的嵌套命名空间的别名为什么要使用命名空间?大型程序往往会使用多个独立开发的库,这些库会定义大量的全局名字,例如类、函数、变量以及模板。为避免名字命名发生污染和冲突,就引入了命名空间。命名空间的含义命名空间是为了防止名字冲突提供了更加可控的机制。命名空间分割了全局的命名空间,其中每一个命名空间就是一个作用域。通常在某个命名空间中定义库的名字,库的作者或者用户,可以避免

2021-10-23 16:25:17 839

原创 函数的重载

目录定义示例注意事项定义函数重载:如果同一作用域内的几个函数名字相同但形参列表不同,则称之为重载函数。示例void print(int a){ cout << " 整数为" << a <<endl}void print(double a){ cout << " 小数为" << a <<endl}void print(char a[]){ cout << " 字符串为" << a

2021-10-23 11:33:04 217

原创 汽车DTC码解析

DTC(Diagnostic Trouble Code)表示诊断故障码,是故障类型的"身份ID";用于汽车故障时对故障部位及原因的排查。格式如下:DTCHighByte(Hex)DTCMiddleByte(Hex)DTCLowByte(Hex)其中,DTCHighByte、DTCMiddleByte这两个字节表示故障内码,对应5位标准故障码(第一位是字母,后面四位是数字),如"B100016"这个故障码中的"B1000";最后面的"16"则是DTCLowByte的内容。故障内码与5位

2021-09-18 16:13:12 8798 3

原创 树莓派打开I2C功能

通过配置打开树莓派的I2C功能sudo raspi-config /*enable I2C*/重启树莓派sudo reboot连接好I2C设备(OLED),读取I2C地址sudo i2cdetect -y 1——————2021.04.0223:27

2021-04-02 23:27:40 2524 2

原创 基于树莓派点亮LED

环境准备官方树莓派系统下载安装了wiringPi<提供操作GPIO的接口函数>材料准备树莓派4B,面包板,电阻(300Ω),LED灯,杜邦线连线VCC 3.3V + GPIO.0代码如下可以参考我的github:https://github.com/liebecl/LightLED#include <stdio.h>#include <wiringPi.h>#define PIN_0 0#define DL_500MS 500int ma.

2021-04-02 00:30:50 181

原创 WiringPi简介

WiringPi是一个用C语言编写的树莓派(RaspberryPi)软件包,可用于树莓派GPIO引脚控制、串口通信、SPI通信及I2C通信等功能,非常适合熟悉C/C++的人员在树莓派上进行软件开发。WiringPi的作者是Gordon Henderson,其官方网址为http://wiringpi.com。WiringPi遵循GNU GPLv3公约,任何人都可以免费使用该软件包。1.WiringPi的库函数WiringPi提供了很多函数用于各种功能,包括如下库:1.1 WiringPi配置函数(Wir

2021-03-30 00:39:37 1551

原创 树莓派关机方式

命令行关机sudo shutdown -h now图形界面直接关机——————2021.03.250:37

2021-03-25 00:38:11 1469

原创 树莓派安装git和下载安装WiringPi

具体命令如下sudo apt-get update#如果之前没有安装过 git,执行下面的命令安装一下sudo apt-get install git-core#下载 wiringPigit clone https://github.com/WiringPi/WiringPi#编译 wiringPicd WiringPisudo ./build——————2021.03.250:33...

2021-03-25 00:33:51 1111

原创 调整VNC分辨率的方法

通过VNC远程连接树莓派,发现分辨率不是很清楚,可以通过以下命令来调节VNC的分辨率。vncserver -geometry 1920x1080————————2021.03.2423:50

2021-03-24 23:51:04 10793

空空如也

空空如也

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

TA关注的人

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