自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Nofear123的博客

本科生在读,一些学习经验

  • 博客(17)
  • 收藏
  • 关注

原创 激光雷达和相机的外参标定

激光雷达和相机的外参标定我两年前做的本科毕设课题是激光雷达与相机的外参标定,最近抽空整理了一下当时完成的标定工具,这篇博客的目的也是来介绍一下这个标定工具(目前已经开源)。介绍在当时的研究现状(两年前,现在应该也大差不差)中,主要有基于特征对应关系的方法、基于运动观测的方法、基于最大化互信息的方法和还有少数基于神经网络的方法。在实际进行标定时,我们一般在乎的是标定方法的两个指标——精度和自动化程度,精度也就是标定的外参有多么精确,一般可以通过投影来定性的来看出来,自动化程度指的是这种方法在标定时需要进

2022-02-09 14:53:05 1910 6

转载 (13) 补充知识、线程池浅谈、数量谈、总结

第十三章 补充知识、线程池浅谈、数量谈、总结 一、补充一些知识点 1.1 虚假唤醒: notify_one或者notify_all唤醒wait()后,实际有些线程可能不满足唤醒的条件,就会造成虚假唤醒,可以在wait中再次进行判断解决虚假唤醒。 解决:wait中要有第二个参数(lambda),并且这个lambda中要正确判断所处理的公共数据是否存在。 2.2 atomic: std::atomic<int> atm = 0;cout << atm << end

2021-10-17 13:50:21 137

转载 (12) windows临界区、其他各种mutex互斥量

第十二节 windows临界区、其他各种mutex互斥量 一和二、windows临界区 Windows临界区,同一个线程是可以重复进入的,但是进入的次数与离开的次数必须相等。 C++互斥量则不允许同一个线程重复加锁。 windows临界区是在windows编程中的内容,了解一下即可,效果几乎可以等同于c++11的mutex 包含#include <windows.h> windows中的临界区同mutex一样,可以保护一个代码段。但windows的临界区可以进入多次,离开多次,但是进入的

2021-10-17 13:48:36 107

转载 (11) std::atomic续谈、std::async深入谈

第十一节 std::atomic续谈、std::async深入谈 一、std::atomic续谈 #include <iostream>#include <thread>#include <atomic>using namespace std;std::atomic<int> g_count = 0; //封装了一个类型为int的 对象(值)void mythread1() { for (int i = 0; i < 1000000;

2021-10-17 13:46:17 126

转载 (10) future其他成员函数、shared_future、atomic

第九节、async、future、packaged_task、promise 本节内容需要包含头文件#include <future> 一、std::async、std::future创建后台任务并返回值 std::async是一个函数模板,用来启动一个异步任务,启动起来一个异步任务之后,它返回一个std::future对象,这个对象是个类模板。 什么叫“启动一个异步任务”?就是自动创建一个线程,并开始 执行对应的线程入口函数,它返回一个std::future对象,这个std::fut

2021-10-17 13:44:11 112

转载 (9) async、future、packaged_task、promise

第九节、async、future、packaged_task、promise 本节内容需要包含头文件#include <future> 一、std::async、std::future创建后台任务并返回值 std::async是一个函数模板,用来启动一个异步任务,启动起来一个异步任务之后,它返回一个std::future对象,这个对象是个类模板。 什么叫“启动一个异步任务”?就是自动创建一个线程,并开始 执行对应的线程入口函数,它返回一个std::future对象,这个std::fut

2021-10-17 13:37:37 91

转载 (8) condition_variable、wait、notify_one、notify_all

第八节 condition_variable、wait、notify_one、notify_all 一、条件变量condition_variable、wait、notify_one、notify_all std::condition_variable实际上是一个类,是一个和条件相关的类,说白了就是等待一个条件达成。 std::mutex mymutex1;std::unique_lock<std::mutex> sbguard1(mymutex1);std::condition_va

2021-10-17 13:32:00 394

转载 (7) 单例设计模式共享数据分析、解决,call_once

第七节 单例设计模式共享数据分析、解决,call_once 1.设计模式 程序灵活,维护起来可能方便,用设计模式理念写出来的代码很晦涩,但是别人接管、阅读代码都会很痛苦老外应付特别大的项目时,把项目的开发经验、模块划分经验,总结整理成设计模式中国零几年设计模式刚开始火时,总喜欢拿一个设计模式往上套,导致一个小小的项目总要加几个设计模式,本末倒置设计模式有其独特的优点,要活学活用,不要深陷其中,生搬硬套 2.单例设计模式: 整个项目中,有某个或者某些特殊的类,只能创建一个属于该类的对象。 单例类:只

2021-10-17 13:25:05 161

转载 (6) unique_lock(类模板)详解

第六节 unique_lock(类模板)详解 1.unique_lock取代lock_guard unique_lock比lock_guard灵活很多(多出来很多用法),效率差一点。 unique_lock<mutex> myUniLock(myMutex); 2.unique_lock的第二个参数 2.1 std::adopt_lock: 表示这个互斥量已经被lock(),即不需要在构造函数中lock这个互斥量了。前提:必须提前locklock_guard中也可以用这个参数 2.2

2021-10-17 13:16:47 261

转载 (5)互斥量概念、用法、死锁演示及解决详解

第五节 互斥量概念、用法、死锁演示及解决详解 一、互斥量(mutex)的基本概念 互斥量就是个类对象,可以理解为一把锁,多个线程尝试用lock()成员函数来加锁,只有一个线程能锁定成功,如果没有锁成功,那么流程将卡在lock()这里不断尝试去锁定。互斥量使用要小心,保护数据不多也不少,少了达不到效果,多了影响效率。 二、互斥量的用法 包含#include <mutex>头文件 2.1 lock(),unlock() 步骤:1.lock(),2.操作共享数据,3.unlock()。lo

2021-10-17 12:53:32 315

转载 (4) 创建多个线程、数据共享问题分析、案例代码

第四节 创建多个线程、数据共享问题分析、案例代码 一、创建和等待多个线程 void TextThread(){ cout << "我是线程" << this_thread::get_id() << endl; /* … */ cout << "线程" << this_thread::get_id() << "执行结束" << endl; } //main函数里 vect

2021-10-17 12:51:00 93

转载 (3) 线程传参详解,detach()大坑,成员函数做线程函数

第三节 线程传参详解,detach()大坑,成员函数做线程函数 一、传递临时对象作为线程参数 1.1要避免的陷阱1: #include <iostream>#include <thread>using namespace std;void myPrint(const int &i, char* pmybuf){ //如果线程从主线程detach了 //i不是mvar真正的引用,实际上值传递,即使主线程运行完毕了,子线程用i仍然是安全的,但仍不推荐传递引用

2021-10-12 13:08:11 170

转载 (2) 线程启动、结束,创建线程多法、join,detach

第二节 线程启动、结束,创建线程多法、join,detach 一、范例演示线程运行的开始 程序运行起来,生成一个进程,该进程所属的主线程开始自动运行;当主线程从main()函数返回,则整个进程执行完毕主线程从main()开始执行,那么我们自己创建的线程,也需要从一个函数开始运行(初始函数),一旦这个函数运行完毕,线程也结束运行整个进程是否执行完毕的标志是:主线程是否执行完,如果主线程执行完毕了,就代表整个进程执行完毕了,此时如果其他子线程还没有执行完,也会被强行终止【此条有例外,以后会解释】 创建

2021-10-12 13:02:32 91

转载 (1) 并发基本概念及实现,进程、线程基本概念

一 并发基本概念及实现,进程、线程基本概念 一、并发、进程、线程的基本概念和综述 并发,线程,进程要求必须掌握 1.1 并发 两个或者更多的任务(独立的活动)同时发生(进行):一个程序同时执行多个独立的任务;以往计算机,单核cpu(中央处理器):某一个时刻只能执行一个任务,...

2021-10-12 12:38:15 117

转载 Autoware1.12完整安装及autoware1.10联合标定工具箱安装

一:autoware 1.12.0 完整安装原文链接:https://blog.csdn.net/qq_42615787/article/details/102481314平台:ubuntu16.04+ros(kinetic),velodyne-16激光雷达、mynteye相机。目的:实现相机与激光雷达的联合标定说明:此安装步骤忽略了CUDA的影响,即不配置CUDA。1 Installi...

2020-02-04 17:05:18 2797 7

转载 使用Autoware实践激光雷达与摄像机组合标定

使用Autoware实践激光雷达与摄像机组合标定转载地址:https://blog.csdn.net/AdamShan/article/details/81670732#commentBox 单目相机分辨率高,我们可以使用各种深度学习算法完成对目标检测,但是缺乏深度,坐标等信息。激光雷达能够获得目标相当精确的三维坐标信息,但是分辨率低,目前主流的为64线和32线,稀疏的电云数据为模式识别带...

2020-02-04 16:54:08 1010

转载 CSDN如何转载别人的文章

...

2020-02-04 16:45:31 117 1

空空如也

空空如也

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

TA关注的人

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