自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2021/10/4 C++多线程编程(5) 互斥量的概念、用法、死锁演示与解决详解

保护共享数据,操作时,某个线程用代码把共享数据锁住、操作数据、解锁、其他想操作共享数据的线程必须等待解锁,锁定住,操作,解锁。一、互斥量(mutex)的基本概念互斥量就是个类对象,可以理解为一把锁,多个线程尝试用lock()成员函数来加锁,只有一个线程能锁定成功(成功的标志是lock函数返回了)。如果没有锁成功,那么流程将卡在lock()这里不断尝试去锁这把锁头。互斥量使用要小心,保护数据不多也不少,少了达不到效果,多了影响效率。二、互斥量的用法包含头文件 #include <mutex

2021-10-05 10:09:59 107

原创 2021-10-03 C++多线程编程(4) 创建多个线程、数据共享问题分析、案例代码

1. 创建多个线程#include <memory>#include <iostream>#include <thread>#include <vector>void myprintf(int num){ std::cout << "Thread id = " << num << std::endl;}int main(){ std::vector<std::thread> mythre

2021-10-03 17:20:22 166

原创 2021/10/1C++11并发与多线程笔记(2) 线程启动、结束,创建线程多法、join,detach

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

2021-10-02 19:54:38 89

原创 2021-10-02 C++ 并发与多线程笔记(3) 线程传参详解,detach()大坑,成员函数做线程函数

一、传递临时对象作为线程参数示例:#include <iostream>#include <thread>void myprint(const int &i, char *pmybuf) { std::cout << "i = " << i << std::endl; std::cout << "pmybuf = " << pmybuf << std::endl; return;}

2021-10-02 17:22:21 121

原创 2021/10/2 映射(Map) & 集合(Set)

1 HashTable & Hash Function & Collisions1.1 Hash Function1.2 Hash Collisions2 Map vs SetList vs Map vs Setlist_x = [1,2,3,4];map_x = { 'jack' : 100, '张三' : 80, 'selina' : 90, ...}set_x = {'jack','selina','Andy'}set_y = set{['ja

2021-10-02 11:08:29 177

原创 2021-10-01 ROS通信机制进阶

1、常用API1.1 初始化/** @brief ROS初始化函数。 * * 该函数可以解析并使用节点启动时传入的参数(通过参数设置节点名称、命名空间...) * * 该函数有多个重载版本,如果使用NodeHandle建议调用该版本。 * * \param argc 参数个数 * \param argv 参数列表 * \param name 节点名称,需要保证其唯一性,不允许包含命名空间 * \param options 节点启动选项,被封装进了ros::init_options

2021-10-01 19:02:37 212

原创 2021/10/1 C++11 多线程(1) 并发基本概念及实现,进程、线程基本概念

一、并发、进程、线程的基本概念和综述1 并发两个或者更多的任务(独立的活动)同时发生(进行):一个程序同时执行多个独立的任务;以往计算机,单核cpu(中央处理器):某一个时刻只能执行一个任务,由操作系统调度,每秒钟进行多次所谓的“任务切换”。并发的假象(不是真正的并发),切换(上下文切换)时要保存变量的状态、执行进度等,存在时间开销;随着硬件发展,出现了多处理器计算机:用于服务器和高性能计算领域。台式机:在一块芯片上有多核(一个CPU内有多个运算核心,对于操作系统来说,每个核心都是作为单独的CPU

2021-10-01 13:58:57 96

原创 2021/9/30 ROS三种通信机制比较

话题通信服务通信参数通信三种通信机制中,参数服务器是一种数据共享机制,可以在不同的节点之间共享数据,话题通信与服务通信是在不同的节点之间传递数据的。三者是ROS中最基础也是应用最为广泛的通信机制。这其中,话题通信和服务通信有一定的相似性也有本质上的差异,在此将二者做一下简单比较:二者的实现流程是比较相似的,都是涉及到四个要素:要素1: 消息的发布方/客户端(Publisher/Client)要素2: 消息的订阅方/服务端(Subscriber/Server)要素3: 话题名称(Topi.

2021-09-30 15:29:15 506

原创 2021/9/30 ROS中常用命令

1. rosnoderosnode 是用于获取节点信息的命令rosnode ping 测试到节点的连接状态rosnode list 列出活动节点rosnode info 打印节点信息rosnode machine 列出指定设备上节点rosnode kill 杀死某个节点rosnode cleanup 清除不可连接(无用)的节点 —— 启动乌龟节点,然后 ctrl + c 关闭,该节点并没被彻底清除,可以使用 cleanup 清除节点2. rostopicrostopic 包含rosto

2021-09-30 15:15:01 332

原创 2021/9/30 ROS参数服务器

1. 参数服务器介绍参数服务器在ROS中主要用于实现不同节点之间的数据共享。参数服务器相当于是独立于所有节点的一个公共容器,可以将数据存储在该容器中,被不同的节点调用,当然不同的节点也可以往其中存储数据,关于参数服务器的典型应用场景如下:导航实现时,会进行路径规划,比如: 全局路径规划,设计一个从出发点到目标点的大致路径。本地路径规划,会根据当前路况生成时时的行进路径上述场景中,全局路径规划和本地路径规划时,就会使用到参数服务器:路径规划时,需要参考小车的尺寸,我们可以将这些尺寸信息存储到参数服

2021-09-30 14:55:14 93

原创 2021-09-30 ROS服务通信

1. 服务通信概念服务通信也是ROS中一种极其常用的通信模式,服务通信是基于请求响应模式的,是一种应答机制。也即: 一个节点A向另一个节点B发送请求,B接收处理请求并产生响应结果返回给A。使用场景:机器人巡逻过程中,控制系统分析传感器数据发现可疑物体或人… 此时需要拍摄照片并留存。一个节点需要向相机节点发送拍照请求,相机节点处理请求,并返回处理结果。与上述应用类似的,服务通信更适用于对时时性有要求、具有一定逻辑处理的应用场景。概念:以请求响应的方式实现不同节点之间数据交互的通信模式。作用

2021-09-30 14:24:04 138

原创 2021-9-30 ROS话题通信

1. 话题通信介绍话题通信是ROS中使用频率最高的一种通信模式,话题通信是基于发布订阅模式的,也即:一个节点发布消息,另一个节点订阅该消息。话题通信的应用场景: 话题通信适用于不断更新的数据传输相关的应用场景,像雷达、摄像头、GPS… 等等一些传感器数据的采集,也都是使用了话题通信。概念: 以发布订阅的方式实现不同节点之间数据交互的通信模式。作用: 用于不断更新的、少逻辑处理的数据传输场景。2. 话题通信的理论模型话题通信中角色:ROS Master (管理者) : 负责保管 Talker 和

2021-09-30 13:42:21 164

原创 2021-09-29 点云以及相关的处理方法

1. 点云的相关概念:1.1 点云的概念点云是在同一空间参考系下表达目标空间分布和目标表面特性的海量点集合,在获取物体表面每个采样点的空间坐标后,得到的是点的集合,称之为“点云”(Point Cloud)。1.2 点云的获取设备深度相机 or 3d激光雷达1.3 点云的内容根据激光测量原理得到的点云,包括三维坐标(XYZ)和激光反射强度(Intensity),强度信息与目标的表面材质、粗糙度、入射角方向,以及仪器的发射能量,激光波长有关。根据摄影测量原理得到的点云,包括三维坐标(XYZ)和颜色

2021-09-29 22:53:45 1572

原创 修改unbuntu中的只读文件

sudo gedit [要修改的文件]

2021-07-14 20:39:41 127

原创 VSCode 插件更新后出现问题记录

使用VSCode C++插件更新后无法catkin_make编译 而且代码无法自动补全。右下角一直显示正在 “正在下载C/C++ language components”。考虑到应该是C++插肩无法自动更新参考方法参照https://blog.csdn.net/chenwr2018/article/details/115774007github链接https://github.com/Microsoft/vscode-cpptools/releases...

2021-07-11 14:46:59 411

原创 opencv 直方图 calcHist函数的使用

函数原型oid calcHist( const Mat* arrays, int narrays, const int* channels, InputArray mask, OutputArray hist, int dims, const int* histSize, con

2020-05-27 12:40:05 279

原创 OpenCV计算机视觉编程笔记(一)

OpenCV计算机视觉编程笔记(一)第一章基本操作定义头文件 #include <opencv2/core.hpp> //图像数据结构的核心文件 #include <opencv2/highgui.hpp> //包含了所有图形接口函数定义表示图像的变量cv::Mat image; // 创建一个空图像 读取图像image= cv::imread("puppy.bmp"); // 读取输入图像 // 读入一个图像文件并将其转换为灰度图像 imag

2020-05-25 22:42:15 238

原创 C++实现LeetCode 430 扁平化多级双向链表

C++实现LeetCode 430 扁平化多级双向链表题目描述:多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。给你位于列表第一级的头节点,请你扁平化列表,使所有结点出现在单级双链表中。示例:输入:head = [1,2,3,4,5,6,null,...

2020-04-25 12:52:35 214 1

原创 Eigen中的基本操作

Eigen中矩阵的定义原文转自:http://www.360doc.com/content/18/0223/00 /1489589_731596014.shtml#include <Eigen/Dense> // 基本函数只需要包含这个头文件Matrix<double, 3, 3> A; // 固...

2020-02-28 19:04:08 1351

原创 指向const的指针和const指针

指向const的指针int gorp = 16;int chips = 12;const int * p_snack = &gorp;其中p_snack指向一个const int。*p_snack = 20; // 不被允许,*p_snack的值为const,禁止修改p_snack指向的值,p_snack = &chips; //可以执行,p_snack可以指向...

2019-10-29 13:10:43 124

原创 break和continue的区别

1.break用break语句可以使流程跳出switch语句体,也可以用break语句在循环结构终止本层循环体,从而提前结束本层循环。使用说明:(1)只能在循环体内和switch语句体内使用break;(2)当break出现在循环体中的switch语句体内时,起作用只是跳出该switch语句体,并不能终止循环体的执行。若想强行终止循环体的执行,可以在循环体中,但并不在switch语句中设置b...

2019-10-27 11:21:03 200

原创 cctype中常用字符函数总结

cctype中常用字符函数总结函数名称返回值isalnum()如果参数是字母或数字,该函数返回trueisalpha()如果参数是字母,该函数返回trueiscntrl()如果参数是控制字符,该函数返回trueisdigit()如果参数是数字(0-9),该函数返回trueisgraph()如果参数是除空格之外的打印字符,该函数返回true...

2019-10-24 12:01:06 155

空空如也

空空如也

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

TA关注的人

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