自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux网络编程

C/S模型、B/S模型套接字:socket本身有插座的意思,在Linux环境下,用来表示进程间网络通信的特殊文件类型。本质为内核借助缓存区形成的伪文件。可以使用文件描述符引用套接字。与管道类似的,linux系统将其封装成文件的目的是统一接口,使得套接字操作和读写文件的操作一致。区别在于管道主要应用本地进程间通信,而套接字多应用于网络进程间数据的传递。在TCP/IP协议中,“IP地址+TCP/UDP端口号”唯一标识网络通信中的一个进程。“IP地址+端口号”就对应一个socket。想建立连接的两个进程各自有一

2022-07-25 16:37:30 453

原创 MySQL学习笔记

mysql

2022-06-11 20:14:15 787

原创 计算机网络知识总结

HTTP, TCP , IP相关

2022-05-30 16:58:07 441

原创 C++一些小知识点

c++常见初始化方式:type name = value;type name = {value};type name{value}cout显示十进制,十六进制,八进制:int a = 30;using namespace std;cout << dec;//默认十进制cout << "十进制下:a = " << a << endl;cout << hex;cout << "十六进制下: a = " <&l..

2022-05-11 15:39:38 258

原创 LINUX学习笔记

主键盘快捷键:上:crtl+p —previous下:crtl+n —next左:crtl+b —backward右:crtl+f —forwardDel:ctrl+d —delete光标后面的Home:crtl+a —the first letterEnd:ctrl+e —endBackspace:backspace —delete光标前面的sudo su —root用户;exit —可以退出root用户目录和文件: “所见皆文件”如上图,系统目录下:bin —存放二

2022-05-04 11:11:34 368

原创 动态规划,背包问题等

动态规划基本步骤:1 确定dp,确定含义;2 确定递推公式;3 确定dp初始化;4 确定遍历顺序;一维dp例题1:;leetcode746//1dp[i]表示到达i阶梯时最小支付花费;//2 dp[i] = min(dp[i-2]+cost[i-2],dp[i-1]+cost[i-1]);因为能到达第i个楼梯//肯定是从i-1或者i-2阶梯来的。//3 dp[0]=0;dp[1]=0;//4 从小到大;int minCostClimbingStairs(vector<int&

2022-03-22 10:40:11 1636

原创 数据结构知识

bit数组//bit数组指的是相比于一般数组每一位上都是1bit,如何实现?//利用int数组拆分实现int arr[10];//10x4x8=320bitint i = 144;//第i位//如何拿到第i位的状态?int numindex = i/32;int moveindex = i%32;int state = ((arr[numindex]>>moveindex) &1);//如何将第i位改为1?arr[numindex] = arr[numindex]|(

2022-03-18 17:05:20 363

原创 VM蓝屏和Ubuntu上ROS安装中的问题

打开VM后电脑蓝屏:解决办法如下:①打开任务管理器,查看虚拟化是否开启。②同时按下WIN+R键打开运行窗口输入“OptionalFeatures ”打开Windows功能。选中下图中的Windows虚拟机监控程序平台,和虚拟机平台两项。关机重启,解决。ubuntu18.04安装ROS问题1:执行sudo apt-get install ros-melodic-desktop-full出现:E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资.

2022-03-17 15:43:47 307

原创 利用matlab求解线性不等式

LMI工具箱求解线性不等式:例题:求解AP+PA’-3B*B’ < 0setlmis([])//初始化LMI系统A = [0,1,0,0;0,0,0,0;0,0,0,1;0,0,0,0];%4x4B = [0,0;1,0;0,0;0,1];C = -3* (B*B');//声明一些常数P = lmivar(1,[4,1]);//声明一个新的矩阵变脸,前面的1表示是对称矩阵,表示4x4的对称矩阵。//前面数字要是2的话,可以表示任意大小的矩阵,如lmivar(2,[2,3]),表示一个2

2021-12-01 09:50:43 3789

原创 ROS安装和MAVROS以及PX4的安装

只能说怀着沉重的心情,本来不想写的,但是又还是害怕后续出什么幺蛾子,就记录一下,希望自己永远没有机会在看这篇文章。ROS安装Ubuntu 的软件与更新:2.设置安装源:sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest

2021-11-26 16:51:55 4255 11

原创 图相关的算法总结

图的表示:邻接矩阵,邻接表目标:在一种图的表示上实现图的所有算法,在实际遇到,就只需要考虑怎么从一种图的表示转换到我们的表示上struct Node { int value;//类型根据实际变化 int in;//入度 int out;//出度 vector<Node> nexts;//当前节点的邻居有哪些,在有向图中,由当前节点指向他们 vector<Edge> edges;//属于当前节点的边有哪些,由当前节点指向其他 Node(int value){ thi

2021-11-02 10:30:55 242

原创 判断两个可能有环的链表相交问题

①链表是否有环判断,有环则返回第一个入环节点?方法:设置两个指针,快指针一次走两步,慢指针一次走一步,若快指针走到空节点,则说明无环,否则,等到两个指针在环内相遇,将快指针指向头节点,两个节点同时开始一次走一步,一定会在入环处相遇。Node* getLoopNode(Node* root) { if (root == nullptr || root->next == nullptr || root->next->next == nullptr) return nullptr;

2021-09-17 11:14:16 205

原创 tensorflow学习笔记

①张量分为:零阶(数,s = 1);一阶(向量, s=[1,1,1,2]);二阶(矩阵,s=[1,1,1],[1,2,3]);三阶,…;n阶(); 几阶张量就有几个[ ];索引方式与c++相同;②数据类型(列举几个)tf.int 32/64tf.float 32/64tf.bool :True/Falsetf.string :“dsf”③张量创建:tf.constant(张量内容,dtpye=数据类型(可选))import tensortflow as tfa=tf.consta

2021-09-17 09:30:29 482

原创 论文:多智能体编队控制综述

多智能体编队分类:基于位置的编队控制:智能体感知自己相对于全局坐标系的位置。它们主动控制自己的位置,以实现所需的队形,这是由相对于全局坐标系的所需位置规定的。基于位移的编队控制:智能体主动控制其相邻智能体的位移以实现所需的队形,这个队形是在假设每个智能体能够感知其相邻智能体相对于全局坐标系的相对位置的情况下,由相对于全局坐标系的期望位移指定的。这意味着智能体只需要知道全局坐标系的方向,既不需要全局坐标系本身的信息,也不需要它们相对于坐标系的位置。基于距离的编队控制:主动控制智能体间距离,以实现所需的编

2021-09-15 18:27:59 10185 5

原创 强化学习笔记

Reinforcement Learning基础概念:状态(s):State动作(a): Action策略(π): Policy ------一种函数,从当前状态选择一种动作奖励®: Reward状态更新:state transition ------从当前状态,采取相应动作,按照一定的状态更新得到下一个状态,这里的状态是整个环境的状态,而不仅仅是Agent#mermaid-svg-vMUhy3hZ3pjBda6c .label{font-family:'trebuchet ms

2021-09-13 19:28:48 203

原创 常见排序总结

//实现一个数组指定两个位置交换/*void swap(vector<int>& arr,int a,int b){ arr[a] = arr[a]^arr[b]; arr[b] = arr[a]^arr[b]; arr[a] = arr[a]^arr[b]; //现在有i,j,i=i^j; j = (i^j)^j = i; i = (i^j)^i=j,就实现了交换。 //但是有一个致命缺点,若两个数来自同一个地址,则会清零。}*///补充几个异或规则,// 0 ^ m

2021-09-09 12:03:22 186

原创 回溯法的一些心得

回溯法,⼀般可以解决如下⼏种问题:排列,组合问题,满足某种条件的全部子集,即需要穷举才能完成的任务就可能需要回溯。排列有序,组合无序回溯的一般模板void back(参数) { if (End condition) { //Processing result; return; } for (dataset) { //Processing data(比如储存); back(参数); // 递归 //revoke processing(如删除本次储存) }

2021-08-27 10:45:54 1090

原创 c++知识点总结--智能指针

智能指针引入智能指针目的:为了解决:一种是忘记释放内存,如new完,忘记delete,另外是尚有指针引用内存的情况下释放指针,就会产生引用非法内存的指针。1 shared_ptr:允许多个指针指向同一个对象,默认初始化的智能指针中保存着一个空指针。make_shared函数:最安全的分配和使用动态内存的方法就是调用一个名为make_shared的标准库函数,此函数在动态内存中分配一个对象并初始化它,返回指向此对象的shared_ptr。头文件和share_ptr相同,在memory中必须指定想

2021-08-20 10:29:31 313

原创 c++知识点总结--STL

STL Standard template library ------标准模板库STL广义划分为: 容器container; 算法algorithm; 迭代器iterator容器和算法之间通过迭代器进行无缝衔接。STL几乎所有代码都采用了模板类或者模板函数;STL分为六大组件:容器,算法,迭代器,仿函数,适配器,空间配置器容器:各种数据结构:vector,list,deque,set,map;算法:各种常见算法:sort,find,copy,for_each;迭代器:扮演容器和算法之间的胶合

2021-07-27 12:22:59 386

原创 二叉树的一些做题心得

满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。完全二叉树:在满二叉树的基础上,从最底层到上层的顺序下,在每一层的从右到左依次剪枝,无论剪掉多少个,多少层,剩下的就是完全二叉树(当然只有下层全部剪掉了,才能在上层按顺序剪枝。)二叉搜索树:二叉搜索树的每个结点上有数值,二叉搜索树是一个有序树。××若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;××若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;××它的左、右子树

2021-07-27 10:44:45 517

原创 ros知识点总结--头文件

自定义头文件步骤: 下面的.h 和.cpp文件没必要细看,就是c++中写头文件的方法。ROS中自己编写头文件,在其他cpp文件中调用,和一般的c++文件编写,基本差不多,但是也是需要配置CMakeLists.txt文件的几处地方,下面给出我原来写的一个简单A*算法的例子atsar.h —一般创建在功能包下的include/功能包名/astar.h//astar.h#include "ros/ros.h"#include <nav_msgs/Path.h>#include <ge

2021-07-26 16:02:15 1146

原创 c++知识点总结--函数模板

模板函数—使用泛型来定义函数//example:template<typename T>void Swap(T &a,T &b) // 声明或定义{ T temp; temp = a; a = b; b = temp;}int main(){ int a = 12; int b = 13; Swap(a,b); cout<<a<<" "<< b<<endl; Swap<int>(a,b)

2021-07-26 12:16:27 179

原创 c++知识点总结--名称空间

example:namespace Jack{ double fetch;//...变量 double bucket(double n){ //...函数 ... } //...结构体... struct node{ };}using Jack::fetch ; //-------下面就可以直接使用fetch。-------using声明--只能一个using namespace Jack;//-----Jack里面的都可以使用。Jack::fetch;// ------这样可以避

2021-07-25 13:42:16 79

原创 ros知识点总结—话题

//话题 发布/订阅模型rostopic list/*/rosout/rosout_agg/turtle1/cmd_vel //速度控制话题/turtle1/color_sensor //改变背景颜色话题/turtle1/pose //姿态位置话题*/rostopic info /turtle1/cmd_vel /*topic Type: geometry_msgs/TwistPublishers: * /teleop_turtle (http://localhos

2021-07-25 00:54:24 796

原创 ros知识点总结---服务

//服务 客户端/服务端rosservice list/*/clear/kill/reset/rosout/get_loggers/rosout/set_logger_level/spawn //-----重点关注这个,用来产生小海龟/teleop_turtle/get_loggers/teleop_turtle/set_logger_level/turtle1/set_pen/turtle1/teleport_absolute/turtle1/teleport_relati

2021-07-25 00:53:18 341

原创 C++知识点总结 -- 类

类前言知识点— struct 和class的默认权限不同,struct默认权限 public;class 默认权限是private;— .和::和:和->,在此整理一下这些常用符号的区别。1、A.B则A为对象或者结构体,B为成员变量或者成员函数;2、A->B则A为指针,->是成员提取,A->B是提取A中的成员B,A只能是指向类、结构、联合的指针;3、::是作用域运算符,A::B表示作用域A中的名称B,A可以是名字空间、类、结构;4、:一般用来表示继承;类 :类声明:

2021-07-19 22:32:21 984

原创 C++知识点总结--引用

引用引用变量 : 主要用途是用作变量的别名。通过将引用变量用作参数,函数使用原始数据,而不是副本。c++使用&来声明引用。//example:int rats;int & rodents = rats;//rats和rodents指向相同的值和相同的内存单元。//注意--此时&不是地址运算符(等号左边时)。int *prats = &rats;//rats,rodents,*prats 三个等价。//&rodents ,prats,&rats

2021-07-19 20:52:18 99

原创 c++知识点总结 -- 指针

指针指针声明: int * p_updates = &变量;(变量类型和指针类型相同) -----表明* p_updates的类型是 int。 p_updates 是指针 (地址);*p_updates是int,不是指针;在声明语句中初始化指针时,初始化的是指针(地址),不是指针指向的值。××××××××一定要在对指针应用解除引用运算符*前,将指针初始化为一个确定的,适当的地址;指针类型也可以是结构,函数等空指针:1,空指针用于给指针变量初始化 : int * p = NULL;2,

2021-07-17 14:35:08 266

原创 c++知识点总结---函数

函数函数原型 : 返回值类型 函数名(参数类型);函数格式 : type functionname(argumentlist) { statements}先声明函数原型,在主函数之后定义函数;且不让在函数内定义函数函数默认参数:—对于有参数列表的函数,必须从右往左添加默认值 ,如果自己传入数据,就使用自己的数据。如果函数声明有了默认参数,那么函数实现就不能再有默认参数。函数完成后,它所占用的存储空间也会随着被释放掉。函数的占位参数,即函数的输入只有数据类型,如,void funcname(in

2021-07-16 18:44:22 209

原创 ros知识点总结

工作空间创建:mkdir -p catkin_ws/srccd catkin_ws/srccatkin_init_workspace创建一个catkin程序包cd ~/catkin_ws/src//使用catkin_create_pkg命令来创建一个名为'beginner_tutorials'的新程序包,这个程序包依赖于std_msgs、roscpp和rospy:catkin_create_pkg beginner_tutorials std_msgs rospy roscpp编译

2021-07-15 17:42:52 825

原创 c++知识点总结--结构体

结构体声明时: {;}初始化时:{,}结构体声明://example:struct inflatable { char name[20]; float volume; double prince;}; // }inf;结构体使用:(struct可以省略)//example:struct inflatable cat;inflatable hat = {"wwwdfwf",1.88,23.33}; //省略structcat = hat;//copy操作;对成员是地址的结

2021-07-15 15:14:42 338

原创 c++知识点总结--共用体--枚举

共用体–关键字-- union–是一种数据格式,能够存储不同的数据类型,但同时只能存储其中一种;且共用体的长度为最大成员的长度;//共用体声明:union one3all { int int_val; long long_val;double double_val;};//共用体使用:one3all pail; pain.int_val = 15; pain.double_val = 2.33 //(此时int值就会丢失);—union可以为其成员指定public、protec

2021-07-14 13:07:23 192

原创 c++知识点汇总--字符串

字符串–char—是以空字符结尾的一系列字符;声明和初始化://1char *arr = {'H', 'e', 'l', 'l', 'o', '\0'};//2char *arr = "hello";char arr[] = "hello"//相比之下,方式1需要手动在末尾加空字符;方式2会自动在末尾补空字符;相关操作函数:函数作用strcpy(s1,s2)复制字符串 s2 到字符串 s1strcat(s1,s2)将字符串 s2 连接字符串 s1 的末尾

2021-07-13 11:21:16 207

原创 c++知识点汇总--数组

数组:声明:typename arrayname[size] = {value1,value2,..};元素个数必须是一个大于0的整型常量,数据类型可以是任意有效的C++数据类型。其中size可以省略,则数组大小和初始化变量个数相同,如int arr[] = {1,2,3};初始化可以省略,如int arr[3];访问:arrayname[num];实现修改,查看;数组特点:必须是在一块连续的内存空间;数组中的每个元素类型相同。二维数组:typename arrayname[size][size]=

2021-07-12 09:26:09 374

空空如也

空空如也

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

TA关注的人

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