自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

拒绝任何因懒惰而生的省略号

脚踏实地,相信自己,相信code.

  • 博客(72)
  • 资源 (1)
  • 收藏
  • 关注

原创 ROS中launch文件编写

文件中执行顺序的原因可能不能将所有参数都导出,所以可以自己再编写一个。文件中执行顺序的原因可能不能将所有参数都导出,所以可以自己再编写一个。如果节点退出,是否自动重启(对于某些重要的功能要自动重启)。标记允许在启动的节点上设置环境变量,有点像linux的。在指定机器上启动节点,分布式启动节点。标签是用于动态传参,类似于函数的参数,可以增强。,如果启动了,则不再启动,否则,会自动调用。文件在启动所有节点后再导出到yaml文件。文件在启动所有节点后再导出到yaml文件。来启动节点(因为节点的启动是多进程的)。

2024-04-20 22:00:08 843

原创 关于zsh使用时出现的.zshrc和.bashrc问题

因为 zsh和 bash的指令不能完全兼容,因此很多在bash中运行的指令不能在zsh中直接运行。比较常见的一个问题就是:我在~/.bashrc中有一些加载ros2配置的指令, 如下:\n在zsh中运行会报错,但是,在终端输入exec bash进入bash运行此命令就不会有问题。为解决这个问题,ros提供了.zsh文件来代替.bash文件,将对应的配置在.zshrc。但是对于习惯了写.bashrc的我而言,不想把大量的命令都迁移到.zshrc中。于是寻找了一种新的解决方案。

2024-04-18 18:59:06 718

原创 Ubuntu的用户、组、权限(ACL)管理

假设用户tmp同时属于组normal和组tmp。我们现在给一个文件赋予了normal组的rw权限,又赋予了tmp组的rx权限,然后我们又又赋予tmp用户rw权限,同时我们又又又发现这个文件的owner就是tmp, 这时tmp本身对该文件就是rwx权限(没修改的话),请注意,如果你想同时删除用户的家目录和邮件目录,可以使用 -r 选项。中的本来已经有的文件(这些文件都被指定了mask权限是rx),用户。创建的文件权限只属于它,所以其他用户对这些文件没有权限。将用户追加到其他组,此时用户拥有多个组。

2024-04-17 13:14:25 567 1

原创 ROS中不同情况下配置文件的编写

在功能包(如)下创建msg目录,然后在msg目录中创建.msgTest.msg在功能包下创建srv目录,然后在msg目录中创建.srvTest.srvint32 num1。

2024-04-09 21:33:56 833

原创 ROS API使用

通常,如果要发送一个静态的数据(比如地图),不用latch时:要固定频率一直发送(否则新加入的订阅者可能接受不到该数据),浪费资源;如果为 true,该话题发布的最后一条消息将被保存,并且后期当有新的订阅者连接时会将该消息发送给订阅者。:运行到spinOnce时,将队列中所有回调函数都执行完(不是只执行队列里的最后一个),然后继续执行其他代码,不会堵塞。如果为true,返回已经启动的定时器,设置为 false,需要手动启动。参数个数, (1+n个,1是运行文件的名字,n是传入的参数)。

2024-04-09 15:09:59 665

原创 ROS2学习笔记-CLI工具,记录命令对应操作。

ros2学习,记录命令

2024-01-20 15:37:22 1142

原创 WSL移动ubuntu到其他盘的几个问题以及安装,使用过程中遇到bug记录

wsl迁移Ubuntu到非系统盘过程中遇到的问题

2023-12-20 20:42:36 714

原创 给定n个点或一个凸边形,求其最小外接矩形,可视化

我们这里的做法是遍历每条边,对于每条边,我们根据它与水平方向的夹角计算其旋转矩阵,并将这些凸包上的所有点根据此旋转矩阵的逆矩阵/转置矩阵(旋转矩阵是正交矩阵)旋转至水平方向,此时我们可以很容易得到这些点水平方向和竖直方向的边界点,从而就有了一个外接矩形。同时,假设我们按照x排序,并且想要得到顺时针旋转的凸包边界,那么我们只能找到一半的边界,这是因为我们从左到右遍历这些点的时候只有上面的点才满足顺时针,下面的不可能满足顺时针(这里为了节省计算可以只对y坐标大于开始和结束点中最小y坐标的点进行计算)。

2023-11-06 20:19:04 494 1

原创 旋转矩阵的一些特性(左乘右乘)的理解记忆方法。

前言——因为之前总是记混旋转的左乘和右乘和其中的一些规则,所以这篇文章的目的是为了更容易地记住旋转的一些特性,所以并没有太多的基础知识介绍。在看这篇博客之前,你应该已经知道了一件事情就是旋转矩阵的列向量就是旋转后的坐标系的基向量是旋转之前的坐标系中的向量表示。有点绕好像,这里我不太会描述,情况是这样:对于下面的旋转,设原始的坐标系为AAA系,其坐标系的三个基向量为:XA=(1,0,0),YA=(0,1,0),ZA=(0,0,1)X_A=(1,0,0), Y_A=(0,1,0),Z_A=(0,0,

2023-11-02 11:25:42 227

原创 讲清楚tensor.gather(dim,index)和torch.gather(input, dim, index),举例,应用

和两者没有本质差别。这里挑来讲。

2023-03-15 01:12:38 399 1

原创 MySQL-4-储存引擎(结合案例学习)

存储引擎是mysql数据库的核心,需要在合适的场景选择合适的存储引擎。存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。我们可以在创建表的时候,来指定选择的存储引擎,如果没有指定将自动选择默认的存储引擎。

2022-09-12 15:47:13 193

原创 MySQL-3-多表查询和事务(结合案例学习)

多表查询和事务

2022-09-09 16:37:13 1207 2

原创 MySQL-2-函数和约束(结合案例学习)

概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据,可以再创建表/修改表的时候添加约束。目的:保证数据库中数据的正确、有效性和完整性。约束描述关键字非空约束限制该字段的数据不能为nullNOT NULL唯一约束保证该字段的所有数据都是唯一、不重复的UNIQUE主键约束主键是一行数据的唯一标识,要求非空且唯一默认约束保存数据时,如果未指定该字段的值,则采用默认值DEFAULT检查约束(8.0.1版本后)保证字段值满足某一个条件CHECK外键约束。

2022-09-05 14:32:17 410

原创 MySQL-1-SQL讲解

MySQL语法学习DDL:定义数据库,定义表头(id,name)等等DML:对表中数据增删改DQL:对表中数据查询DCL:创建用户,控制用户权限

2022-09-03 11:50:26 605

原创 MySQL-0-概述-介绍和安装(Win10、DataGrip、Ubuntu18.04远程连接)

安装环境变量修改密码程序员通过SQL来控制数据库管理系统(MySQL)来对数据库进行操作。

2022-08-30 20:10:26 463 3

原创 RuntimeError: Trying to backward through the graph a second time (or directly access saved variable

用pytorch的时候发生了这个错误,写下来避免以后再次入坑。感谢这次坑让我对预训练模型的使用有了更清楚的认识。RuntimeError: Trying to backward through the graph a second time (or directly access saved variables after they have already been freed). Saved intermediate values of the graph are freed when you call

2022-06-24 11:31:03 23088 7

原创 pytorch lstm 什么时候使用output(输出层),什么时候使用h(隐藏层)

看这篇文章之前你应该已经对lstm有所了解。这里只讲pytorch的lstm的输出,其实所有rnn网络都一样。目录单向lstm1层lstm单元2层lstm单元双向lstm1层lstm单元2层lstm单元什么时候用输出层output信息什么时候用隐藏层信息后话单向lstm1层lstm单元这里假设输入的batch_size为8,句子长度为10,词向量维度为128,lstm的隐藏层维度为50,只有1层lstm单元。batch_size = 8 #batch为8seq_len =

2022-05-26 13:55:59 4460 10

原创 试着通过汉诺塔(Hanoi塔)理解递归算法-Python

前言:以前一直没能理解这个问题,今天突然豁然开朗,就想明白了,所以做个记录。如果有理解错的地方,欢迎评论区指正。问题描述有三根相邻的柱子,标号为A,B,C, A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,要把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都不能出现大盘子在小盘子上方,请问应该怎么移动?代码:def Move(n,start,middle,target): if n==1: print(start,'->',target)

2022-05-21 15:58:34 349

原创 利用torch安装CuPy,使得numpy(np)在CUDA(gpu)上加速。

前言标题名字是很奇怪,没关系,重点看内容。正常安装CupPy需要较为复杂的cuda环境配置,可以参考文章——UDA环境配置。如果你觉得去官网安装CUDA Toolkit太麻烦,那我们可以利用pyotch的cudatookit来保证Cupy的正常运行。正文CuPy官网 官网给出了详细的安装操作,但是需要手动安装CUDA Toolkit,如果你没有实践过,这也许会比较难。官网给出了相应版本对应的安装命令:我电脑是11.1,所以这里执行下面命令即可pip install cupy-cuda

2022-05-11 14:18:57 8029 4

原创 使用Python做算法题的时候一些笔记/trick,不定时更新

写在前面 ,因为本来以为都得用C++的,所以前面记录了一点简单的C++知识, 后来基本上都在使用Python写算法题,所以都在记录Python了,具体看目录吧。

2022-03-31 22:19:38 438

原创 关于求素数为什么只用求到平方根,以及求素数复杂度更低的想法、附python代码

求素数为什么只用求到平方根如果一个数可以拆分为两个因数,那么这两个因数必然有一个因子小于此数的平方根,有一个因子大于此数的平方根。当一个数从2开始,遍历到它的平方根还没有找到一个因子的,就一定是素数。......

2022-03-30 17:08:31 2114 2

原创 C++学习笔记24-STL常用容器之string、vector、deque容器

string容器24.1 string 基本概念24.2 string 构造函数24.3 string 赋值操作24.1 string 基本概念本质:string是C++风格的字符串,其本质上是一个被封装好的类string和char*区别:char* 是一个指针string 是一个类,类内部封装了char*,管理这个字符串,是一个char* 型的容器。特点:string类内部封装了很多成员方法例如:查找find,拷贝copy,删除delete,替换replace,插入insert

2022-03-23 20:40:40 197

原创 C++学习笔记23-STL初识与vector的简单实用

STL初识22.1 前言-STL的诞生22.2 STL基本概念22.3 STL六大组件22.4 STL中容器、算法、迭代器22.4.1 容器22.1 前言-STL的诞生长久以来,软件界一直希望建立一种可重复利用的东西。C++的面向对象和泛型编程思想,目的就是复用性的提升。大多数情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作。为了建立数据结构和算法的一套标准,诞生了STL。22.2 STL基本概念STL(standard Template Library , 标准模板库

2022-03-22 21:04:11 136

原创 C++学习笔记22-类模板与数组类封装案例

类模板22.0 前言22.1 类模板语法22.2 类模板和函数模板区别22.3 类模板中成员函数创建时机22.4 类模板对象做函数参数(有查看数据类型语法小知识)22.5 类模板与继承22.622.0 前言之前已学习了函数模板的相关知识,接下来学习类模板的相关知识。22.1 类模板语法类模板作用:建议一个通用类,类中的成员数据类型可以不具体指定,用一个虚拟的类型来代表。语法:template<typename T,typename U,typename V,...> //类中

2022-03-19 18:10:55 1429

原创 C++学习笔记21-函数模板

模板21.0 模板的概念21.1 函数模板语法21.2 函数模板注意事项本阶段主要针对C++泛型编程和STL技术做详细讲解 , 探讨C++更深层的使用。21.0 模板的概念模板就是建立通用的模具,大大提高复用性。例如生活中的模板:一寸照片模板,PPT模板,word模板模板的特点:模板不可以直接使用,它只是一个框架。模板的通用并不是万能的。C++中另一种编程思想称为泛型编程,主要利用的技术就是模板。C++提供两种模板机制:函数模板和类模板21.1 函数模板语法函数模板作用:建立一

2022-03-17 22:52:05 726

原创 C++使用引用的方法向函数传递数组,避免因传入函数而导致退化为指针,正确在函数中计算数组的大小。

目录1.问题原理方法1——用基本语法方法2——用函数模板后话1.问题我们知道,当我们将数组作为参数传递为一个函数后,数组会退化为指针。这样就导致我们无法正确在函数中计算数组的大小。#include<iostream>using namespace std;int func(int* arr){ return sizeof(arr);}int main(){ int Arr[] = { 2,4,3,1,73,0 }; cout << func(Arr) &lt

2022-03-17 19:12:21 2069 1

原创 C++学习笔记20-文件操作

文件操作20.0 前言20.1 文本文件20.1.1 写文件20.1.2 读文件20.0 前言程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放。通过文件可以将数据持久化。C++中文件操作需要包含头文件——<fstream>。文件类型分为两种:文本文件 - 文件以文本的ASCII码形式存储在计算机中二进制文件 - 文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们。文件操作的三大类:ofstream:写操作ifstream:读操作fstream

2022-03-12 17:12:41 1609

原创 C++学习笔记19-多态

多态19.1 多态的基本概念19.1.1 静态多态和动态多态19.1.2 多态的原理刨析19.2 多态案例19.1 多态的基本概念19.1.1 静态多态和动态多态多态是C++面向对象三大特性之一(封装、继承、多态)多态分为两类:静态多态:函数重载和运算符重载属于静态多态,复用函数名。动态多态:派生类和虚函数实现运行时多态。静态多态和动态多态区别:静态多态的函数地址早绑定——编译阶段确定函数地址。动态多态的函数地址晚绑定——运行阶段确定函数地址。下面通过案例进行讲解多态:#inc

2022-03-11 19:56:37 695

原创 C++学习笔记18-类和对象-继承

类和对象-继承18.0 前言18.1 继承的基本语法18.2 继承方式18.3 继承中的对象模型18.0 前言继承是面向对象三大特性之一。有些类与类之间存在特殊的关系,例如下图中:我们发现,定义这些类时,下级别的成员除了拥有上一级的共性,还有自己的特性。这个时候我们就可以考虑利用继承的技术,减少重复代码。18.1 继承的基本语法例如我们看到很多网站中,都有公共的头部,公共的底部,甚季公共的左侧列表,只有中心内容不同。接下来我们分别利用普通写法和继承的写法来实现网页中的内容,看下继承存

2022-03-08 12:46:37 630

原创 C++学习笔记17-类和对象-运算符重载

类和对象-运算符重载17.0 前言17.1 加号运算符重载17.0 前言运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。语法:返回类型 operator<运算符符号>(<参数>){}//operator<运算符符号>为operator+,operator- ...17.1 加号运算符重载作用:实现两个自定义数据类型相加的运算。#include<iostream>using namespace st

2022-03-06 23:18:02 447

原创 C++学习笔记16-类和对象-友元,以及类的定义和声明顺序问题

类和对象-友元

2022-03-04 13:12:01 474

原创 C++学习笔记15-类和对象-C++对象模型和this指针

类和对象-C++对象模型和this指针15.1 成员变量和成员函数分开存储15.1 成员变量和成员函数分开存储在C++中,类内的成员变量和成员函数分开存储。只有非静态成员变量才属于类的对象上。示例:#include<iostream>using namespace std;//成员变量和成员函数的分开class Person{};class Person_2{ int m_A; //非静态成员变量属于类的对象上 static string m_Name;

2022-03-02 16:50:21 529

原创 C++学习笔记14-类和对象-对象特性

类和对象-对象特性14.0 前言14.1 构造函数和析构函数14.0 前言生活中我们买的电子产品都基本会有出厂设置[在某一天我们不用时候也会删除一些自己信息数据保证安全。C++中的面向对象来源于生活,每个对象也都会有初始设置以及对象销毁前的清理数据的设置。14.1 构造函数和析构函数对象的初始化和清理也是两个非常重要的安全问题   一个对象或者变量没有初始状态,对其使用后果是未知。   同样的使用完一个对象或变量,没有及时清理,也会造成一定的安全问题 。C++利用了构造函数和析构函数解决

2022-03-01 18:00:41 680

原创 C++学习笔记13-类和对象-封装及案例、案例与分文件定义声明类相关

类和对象-封装12.1 封装-属性和行为作为整体12.1 封装-属性和行为作为整体

2022-02-23 13:07:28 497

原创 C++学习笔记12-函数提高

函数提高11.1 函数默认参数11.2 函数占位参数11.1 函数默认参数在C++中,函数形参列表中的形参是可以有默认值的。语法:返回值类型 函数名 (参数=默认值){}注意:如果参数列表里某个位置已经有了默认参数,那么从这个参数之后的所有参数都要有默认值。如果函数定义在调用之后,声明处必须有默认参数(分文件定义函数也是这样,可以理解为两种情况都是因为在函数调用时找不到这个函数定义,所以需要在声明里有默认参数)。如果定义在调用之前,调用在声明和定义有一个必须有默认参数,但是也只能有一个有

2022-02-21 11:23:12 71

原创 C++学习笔记11-C++中的引用

C++中的引用11.1 引用的基本使用11.3 引用做函数参数11.1 引用的基本使用作用: 给变量起别名,就是让新名字的参数指向了原名字参数的地址。语法:数据类型& 别名 = 原名; 别名和原名的数据类型是相同的。#include<iostream>using namespace std;int main(){ int a = 10; int& b = a; cout << "a的地址: " << &a <&l

2022-02-20 14:31:51 537

原创 C++学习笔记10-程序的内存分区模型及new操作符

10.0 C++核心编程学习C++面向对象编程技术, 探讨C++中的核心和精髓.10.1 内存分区模型C++程序在执行时,将内存大方向划分为4个区域:代码区:存放函数体的二进制代码,由操作系统进行管理的。全局区:存放全局变量和静态变量以及常量。栈区:由编译器自动分配释放,存放函数的参数值,局部变量等。堆区:由程序员分配和释放,若程序员不释放程序结束时由操作系统回收。内存四区意义: 不同区域存放的数据,赋予不同的生命周期,给我们更大的灵活编程。10.2 程序运行前在程

2022-02-18 22:50:02 577

原创 C++学习笔记9-通讯录管理系统

9.1 系统要求9.2 创建项目vs正常操作, 不多说。9.3 菜单功能//显示菜单界面void showMenu(){ cout << "*****************************" << endl; cout << "*****\t1、添加联系人\t*****" << endl; cout << "*****\t2、显示联系人\t*****" << endl; cout << "

2022-02-18 00:04:42 562

原创 C++学习笔记8-结构体

结构体8.1 结构体基本概念8.2 结构体定义和使用8.3 结构体数组8.1 结构体基本概念结构体属于用户自定义的数据类型,允许用户存储不同的数据类型8.2 结构体定义和使用语法:struct 结构体名 {结构体成员列表}; 访问变量:变量.属性通过结构体创建变量的方式有三种:struct 结构体名 变量名struct 结构体名 变量名={成员1值,成员2值…}定义结构体时顺便创建变量#include<iostream>#include<string>

2022-02-17 16:22:51 348

原创 C++学习笔记7-指针

指针7.1 指针的基本概念7.2 指针变量的定义和使用7.3 指针所占内存空间7.4 空指针和野指针7.5 const修饰指针7.6 指针和数组7.7 指针和函数7.8 指针、数组、函数7.1 指针的基本概念作用:可以通过指针间接访问内存。内存编号是从0开始记录的,一般用十六进制数字表示。可以利用指针变量保存地址。7.2 指针变量的定义和使用指针变量定义语法:数据类型* 变量名;&可以取地址;*可以取地址存放的值示例:#include<iostream>usi

2022-02-14 23:20:34 112

PCD数据集,用于变化检测任务

一个变换检测常用的数据集,PCD数据集,方便下载,

2021-09-08

空空如也

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

TA关注的人

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