自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 资源 (1)
  • 收藏
  • 关注

转载 VSCode Java 开发环境配置 详细教程

markhttps://www.whbwiki.com/230.html添加链接描述

2021-12-07 16:16:20 687

原创 【工具】VScode设置断点调试(以cpp为例)

VScode设置断点调试(以cpp为例)首先得到launch.json文件和task.json文件运行和调试–>打开launch.json(类似设置的按钮) 打开launch.json文件ctrl+shift+p打开搜索框输入tasks–>配置默认生成任务得到task.json文件launch.json内容{ // Use IntelliSense to learn about possible attributes. // Hover to view d

2021-08-07 16:50:19 6509

原创 【ROS】ros下的物体识别find_object_2d

https://www.guyuehome.com/33779

2021-06-08 16:42:25 716

原创 【ROS】古月机械臂gazebo仿真报错

错误描述:rviz+gazebo机械臂仿真时plan可以用,但是execute不好用[ERROR] [1623051585.055628856, 40.510000000]: Unable to identify any set of controllers that can actuate the specified joints: [ joint1 joint2 joint3 joint4 joint5 joint6 ][ERROR] [1623051585.055656521, 40.5100.

2021-06-07 15:51:12 1006 1

原创 【ROS】gazebo model离线模型

https://github.com/osrf/gazebo_models将上述模型下载到~/.gazebo/models/下即可

2021-05-27 16:29:38 660

转载 【ROS】ubuntu18.04下安装ROS Melodic

https://blog.csdn.net/qq_41450811/article/details/99079041

2021-05-24 10:57:07 147

原创 【设计模式】总结

总结管理变化,提高服用两个手段: 分解vs抽象 梨、香蕉、苹果---->水果八大原则:依赖倒置原则(DIP)开放封闭原则(OCP)单一职责原则(SRP)Liskov替换原则(LSP)接口隔离原则(ISP)对象组合优于类继承封装变化点面向接口编程重构技法:静态→动态早绑定→晚绑定继承→组合编译时依赖→>运行时依赖紧耦合→>松耦合红色部分不常用几乎所有的模式都属于第三种继承和组合的内存模型是一样的 classA内存的前一部分都是B

2021-05-13 21:10:44 76

原创 【设计模式】领域规则模式(解析器)

领域规则模式在特定的领域中,某些变化虽然频繁,但可以抽象为某种规则。这时候,结合特定领域,将问题抽象为语法规则,从而给出在该领域下的一般性解决方案解析器interpretor1.解析器interpretor动机: 在软件构建过程中,如果某一特定领域的问题比较复杂,类似的结构不断重复出现,如果使用普通的编程方式来实现将面临非常频繁的变化在这种情况下,将特定领域的问题表达为某种语法规则下的句子 然后构建一个解释器来解释这样的句子,从而达到解决问题的目的比如a+b-c+d ://语法树#i

2021-05-13 19:30:48 181 1

原创 【设计模式】行为变化模式(命令/访问者)

行为变化模式在组件的构建过程中,组件行为的变化经常导致组件本身剧烈的变化。行为变化模式将组件的行为和组件本身进行解耦,从而支持组件行为的变化,实现两者之间的松耦合命令模式command访问者模式visitor1.命令模式command动机: 在软件构建过程中,行为请求者与行为实现者通常呈现一种紧耦合。但在某些情况下——比如需要对行为进行记录、撤销/重(undo/redo)、事务等处理,这种无法抵御变化的紧耦合是不合适的在这种情况下,如何将行为请求者与行为实现者解耦?将一组行为抽象为对象,可

2021-05-13 17:36:57 193

原创 【设计模式】数据结构模式(组合/迭代器/责任链)

数据结构模式常常有一些组件在内部具有特定的数据结构,如果让客户程序依赖这些特定的数据结构,将极大地破坏组件地复用。这时候,将这些特定数据结构封装在内部,在外部提供统一地接口,来实现与特定数据结构无关地访问,是一种行之有效地解救方案组合模式Composite迭代器Iterator责任链Chain of Responsibility1.组合模式Composite动机: 在软件在某些情况下,客户代码过多地依赖于对象容器复杂地内部实现结构,对象容器内部实现结构(而非抽象接口)的变化将引起客户代码的频

2021-05-11 16:36:39 166

原创 【设计模式】状态变化模式(状态/备忘录)

状态变化模式在组件构建过程中,某些对象的状态经常面临变化,如何对这些变化进行有效的管理?同时又维持高层模块的稳定?“状态变化"模式为这一问题提供了一种解决方案。状态模式State备忘录Memento1.状态模式state动机: 在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生改变,比如文档处于只读状态,其支持的行为和读写状态支持的行为就可能完全不同。如何在运行时根据对象的状态来透明地更改对象地行为?而不会为对象地操作和状态转化之间引入紧耦合?//网络应用 对应网络地三种状态

2021-05-11 10:19:57 107

原创 【设计模式】接口隔离模式(门面/代理/适配器/中介者)

接口隔离模式在组建地构建过程中,某些接口之间直接地依赖常常会到来很多问题、甚至根本无法实现。采用添加一层间接(稳定)接口,来隔离本来互相紧密关联地接口是一种常见地解决方案操作系统就是软件和硬件之间地间接层 操作系统地提出就是变化和稳定地剥离 将硬件和软件间稳定地部分剥离出来成为操作系统软件设计的思想核心关键词就是间接indirection门面模式Facade策略模式Proxy适配器Adapter中介者Mediator1.门面模式Facade动机: 上述A方案的问题在于组件的客户和组

2021-05-10 18:37:28 172

原创 【设计模式】对象性能模式(单例/享元)

对象性能模式面向对象很好的解决了抽象的问题,但是不可避免地要付出一定地代价。(比如虚函数 需要内存)对于通常情况下,面向对象地成本大都可以忽略不计。但是某些情况下,面向对象所带来地成本需要谨慎处理。解决的不是抽象性的问题,解决的是代价问题单例模式Singleton享元模式Flyweight1.单例模式Singleton动机: 在软件系统中,经常有这样地一些特殊地类,必须保证它们在系统中只存在一个实例,才能确保它们地逻辑正确性、以及良好地效率如何绕过常规地构造器,提供一种机制来保证一个类只有

2021-05-10 10:32:08 107

转载 【设计模式】对象创建模式(工厂/抽象工厂/原型/构造器)

对象创建模式通过对象创建模式绕开new,来避免对象创建过程中所导致的紧耦合(依赖具体类)从而支持对象创建的稳定。它是接口抽象之后的第一步工作。工厂方法Factory Method抽象工厂Abstract Factory原型模式Prototype构造器Builder1.工厂方法Factory Method动机: 在软件系统中经常面临着创建对象的工作,由于需求的变化,需要创建的对象的具体类型经常变化如何应对这种变化?如何绕过常规的对象创建方法 new,提供一种封装机制来避免客户程序和这种具体

2021-05-08 17:07:58 108

转载 【设计模式】单一职责模式(装饰模式/桥模式)

单一职责模式在软件组件的设计中,如果责任划分不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任 bad simie——代码大量重复下面两种模式在责任划分方面尤为突出(其他的模式也是有职责划分问题的)装饰模式Decorator桥模式Bridge1.装饰模式Decorator动机: 在某些情况下过度的使用继承来扩展对象的功能,由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功

2021-05-07 15:07:07 87

原创 【设计模式】组件协作模式(模板方法/策略模式/观察者模式)

组件协作模式现代软件:框架与应用的划分组件协作主要通过晚绑定来实现松耦合template method模板方法strategy策略模式observer/event观察者模式1.模板方法template method样板动机:软件构件过程中对于某一项特定的任务常常有稳定的整体结构,但各个子步骤却有很多变化,先实现谁呢?如何在确定的整体结构的前提下来灵活应对各个子步骤的变化或晚期实现需求呢?//程序库开发人员class Library{public: void Step1(){

2021-05-07 12:30:58 129

原创 【设计模式】设计模式概述

视频参照https://www.bilibili.com/video/BV1V5411w7qg?p=1资料https://github.com/19PDP/Bilibili-plus/tree/master/C%2B%2B-DesignPattern一.概述每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次一次的使用该方案而不必做重复劳动。《设计模式:可复用面向对象软件的基础》该书有四人编写 gang of four——GOF软件设计复杂的原因

2021-05-07 12:26:32 161

原创 【linux系统】unix编程之进程(基础版)

1.base程序是存储在磁盘介质上的编译过的二进制文件进程是程序跑起来的状态程序是死的,进程是活的进程是正在执行的程序的一个实例malloc函数从内存的堆中分配储存静态变量(通常是所说的程序中的全局变量)会使得线程化的程序不安全,除非保证各个线程访问时是互斥的!!pid每个进程都有一个id和一个父进程id获取进程pid/father pid getpid/getppid2.进程状态就绪的进程就是非阻塞的阻塞态不会直接去运行阻塞时不会占用cpu3.进程创建fork函数进程可

2021-03-11 17:20:11 157

转载 【工具】Typora+PicGo-Core+gitee实现上传服务(以时间戳命名)

Typora+PicGo-Core+gitee实现上传服务(以时间戳命名)1. Typora偏好设置 => 图像:选择插入图片对应的Action为上传服务上传服务选择PicGo-Core点击下载或更新2. PicGo-Core插件下载和配置文件下载 插件cd ~/.config/Typora/picgo/linux/./picgo install gitee-uploader # 上传服务./picgo install super-prefix # 上传前文件重命名

2021-03-08 16:39:18 299

原创 【linux系统】ubuntu18.04蓝牙耳机没有声音

问题1:蓝牙耳机无法连接解决参考:https://blog.csdn.net/ftmsz12345678/article/details/106244138https://wiki.archlinux.org/index.php/Bluetooth_headset_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E5%8F%8A%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1..

2020-12-02 17:00:59 2144 4

原创 【linux系统】ubuntu18.04开机时自动运行命令或脚本

找到启动应用程序点击添加,将要运行的命令填入这样开机就会自动执行此命令了,如果想要运行脚本,就自己先写一个.sh文件,给文件加上x权限后,在命令栏中填入该文件的绝对地址即可...

2020-12-02 16:53:32 821

原创 【ROS】Ubuntu18.04安装ROS后初始化sudo rosdep init时出错pkg_resources.DistributionNotFound: The ‘rosdep==0.20.0‘

【ROS】Ubuntu18.04安装ROS后初始化sudo rosdep init时出错“pkg_resources.DistributionNotFound: The ‘rosdep==0.20.0’ distribution was not found and is required by the application”出错信息:错误分析:这是因为ROS默认为python2,而自己的系统python默认版本是python3造成的。网上搜到的方法可以通过sudo apt install pyth

2020-11-29 15:42:06 3963 10

原创 【linux系统】Ubuntu每次重启蓝牙设备需重新配对问题

打开bash,运行bluetoothctl命令bluetoothctl列出可用的蓝牙控制器list选择使用的蓝牙控制器select 04:ED:33:58:90:39显示蓝牙控制器的详细信息show打开蓝牙power on开始扫描scan on找到你要用的设备的蓝牙MAC地址后结束扫描scan off选择蓝牙设备配对pair 04:8C:9A:F7:5F:30连接到蓝牙设备connect pair 04:8C:9A:F7:5F:30信任..

2020-11-29 10:33:16 3005 1

原创 【linux系统】Ubuntu更换内核Kernel

Ubuntu kernel下载地址*https://kernel.ubuntu.com/~kernel-ppa/mainline/*找到你想要安装的版本点进去(为了系统稳定,最好不要选用最新的版本)找到对应的电脑型号(一般都是amd64)下载含有generic的三个deb包和以all.deb结尾的一个包,下载到用一个空目录下下图分别是linux-headers-5.8.8-050808-generic_5.8.8-050808.202009091435_amd64.deblin..

2020-11-29 10:07:19 380

原创 【linux系统】Ubuntu开机后出现“gave up waiting for root device“的错误

这种错误大概率是因为硬盘出错!!BIOS中的硬盘设置不是AHCI而是另一种模式!!解决:进入bios,将sata mode改为AHCI,此时很大概率你的win10系统进入不了了,很可能就是AHCI时能进入ubuntu,而另一种mode能进入win10,此时可以在不重装的情况下让win10也可在AHCI模式下进入。修改为ahci的步骤:进入win10系统,打开cmd 输入msconfig ,进入启动选项,将安全启动打勾(现在是选择诊断模式并将安全引导选中)重启电脑 f2进入bios界面,将sata改

2020-11-29 09:48:30 7250 8

原创 用LNMP+wordpress搭了一个网站

文章目录1.环境说明2.连接云主机2.1连接到2.2在云主机上创建新的用户2.3自己的主机和云主机的文件传输scp命令2.4开放端口3.在云主机上部署LNMP3.1准备编译环境3.2安装Nginx3.3安装MySQL3.4安装PHP3.5配置Nginx3.6配置MySQL3.7配置PHP3.8测试访问LNMP平台4.搭建WordPress环境4.1数据库设置4.2下载并解压WordPress4.3修改Nginx配置文件4.4安装并登录WordPress网站。5.在云主机上搭建ftp服务6.wordpress

2020-10-24 09:48:36 946 2

原创 Windows系统操作指令

Windows系统操作指令功能操作锁定计算机(不关机)Windows+L对管理员和用户帐号管理右击我的电脑—管理—系统工具/本地用户和组/用户运行Windows+R添加账户net user 账户 密码/add (管理员账户)查询账户net user(管理员账户)删除账户net user 名称/del(管理员账户)强制修改密码net user 名称 密码(管理员账户)家长模式控制面板-为用户设置家庭安全打开注册表编辑器

2020-10-24 09:46:10 413

原创 【python】python学习笔记

python1.了解2.基础语法2.1注释2.2代码规范与格式2.3保留字与标识符2.4变量2.5数据类型2.6运算符2.7输入输出3.流程控制语句4.序列表列表元组字典集合5.字符串6.正则表达式7.函数8.面向对象的程序设计9.文件操作10.模块OS模块datatime模块random模块json模块csv模块11.help12.爬虫入门12.1网页结构12.2爬虫模块12.3安装虚拟环境12.4 pip使用及换源12.5爬取百度贴吧12.6 Scrapy框架13.数据可视化——matplotlib的使

2020-10-08 09:25:35 538

原创 【python】图像马赛克拼接

【python】图像马赛克拼接最终呈现:图像的呈现效果不是很好,因为用于拼接的图像不是很多视频资料:https://www.bilibili.com/video/BV1UT4y1A75dimport cv2#图片处理import glob#文件管理import numpy as npfrom tqdm import tqdm#实现进度条import argparse#包管理from itertools import product#迭代器#图片文件def parseArgs(

2020-09-25 16:42:33 639 2

原创 【python】爬取疫情数据并进行可视化

【python】爬取疫情数据并进行可视化数据来源:https://news.qq.com/zt2020/page/feiyan.htm#/?nojump=1最终呈现:视频资料:https://www.bilibili.com/video/BV1f54y127dd'''课题:爬取疫情数据 进行可视化第一步:爬虫爬取疫情数据第二步:实现数据的可视化'''import timeimport jsonimport requestsimport pandas as pdurl = r

2020-09-24 15:21:56 4093

原创 【C语言】C语言实现一个简易的printf

C语言实现一个简易的printf#include<stdio.h>#include<stdarg.h>#include<string.h>#include<stdlib.h>#define PUTC(a) putchar(a), ++cntint my_printf(const char *frm, ...){ va_list arg; va_start(arg, frm); int cnt = 0; for(in

2020-09-14 20:09:49 274

原创 【linux系统】ubuntu下拨号上网(DSL)的设置

ubuntu下拨号上网(DSL)的设置首先打开终端ctrl+alt+t输入命令nmcli con edit type pppoe con-name “mydsl”输入dsl的用户名和密码set pppoe.username 用户名set pppoe.password 密码保存save,弹出是否自动连接网络,输入yes退出quit后,在设置-网络中就会出现下面的图片...

2020-09-12 11:29:14 1756 1

原创 【工具】gdb调试(简单)

gdb调试命令功能l显示源文件中的程序,第二次l时会显示接下来的10行r开始执行程序b设置断点 break 15为在15行设置断点n单步执行 如果遇到函数调用则执行完整个函数s单步执行 如果遇到函数调用则进入函数执行函数中的第一行p打印变量值 p a 为打印ac执行接下来的所有程序q退出gdb调试调试过程示例下面的程序有逻辑bug#include<stdio.h>void swap(int *p1,

2020-09-07 10:50:35 126

原创 【工具】make的简单用法

make的简单用法all: grammer main.cpp g++ -std=c++11 -I./include -I./include/antlr -L./lib -o ./bin/hython main.cpp ./src/*.c ./src/*.cc -lantlr3cdebug: grammer main.cpp g++ -DDEBUG -std=c++11 -I./include -I./include/antlr -L./lib -o ./bin/hython main.cpp .

2020-09-07 09:55:32 147

原创 【工具】gcc常用选项

gcc常用选项-Wall选项:输出所有警告-g选项:输出可调试的可执行文件用于gdb调试预处理:展开源代码中的宏 .i文件查看预处理后的文件gcc -E -o 0.i 0.c编译:把c程序翻译成汇编语言 .s文件查看汇编语言文件gcc -S -fverbose-asm 0.c汇编:把汇编语言翻译成可执行的二进制代码 .o文件查看汇编后对象文件gcc -c 0.c链接:把多个二进制对象文件链接成一个单独的可执行文件链接库是一个具有很多对象文件的集合,标准库的大部分

2020-09-07 09:35:01 160

原创 【C++】智能指针的简单介绍

智能指针智能指针是包含重载运算符的类,其行为像常规指针,但智能指针能够及时、妥善的销毁动态分配的数据,并实现了明确的对象生命周期,因此更有价值unique_ptr#includestd::unique_ptr 是通过指针占有并管理另一对象,并在 unique_ptr 离开作用域时释放该对象的智能指针。在下列两者之一发生时用关联的删除器释放对象:销毁了管理的 unique_ptr 对象通过 operator= 或 reset() 赋值另一指针给管理的 unique_ptr 对象。简而言之,

2020-09-04 17:03:57 83

原创 【stl】vector、map判断某元素是否存在

文章目录1.vector2.set1.vector​ vector没有内置的count和find方法,所以需要借用中的count和find判断某元素是否存在#includestd::count(v.begin(), v.end(), target1); 判断vector中是否含target元素并返回元素个数#include <algorithm>#include <iostream>#include <vector> int main(){

2020-08-31 10:17:43 1827

原创 【macos】Macos系统的使用小技巧

文章标题1.brew安装与换源2.zsh的安装及配置3.vim配置4.终端配置5.截图至剪切板6.取词翻译1.brew安装与换源安装brew类似ubuntu的apt 软件管理工具一键安装命令如下:/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"具体可以查看https://zhuanlan.zhihu.com/p/111014448换源——中科大源#替换brew

2020-08-28 20:01:54 237

原创 【C++】C++实现自己的functuion

C++实现自己的functuion函数 函数对象统一叫做可调用对象function相当于简化了以后的函数指针 是一个类#include< functional >函数和函数对象(可调用对象)都可以传入function这个模板类给g赋值 肯定会调用构造函数 需要给其增加两类构造函数(函数、函数对象)将函数/函数对象包装成另外一个函数对象 地址保存#include<iostream>#include<functional>using namespace

2020-08-19 09:53:36 229

原创 __attribute__((constructor))

__attribute__((constructor))The constructor attribute causes the function to be called automatically before execution enters main (). Similarly, the destructor attribute causes the function to be called automatically after main () completes or exit () is

2020-08-09 09:54:07 784

tsinghua-os-2019-spring.zip

清华大学操作系统课程讲义

2020-08-10

空空如也

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

TA关注的人

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