自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 说明:本博客的内容是最近从新浪博客部分迁移过来,作为本人的学习笔记,欢迎大家批评指正

说明:本博客的内容是最近从新浪博客部分迁移过来,作为本人的学习笔记,欢迎大家批评指正

2018-05-07 16:30:30 213

原创 ros话题编程之如何自定义消息

以learning_communication为例,在该包文件目录下新建一个msg文件夹然后在该文件夹下创建一个person.msg文件(在该文件中可以定义常量)然后去xml文件中添加依赖(generation类型)以及cmakelist文件中添加编译依赖,具体添加内容参考古月系列教程的ppt,添加完成后catkin_make ...

2018-12-20 20:43:08 346

原创 ros之话题编程

话题编程的流程:创建发布者创建订阅者添加编译选项运行可执行程序(实现功能)如何实现一个发布者:初始化ros节点向ros master注册节点信息,包括发布的话题名以及话题中的消息类型(字符串型、整型等)按照一定频率循环发布消息如何实现一个订阅者:初始化ros节点向ros master注册节点并订阅需要的话题循环等待话题消息,接收到消息后进入回调函数...

2018-12-20 20:15:44 336

原创 ROS中的工作空间与文件结构编程基础等总结

一个完整的工作空间主要由以下几个文件夹组成:src:代码空间build:编译空间devel:开发空间install:安装空间(与devel在ros2中合并了,用于存放编译完成的一些可执行文件)下图为一个工作空间的文件结构创建工作空间:mkdir -p ~/catkin_ws/src    cd ~/catkin_ws/src       catkin_init_wo...

2018-12-20 15:53:16 539

原创 ros中常用的命令总结

catkin_create_pkg:创建功能包rospack:获取功能包信息catkin_make:编译工作空间中的功能包rosdep:自动安装功能包依赖的其他功能包roscd:功能包目录之间的跳转roscp:拷贝功能包中的文件rosed:编辑功能包中的文件(相当于vim)rosrun:运行功能包中的可执行文件roslaunch:运行功能包中的启动文件rosru...

2018-12-19 21:45:38 303

原创 常用的机器人相关技术网站

ros wiki:wiki.ros.orgros answer:answer.ros.org简单粗暴:www.google.com寻找ros代码的github网页:https://github.com/ros-infrastructure/robots.ros.org一位技术博主:http://www.guyuehome.com/blog/ros ...

2018-12-19 20:05:57 550

原创 MATLAB2013b安装robotics toolbox方法总结

第一步         下载robotics toolbox工具包(访问链接http://petercorke.com/wordpress/toolboxes/robotics-toolbox,有两种格式,第一种是mltbx(双击按照步骤一步一步进行即可安装),我在本次 过程中下载的是zip格式的文件(第一次下载的10.3版本的安装后运行出现了问题,最后下载了9.10版本解决问题)第二步...

2018-12-14 20:59:47 686

原创 计算机网络总结1(错误码说明)

1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。代码 说明100 (继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。2xx (成功)表示成功处理了请求的状态代码。代码 说明200 (成功) 服务器已成功处理了请求。通常,这表示服务器提供了请求...

2018-08-31 22:57:13 520

原创 网络层协议总结

        连接在Internet中的每台主机(或者路由器)都分配一个32bit的全球唯一标识符,即IP地址(IPv4是32bit,IPv6是128bit)。IP地址的编码方法有三种:分类的IP地址、子网的划分和CIDR。传统的IP地址是分类的地址,分为A、B、C、D、E五类。无论是哪一类的IP地址,都有网络号和主机号两部分组成。其中,网络号表示主机所连接到的网络,主机号表示该主机或者路由器在...

2018-08-14 14:33:40 451

原创 TCP与UDP的区别与应用场景

TCP和UDP两者都是通信协议,TCP和UDP都是传输层协议,但是他们的通信机制和应用场景不同。TCPTCP(Transmission Control Protocol)又叫传输控制协议,TCP是面向连接的,并且是一种可靠的协议,在基于TCP进行通信时,通信双方需要建立TCP连接,建立连接需要经过三次握手,握手成功才可以通信。UDPUDP是一种面向无连接,切不可靠的协议,在通信...

2018-08-13 16:54:39 664 1

转载 memset函数

1. memset()函数原型是extern void *memset(void *buffer, int c, int count)        buffer:为指针或是数组,              c:是赋给buffer的值,       count:是buffer的长度.       这个函数在socket中多用于清空数组.如:原型是memset(buffer, 0, s...

2018-08-13 16:34:21 1546

原创 TCP状态转换图

        TCP为一个连接定义了11中状态,并且TCP规则规定如何基于当前状态及在该状态下所接受的分节从一个状态转换到另一个状态,举例,当某个应用进程在CLOSED状态下执行主动打开时,TCP将发送一个SYN,且新的状态是SYN_SENT。如果这个TCP接着接收到一个带ACK的SYN,那么它将发送一个ACK,且新的状态是ESTABLISHED。这个最终状态是绝大多数数据传送发生的状态。 ...

2018-08-13 10:49:59 262

原创 朴素贝叶斯分类器

      朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于这种模型,对于给定的输入x,利用贝叶斯定理求出后验概率最大的输出y,朴素贝叶斯法实现简单,学习与预测概率都还可以,可用于很多分类场景。    给定数据集T={(x1,y1),(x2,y2),、、、、(xN,yN)},通过训练数据集学习联合概率分布...

2018-08-13 09:02:12 164

原创 TCP协议中的四次挥手释放连接

建立一个连接需要三次握手,而终止一个连接需要四次挥手。这是由TCP的半关闭造成的。既然一个TCP连接是全双工(数据能在两个方向上同时传递),因此每个方向必须单独的进行关闭。现在我们介绍TCP的四次挥手释放连接的过程,整体示意图如下所示:·1. 某个应用程序首先调用close,我们称这一端执行主动关闭。这一端的TCP于是发送一个FIN M分节,表示数据发送完毕;2. 另一端接收到FIN ...

2018-08-10 16:58:22 1097

原创 TCP三次握手建立过程

下图给出了TCP连接过程中的一些名词的意义三次握手建立过程1. 客户端向服务器发送一个SYN J;2. 服务器向客户端响应一个SYN K,并对SYN J进行确认ACK  J+1;3. 客户端再向服务器发一个确认ACK K+1.1. 从图中可以看出,服务器必须准备好接受外来的连接。这通过socket、bind和listen函数来完成,称为被动打开。客户端通过调用con...

2018-08-10 15:11:04 505

原创 TCP连接的建立与终止

下图给出了一个TCP协议的服务端与客户端的套接口函数(图片来自网络资源)服务器端:服务器先调用socket函数,返回一个套接字,然后套接字与地址、端口绑定(bind),对端口进行监听(listen),调用accept进行阻塞,直到建立连接。客户端:如果这时候有个客户端调用socket(返回套接字)函数,然后连接服务器,如果连接成功,这时候服务端客户端的连接就建立了。客户端发送数据请求,...

2018-08-10 14:32:17 186

原创 计算机网络之TCP与UDP

首先,在这里简单总结一下二者的区别:1. TCP(传输控制协议)是一种面向连接的协议,提供客户与服务器的连接。而UDP(数据包协议),是一种无连接的协议,因为UDP客户端与服务器不存在长期的关系,例如一个UDP客户端创建一个套接字发送数据报给一个服务器,然后立刻用同一个套接字发送另一个数据报给另一个服务器。同样,一个UDP服务器也可以用一个UDP套接字同多个不同的客户端接收多个数据报。UD...

2018-08-10 11:32:56 185

原创 操作系统之死锁

通俗的讲,死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),无外力作用,这些进程都将无法向前推进。死锁产生的原因如下:1. 系统资源的竞争2.进程推进顺序非法死锁产生的必要条件:产生死锁必须同时满足以下四个条件,只要其中一个条件不成立,死锁就不会发生1. 互斥条件:进程要求对所分配的资源进行排他性控制,即在一段时间内某资源仅为一个进程所占有,此时若有其他进程请求该资源...

2018-08-09 15:52:10 210

原创 一个典型的多进程情况

问题描述:假设我们有三个程序,每个程序花费80%的时间进行I/O,20%的时间使用CPU,每个程序启动时间和其需要使用进行计算的分钟数如下,不考虑进程切换时间:程序编号              启动时间                 需要CPU时间(分钟)   1                            00:00                            3...

2018-08-09 11:10:32 644 2

原创 进程通信与进程同步

多个进程可以共享系统中的各种资源,但其中许多资源一次只能为一个进程使用,我们把一次仅允许一个进程使用的资源称为临界资源。(许多物理设备都属于临界资源,如打印机等)对临界资源的访问必须互斥进行,在每个进程中,访问临界资源的那段代码称为临界区。进程通信与同步的目的主要有下面:(1)数据传输:一个进程需要将他的数据发送给另一个进程;(2)共享数据:多个进程想要操作共享数据,一个进程对共享...

2018-08-08 21:20:15 1103

转载 多线程之分离态与非分离态(detached与joinable)

线程的分离状态决定一个线程以什么样的方式来终止自己    非分离 【joinable】     分离 【detached】非分离的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的【默认状态】分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放 这里要注意的一点是,如果设置一个线程为分离线程,而这个线程运行又非常...

2018-07-31 21:26:32 549

原创 STL之map与hash_map

在网上看到有关STL中hash_map的文章,以及一些其他关于STL map和hash_map的资料,总结笔记如下:    1、STL的map底层是用红黑树实现的,查找时间复杂度是log(n);    2、STL的hash_map底层是用hash表存储的,查询时间复杂度是O(1);    3、什么时候用map,什么时候用hash_map?    这个要看具体的应用,不一定常数级别的hash...

2018-07-31 15:41:04 216

原创 windows的消息机制总结

DOS靠过程来驱动,而windows靠消息驱动。MFC/QT是一个广泛使用的变成类库,对windows的消息机制进行了很好的封装。1、消息的概念:消息是指windows操作系统发给应用程序的一个通告,告诉程序某个特定的事件发生了。比如用户点击鼠标,会引发相关的消息,并交给相应的程序去处理。最终处理消息的是应用程序的窗口函数,如果程序不负责处理的话,系统会作出默认的处理。从数据结构的...

2018-07-25 16:57:38 7396

原创 TCP/IP学习篇之HTTP与HTTPS的区别

本文参考了百度百科与百度知道概念:1、超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。2、HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),...

2018-07-25 14:59:19 188

原创 C++多线程学习篇之补充(join函数的一点总结)

以python中的threading, time模块为例进行代码演示# coding: utf-8# 测试多线程中join的功能import threading, time def doWaiting(): print 'start waiting1: ' + time.strftime('%H:%M:%S') + "\n" time.sleep(3) p...

2018-07-20 15:25:22 886

原创 C++之多线程学习篇(3)之线程状态

1. 线程的几种状态线程在一定条件下,状态会发生变化。线程一共有以下几种状态:1、新建状态(New):新创建了一个线程对象。2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权。即在就绪状态的进程除CPU之外,其它的运行所需资源都已全部获得。3、运行状态(Running)...

2018-07-18 16:59:33 7683 2

原创 C++多线程学习篇(2)之概念

此博文作为以前学习的总结,写作过程中参考过其他博客1. 程序、进程、线程的区别程序:程序是由一系列的指令和逻辑组成的一个静态文件(如cpp文件),无论能不能运行,它都客观的存在于储存器中。进程:进程是指程序在计算机中一次运行的活动,是系统进行资源分配和调度的基本单位(参考百科,而现在都是以线程为基本单位)。系统为特定的静态程序分配好运行时需要的各种资源,这个时候系统会连带地生成一个PC...

2018-07-18 11:47:52 240

原创 C++多线程学习篇(1)之配置篇

        在以前学习多线程的过程中,遇到了无法添加包含pthread.h头文件的情况。本文主要简单总结一下这种问题的解决方法。我的编译环境是vs2010。1. 下载文件首先,从链接ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-8-0-release.exe下载pthreads-w32-2-8-0-release.exe文...

2018-07-17 21:49:36 560 1

原创 ZeroMQ学习总结

1  什么是ZeroMQZeroMQ是一种基于消息队列的多线程网络库,其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字。ZeroMQ是网络通信中新的一层,介于应用层和传输层之间(按照TCP/IP划分),其是一个可伸缩层,可并行运行,分散在分布式系统间。2  系统架构2.1总体架构ZeroMQ几乎所有的I/O操作都是异步的,主线程不会被阻塞。Ze...

2018-07-17 09:33:31 541 1

原创 设计模式之生产者消费者模式

1、生产者与消费者模式多线程中,生成者与消费者是一个很典型的例子。生产者就是生产数据的线程,消费者就是消费数据的线程。生产者与消费者模式是通过一个共享资源缓冲区来解决生产者和消费者的强耦合问题,生产者与消费者之间不需要通信,生产者生产的产品放入阻塞队列中,而消费者从阻塞队列中从取出产品,阻塞队列就相当于一个缓冲区,同时生成与消费还需要有一个生产与消费的平衡,这样讲生成者与消费者进行解耦。 ...

2018-07-16 15:33:04 440

原创 常用的排序算法总结(1)

在这里探讨的排序算法主要是内部排序,即在内存中进行的排序。排序算法大致可以分为两种:一种是比较排序,这类排序算法的时间复杂度一般为O(nlogn)~O(n^2),主要有冒泡排序、选择排序、插入排序、归并排序、堆排序、快速排序等。另一种是非比较排序:这类算法的时间复杂度能达到O(n),一般有计数排序、基数排序、桶排序等。下表给出了常用比较排序算法的比较:算法稳定性:如果Ai=Aj,排序前Ai在Aj之...

2018-07-03 21:28:47 177 1

转载 c++的智能指针

一、简介由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::auto_ptr、boost::scoped_ptr、boost::shared_pt...

2018-05-27 21:19:44 181

转载 C++中的static关键字

static的作用主要有两种:第一个作用是限定作用域;第二个作用是保持变量内容持久化;c语言中static的用法:1、全局静态变量:  用法:在全局变量前加上关键字static,全局变量就定义成一个全局静态变量。 static int temp;  内存中的位置:静态存储区,在整个程序运行期间一直存在。  初始化:未经初始化的全局静态变量会被自动初始化为0(自动对象的值是任意的,除非他被显式初始化...

2018-05-19 21:41:55 190

转载 c++内存

 一关于内存 1、内存分配方式  内存分配方式有三种:  (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。  (2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。  (3) 从堆上分配,亦...

2018-05-09 21:10:34 125

原创 new与malloc的区别

1.属性区别new与delete是c++中的关键字,而malloc与free作为函数使用,需要添加头文件2.参数使用new申请内存无需制定内存大小,由系统自动分配,malloc需要显示给出参数3.返回类型new申请后返回的是指向对象类型的指针,类型严格与分配类型匹配,类型安全,不需要进行类型强转,而malloc申请成功后返回的是void*,需要通过类型强制准换成我们需要的类型...

2018-05-09 21:04:09 171

原创 删除链表中的重复节点

/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* deleteDuplication(ListNode* pHead) ...

2018-05-09 16:17:49 251

原创 删除链表中的节点

#include <iostream>using namespace std;struct ListNode{ int m_nValue; ListNode *m_pNext;};void DeleteNode(ListNode **pListHead, ListNode *pToBeDeleted){ if(!pListHead||!pToBeDele...

2018-05-08 15:43:33 360

原创 python读取串口数据,并保存到数据库

import MySQLdb//定义引用数据库的驱动文件import serialimport timeser = serial.Serial('/dev/ttyATH0', 115200, timeout=65)//读串口while True:data = ser.readline()print repr(data)//输出读到的数据conn=MySQLdb.connect(hos...

2018-04-18 14:39:05 5993 2

原创 信息熵、条件熵、相对熵

以前在学习通信原理,信息论时都学习过这样的原理,但是不能从根本理解这样的公式有什么用,能解决什么问题。例如,笔者最近在看用信息论里条件熵来检测图像视频的显著性,一直就不明白这两样东西怎么就放在一块了。后面在《数学之美》,在书中看到了这些公式能够解释什么问题时,才有所领悟~~~1,信息熵(Entropy)     公式大家都不陌生吧:P(x)是变量出现的概率;以前我们可以就学到此就为止了,那个信息熵...

2018-04-17 14:35:17 758

原创 京东金融登录行为识别赛题总结

一、对数据以及文件进行说明如下评判标准如下(这个式子是求F1公式的变形)二、特征工程1、由于比赛中提供了两张表,所以第一步需要将将两张表联系起来。采用的是将每个用户的交易记录与距离该交易记录时间最短的一次成功登录记录进行关联2、针对登录时间戳,登录时长与交易时长,发现在午夜发生风险的可能比较大,取时间戳的小时数作为一个特征。3、取用户发生交易的时间与用户用户的登录时间戳(前提是同一个id)取差值,...

2018-04-16 22:00:58 1648 1

hands on machine learning with sklearn and tensorflow

机器学习sklearn 与tensorflow使用的入门教程 机器学习sklearn 与tensorflow使用的入门教程机器学习sklearn 与tensorflow使用的入门教程机器学习sklearn 与tensorflow使用的入门教程

2018-04-10

空空如也

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

TA关注的人

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