自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Parker盘的博客

学习记录

  • 博客(60)
  • 资源 (3)
  • 收藏
  • 关注

原创 ros 户外机器人仿真方法及实践

ros户外仿真环境介绍和使用。

2022-05-13 10:13:43 513

原创 实物机器人发布odom到baselink的tf变换

真实机器人odom->base_link转换

2022-04-12 09:51:51 1306

原创 跑rangenet总结

跑rangenet总结该项目需要安装cuda和tensorrt,需要严格按照官方要求的版本进行安装,否则会出现意想不到的问题。项目的链接rangenet链接cuda安装教程tensorrt安装教程这两个链接是安装的链接 严格按照这两个安装就基本不会出错。另外是系统最好是16.04.如果出现umet dependency用如下命令修复:apt --fix-broken install...

2021-09-26 15:01:06 541

原创 slam14讲 第四讲例程遇到的问题

问题描述书中提高的3rdparty里没有相应的安装文件,需要网上下载,安装Sophus时,要求切换到a621ff分支,但无法切换,可能是因为我的系统是18.04的原因。因此无法完全按照书中方法进行安装。

2021-08-20 20:20:38 453 1

原创 C++中main函数的参数解析argc和argv是啥?

argc和argv是什么意思?int main(int argc, char **argv){return 0;}其中,argc是argument count的简写,即参数个数; argv是argument value的简写,即参数值;以ros编码为例 #include "ros/ros.h" #include "beginner_tutorials/AddTwoInts.h"//AddTwoInts.h是重新编译beginner_tutorials包自动生成的 boo

2021-02-24 16:26:54 477

原创 写程序定义一个基类BaseClass,从它派生出类DerivedClass,在BaseClass中声明虚析构函数,在主函数中将一个动态分配的Derived的对象地址赋给一个BaseClass指针,然后

题目:写程序定义一个基类BaseClass,从它派生出类DerivedClass,在BaseClass中声明虚析构函数,在主函数中将一个动态分配的Derived的对象地址赋给一个BaseClass指针,然后通过指针释放对象空间.观察程序运行的过程.在BaseClass中的析构函数换成非虚构函数,再观察此时程序的运行过程.非虚析构函数#include <iostream>using namespace std;class BaseClass{public: BaseClas

2020-11-19 16:05:38 4829

原创 编写程序声明一个车(vehicle)基类,有Run,Stop等成员函数,由此派生出自行车(motocycle)类,汽车(motocar)类,从bicyle和motoc

编写程序声明一个车(vehicle)基类,有Run,Stop等成员函数,由此派生出自行车(motocycle)类,汽车(motocar)类,从bicyle和motocar派生出摩托车(motocycle)类,它们都有Run,Stop等成员函数.在main()函数中声明vehicle,bicyle,motocar,motocyle的对象,调用其Run(),Stop()函数,观察其执行情况.再分别用vehicle类型的指针来调用这几个对象的成员函数,看看能否运行成功;把Run,Stop声明为虚函数,再试试看.

2020-11-19 15:00:27 12431 2

原创 多态与重载 以重载--和++为例

1、第一种方法,传值重载:#ifndef POINT_H#define POINT_H#include<iostream>using namespace std;class Point{ protected: int x; int y;public: Point(int a,int b) { x=a; y=b; } Point operator++(); Point oper

2020-11-19 11:47:04 125

原创 递归的学习

https://www.bilibili.com/video/BV194411f71o?from=search&seid=1711483227498323844

2020-11-12 19:52:22 74

原创 树莓派64位系统成功安装bcm2835库

背景树莓派的GPIO库主要有三种wiringPi, RPI.GPIO,bcm2835。其中wiringPi和bcm2835是支持C/C++语言的库。名气上wiringPi更大一点,但奈何作者因为抑郁(网上有人评论)把库的源代码给封了,暂时也不支持64位系统所以安装不了。RPI.GPIO是Python库,脚本语言嘛原则上与系统无关,当然主要是因为我们的系统用的C++写,调用Python还是会稍微麻烦一点,所以没有实际测试。因此把希望寄托在了bcm2835库上了。测试材料Ubuntu20.04 serv

2020-10-23 09:34:50 2842 7

原创 拷贝赋值函数(详解)

拷贝赋值函数指针拷贝的四大步骤:检查是否自我赋值;删掉原数据;分配新的数据长度;赋值;inlineString& String::operator=(const String& str){//检测是否是自我赋值, if (this == &str) return *this;//删掉原数据; delete[] m_data; //分配新的数据长度; m_data = new char[ strlen(str.m_data)

2020-10-19 19:56:58 4276 1

转载 面向对象和基于对象的区别

**面向对象和基于对象的区别是多态,和继承无关。 **基于对象仅仅支持了抽象数据类型的功能,继承也不过体现了一种is-a的关系,也是抽象数据类型,只是建立了一个层次体系。但是什么是面向对象呢?就是根据对象的实际类型不同,可以自动完成不同的行为,而仅仅通过一致的调用形式。换句话说,也就是虚函数实现的多态。以上观点,在OO设计中已经得到了公认,多态的另一种实现方法是泛型。“面向对象”和“基于对象”两个不同的概念。面向对象的三大特点(封装,继承,多态)却一不可,通常“基于对象”使用对象,但是无法利用现有的对象

2020-10-17 16:20:39 293

翻译 CyberRT_API_for_Developers

Cyber RT API for DevelopersThis document provides an extensive technical deep dive into how to create, manipulate and use Cyber RT’s API.Table of ContentsTalker-ListenerService Creation and UseParam parameter serviceLog APIBuilding a module based o

2020-10-12 15:14:25 348 3

原创 多线程编程实例

多线程的好处通过一个程序示例来展示单线程#include <iostream>#include <vector>#include <algorithm>#include<numeric>#include <string>using namespace std; int GetSum(vector<int>::iterator first,vector<int>::iterator last){ r

2020-09-22 14:56:25 198

转载 C++ explicit

C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生,声明为explicit的构造函数不能在隐式转换中使用。C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。1 是个构造;2 是个默认且隐含的类型转换操作符。所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型正好是AAA单参数构造器的参数类型, 这时候编译器就自动调用这个构造器, 创建一个AAA的对象。这样看起来好象很酷,

2020-09-16 10:52:11 92

转载 memcpy以及string中c_str()、data()、copy(p,n)函数的用法

string中c_str()、data()、copy(p,n)函数的用法标准库的string类提供了3个成员函数来从一个string得到c类型的字符数组:c_str()、data()、copy(p,n)。c_str():生成一个const char*指针,指向以空字符终止的数组。注:***①这个数组的数据是临时的,当有一个改变这些数据的成员函数被调用后,其中的数据就会失效。因此要么现用先转换,要么把它的数据复制到用户自己可以管理的内存中。***注意。看下例:const char* c;str

2020-09-15 21:35:49 1991

转载 转载:Apollo CyberRT API

Cyber RT API for DevelopersThis document provides an extensive technical deep dive into how to create, manipulate and use Cyber RT’s API.Table of ContentsTalker-ListenerService Creation and UseParam parameter serviceLog APIBuilding a module based o

2020-09-14 10:51:50 246

原创 尿酸高的注意事项

尿酸高的注意事项1、适当有氧运动,一定不可以做剧烈的运动,以免关节过劳。最好选择游泳、太极拳、乒乓球之类的有氧运动,以此减轻体重。2、多喝白开水或淡茶水,每天的排尿量要控制在2000ml左右是最好的。可以用薏米粥来降尿酸,少喝热性的饮料等。3、多吃素,但并非所有的素食都要多吃,多吃紫皮茄子、上海青、生菜,莲花白。青菜忌食菠菜,然后是所有的豆类都要少吃或不吃。多吃水果,尤其多吃樱桃可以降尿酸。4、少吃肉,但又不能不吃,因为,动物脂肪和动物蛋白中含有的蛋白质,是其他食物所不可代替的,也是人体所必需的,但

2020-09-01 09:32:05 306

原创 五看三定做产品规划

参考:https://blog.csdn.net/linlianghui2004/article/details/5926884https://www.bilibili.com/video/BV1464y1u79N?p=2我在实际工作中需要做的工作是

2020-08-27 14:56:59 1571

转载 什么是回调函数?

原文地址:https://www.cnblogs.com/jiangzhaowei/p/9129105.html1. 什么是回调函数?回调函数,光听名字就比普通函数要高大上一些,那到底什么是回调函数呢?恕我读得书少,没有在那本书上看到关于回调函数的定义。我在百度上搜了一下,发现众说纷纭,有很大一部分都是使用类似这么一个场景来说明:A君去B君店里买东西,恰好缺货,A君留下号码给B君,有货时通知A君。感觉这个让人更容易想到的是异步操作,而不是回调。另外还有两句英文让我印象深刻:1) If you .

2020-08-11 21:46:22 182

转载 最全bazle中文教程(转载)

https://blog.gmem.cc/bazel-study-note简介Bazel是Google开源的,类似于Make、Maven或Gradle的构建和测试工具。它使用可读性强的、高层次的构建语言,支持多种编程语言,以及为多种平台进行交叉编译。Bazel的优势:高层次的构建语言:更加简单,Bazel抽象出库、二进制、脚本、数据集等概念,不需要编写调用编译器或链接器的脚本 快而可靠:能够缓存所有已经完成的工作步骤,并且跟踪文件内容、构建命令的变动情况,避免重复构建。此外Bazel还支持

2020-08-07 21:56:44 2304

原创 git

GitGit 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。Git 与 SVN 区别Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git

2020-07-29 14:44:05 119

转载 对象指针与动态对象

对象指针与动态对象1. Accessing Object Members via Pointers (用指针访问对象成员)Object pointers can be assigned new object names(对象指针可以指向新的对象名)Arrow operator -> : Using pointer to access object members (箭头运算符 -> :用指针访问对象成员)Circle circle1;Circle* pCircle = &ci

2020-07-21 14:22:27 198

原创 Concepts of Class 类的概念

Concepts of Class 类的概念1. OO Programming Concepts (面向对象编程的概念)Object-Oriented Programming (OOP) involves programming using objects. (OOP利用对象进行程序设计)An object represents an entity in the real world that can be distinctly identified. (一个对象表示现实世界中一个独一无二的实体)F

2020-07-21 14:21:00 255

转载 带有初始化器的if和switch语句

带有初始化器的if和switch语句1. if statement with an initializer (带有初始化器的if语句)1.1. if without an initializer (不带初始化器的if语句)int foo(int arg) { // do something return (arg);}int main() { auto x = foo(42); if (x > 40) { // do something with x } else {

2020-07-21 09:20:07 189

转载 Range-based for-loop (基于范围的for循环)

基于范围的for循环与普通for循环的主要差别就在于没有循环变量和循环条件控制。基于范围的for循环中,如果要修改广义集合中的元素,那么必须将元素名变量定义为引用类型

2020-07-21 08:57:32 1064

转载 常量和指针(Constant and Pointer)

在前先读,在前不变* (指针)和 const(常量) 谁在前先读谁 ;* 代表被指的数据,名字代表指针地址const在谁前面谁就不允许改变。

2020-07-20 14:56:26 210

转载 自动类型推导:decltype关键字

自动类型推导:decltype关键字1. 关键字decltype的用法decltype利用已知类型声明新变量。有了auto,为什么还要整出一个decltype?原因是,我们有时候想要从表达式的类型推断出要定义的变量类型,但不想用该表达式的值初始化变量。decltype是在编译期推导一个表达式的类型,它只做静态分析,因此它不会导致已知类型表达式执行。decltype 主要用于泛型编程(模板)2. 代码示例 #include<iostream>using names

2020-07-20 14:06:24 173

转载 Automatic Type Deduction: auto (C++11) 自动类型推导:auto关键字

Automatic Type Deduction: auto (C++11) 自动类型推导:auto关键字1. 关键字 autoC++03及之前的标准种,auto放在变量声明之前,声明变量的存储策略。但是这个关键字常省略不写。C++11中,auto关键字放在变量之前,作用是在声明变量的时候根据变量初始值的类型自动为此变量选择匹配的类型例如:int a = 10;auto au_a = a;//自动类型推断,au_a为int类型cout << typeid(au_a).nam

2020-07-20 11:17:10 574

原创 C++引用和函数传参

C++引用的使用定义引用传递指针传递时,给的参数是变量的地址,引用传递给的普通变量.

2020-07-20 08:45:09 162

原创 C++ 中的“>>“和“<<“

C++中的helloworld示例程序会用到"cout<<"这样的代码,但随着学习的深入我们发现"<<"也代表位操作中的左移功能.因此对其进行记录便于自己充分理解该符号.

2020-07-20 08:21:25 69306 5

原创 Apollo中byte.cc详解

Apollo中byte.cc详解canbus的底层涉及到can报文的读写,其中需要对报文中的字节进行位操作.为此Apollo封装了Byte类,主要是完成对字节数据的处理.成员函数列表 /** * @brief Transform an integer with the size of one byte to its hexadecimal * represented by a string. * @param value The target integer to t

2020-07-14 09:05:40 313

转载 int8_t、int16_t、int32_t、int64_t、uint8_t、size_t、ssize_t详解

该文为转发,具体链接:https://blog.csdn.net/yz930618/article/details/84785970工作中经常碰到int8_t、int16_t、int32_t、int64_t、uint8_t、size_t、ssize_t等数据类型,所以有必要对此进行梳理。int_t同类int_t 为一个结构的标注,可以理解为type/typedef的缩写,表示它是通过typedef定义的,而不是一种新的数据类型。因为跨平台,不同的平台会有不同的字长,所以利用预编译和typedef

2020-07-12 17:10:12 5965

原创 毫米波雷达slam资料

https://www.ti.com.cn/tool/cn/IWR1642BOOSThttps://blog.csdn.net/gua_MASS/article/details/88714876

2020-07-10 14:33:44 1079

原创 Apollo开发避坑指南--

本文用于本人在开发Apollo代码过程中遇到的坑,不定时更新.第一坑:不同版本的代码之间都有细微的更新,不能拿老版本的代码直接放入新版本最近在为apollo新增车辆驱动,看了can协议之后发现与ch(酷黑)也就是kit的协议比较相近,因此直接将整个ch目录拷贝进行更改.最早的时候用的r5.0.0的ch代码.最近成功下载了r5.5.0的代码,想在新的分支上进行开发学习,因此将之前的代码直接拷贝进新的版本.错误频出,让人怀疑人生.举个最简单的例子.5.0的版本中计时函数的调用方式是:start = ::

2020-07-09 07:36:10 820

原创 const用法大全

const用法主要分为四类:目录:1. const的常规用法;2. const用于指针;3. const用于引用;4. const_cast的用法1. const的常规用法;用const关键字将变量声明为常量,既在整个程序的运行过程中都无法修改的。const double pi=3.14159262. const用于指针;指针也是变量,因此也可以将const用于指针。但指针是特殊的变量,包含内存地址,还可以用于修改内存中的数据块。因此,const指针有如下三种:指针包含的地址是常量

2020-06-18 22:51:22 894

原创 canbus数据处理代码分析

canbus数据处理代码分析下面以刹车控制为例进行分析在**_controller.cc中,brake_command_102_ = dynamic_cast<Brakecommand102*>( message_manager_->GetMutableProtocolDataById(Brakecommand102::ID)); if (brake_command_102_ == nullptr) { AERROR << "Brakecomman

2020-06-17 16:15:48 930

原创 dynamic_cast用法

dynamic_cast用法范式dynamic_cast < type-id > ( expression)该运算符把expression转换成type-id类型的对象。Type-id必须是类的指针、类的引用或者void*;如果type-id是类指针类型,那么expression也必须是一个指针,如果type-id是一个引用,那么expression也必须是一个引用。dynamic_cast运算符可以在执行期决定真正的类型。如果downcast是安全的(也就说,如果基类指针或者引用确

2020-06-16 18:00:53 356

原创 unique_ptr记录

代码片段#pragma once /*pragma once是一个比较常用的C/C++预处理指令,只要在头文件的最开始加入这条预处理指令,就能够保证头文件只被编译一次。*/#include <memory> //使用智能指针需要包含该头文件#include "modules/canbus/proto/vehicle_parameter.pb.h"#include "modules/canbus/vehicle/abstract_vehicle_factory.h"#incl

2020-06-15 11:26:48 139

原创 DBC文件的阅读方法

问题由来最近为apollo适配新的线控的底盘,部分线控底盘的供应商会给三个文件:DBC文件,协议说明书和协议的详细文件(一般都是excel文件)。第一个文件就是apollo官方可以通过工具直接生成protocol文件的,第二个文件主要是说明如何使用这个协议的,第三个文件是第一个文件的延展,具体到每个位或字节代表什么。但是可能部分厂家偷懒就只有第一个和第二个文件。这个时候为了去写线控驱动就必须去读DBC 文件。为什么需要DBC文件当前汽车中的通信主要是用can总线通信(目前汽车以太网正在兴起)。dbc数

2020-06-11 15:52:26 3315

无人驾驶资料包

资料包是付费购买的行业分析包,会持续更新,需要的可以向我索要

2019-02-15

简历模版超炫

简历模版 超级炫,超级丰满的建立模版,找工作的神器

2013-09-21

惯性导航资料

惯性导航使用说明书,横滚角,俯仰角主要是硬件说明书

2013-09-21

空空如也

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

TA关注的人

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