自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (10)
  • 收藏
  • 关注

原创 剑指offer重点复习题目

题目:二叉搜索树与双向链表输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), ri

2017-08-03 15:51:26 819

原创 迷宫问题、最短路(BFS,DFS)

#include #include using namespace std;const int N = 100;char map[N][N];bool vis[N][N] = {0}; //访问记录int path[N][N]; //记录路径 0、1、2、3分别代表上下左右int fx[4] = {-1,1,0,0}; //上下左右移动int fy[4] = {0,

2017-08-02 15:42:50 3177

原创 大数相乘

#include #include #include using namespace std;int main(){ string s1, s2; while (cin >> s1 >> s2) { vector v1, v2; for (size_t i = 0; i != s1.size(); ++i) v1.push_back((int)(s1[s1.siz

2017-08-02 09:52:43 433

原创 把排序数组转化为高度最小的二叉树

把排序数组转换为高度最小的二叉搜索树思路:直接采用中间值来作为二叉树的根节点;将原数组分成左右均等或者相差一个数的两个新数组;然后递归的对这两个新数组进行相同的处理,这样对于每一个根节点,其左右子树的高度相差绝对值不会超过1,也就是满足了二叉平衡树的要求了。struct TreeNode { int val; TreeNode* left; TreeNode* right; Tre

2017-06-20 20:24:19 805

原创 各种排序算法的对比与C++实现

排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。一、冒泡排序基本思想:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程

2017-06-09 11:13:33 685

原创 卷积神经网络(CNN)

卷积神经网络是为识别二维形状而特殊设计的一个多层感知器,这种网络结构对平移、比例缩放、倾斜或者共他形式的变形具有高度不变性。它的特殊性体现在两个方面,一方面它的神经元间的连接是非全连接的(局部感受野), 另一方面同一层中某些神经元之间的连接的权重是相同的(权值共享)。局部感受野和权值共享这两大神器使CNN更类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量。CNN的结构卷积神经网络是一个多

2017-06-07 16:48:19 1325

原创 用tensorflow实现MNIST(手写数字识别)

自动下载和导入MNIST数据集# Copyright 2015 The TensorFlow Authors. All Rights Reserved.## Licensed under the Apache License, Version 2.0 (the "License");# you may not use this file except in compliance with

2017-06-01 16:48:07 666

原创 Machine Learning(by Andrew Ng) 学习笔记

监督学习:通过已有的训练样本(即已知数据以及其对应的输出)来训练,从而得到一个最优模型,再利用这个模型将所有新的数据样本映射为相应的输出结果。 监督学习问题分为“回归”和“分类”问题。 在回归问题中,我们试图用连续输出来预测结果,这意味着我们正在尝试将输入变量映射到一些连续函数。 在分类问题中,我们试图用离散输出来预测结果。换句话说,我们正在尝试将输入变量映射到离散类别。无监督学习:事先不知道

2017-05-04 11:12:59 1057

原创 【ROS】计算机、机器人之间的网络通信配置

在进行turtlebot、turtlebot上的笔记本以及台式主机之间的通信配置时,主要参考http://wiki.ros.org/turtlebot/Tutorials、http://blog.csdn.net/heyijia0327/article/details/42065293、http://blog.csdn.net/heyijia0327/article/details/42080641

2016-12-27 20:39:55 4868

原创 粒子滤波(Particle Filter)及其在机器人定位中的应用

粒子滤波的基本思想是用随机样本来描述概率分布,然后在测量的基础上,通过调节各粒子权值的大小和样本的位置,来近似实际概率分布,并以样本的均值作为系统的估计值。

2016-12-21 17:15:19 10565 4

转载 Eigen基础

#include #include using namespace std;#include#include#define MATRIX_SIZE 50int main(int argc, char **argv) { //矩阵定义 Eigen::Matrix matrix_23; Eigen::Vector3d v_3d; Eigen::Matr

2016-12-19 16:00:58 1975

原创 【ROS】移动机器人导航仿真(3)——定位(amcl)和路径规划(move_base)

在前一节中,采用gmapping包实现了机器人工作环境的地图构建,这一节将利用amcl包和move_base包实现移动机器人的自主导航。至此已完成整个移动机器人导航仿真的工作,完整代码见:http://pan.baidu.com/s/1geEWmv5amclamcl是移动机器人在2D环境中的概率定位系统。它实现了自适应(或KLD采样)蒙特卡罗定位方法,其使用粒子滤波器来针对已知的地图跟踪机器人的位姿

2016-12-16 11:48:28 39441 54

原创 【ROS】移动机器人导航仿真(2)——SLAM(gmapping)

在前一节中,简单介绍了移动机器人的3D建模,并在gazebo三维仿真环境中实现了简单的移动。这一节采用gmapping包实现机器人的SLAM(同时定位与地图建立)。使用上一节构建的机器人3D模型,在gazebo三维仿真环境中移动,并为此环境构建一个二维地图。概述移动机器人在未知的环境中进行导航时,接收来自里程计,传感器流的信息,构建工作环境的地图模型,然后再根据地图和目标位姿信息来导航、定位。ROS

2016-12-14 21:37:44 30115 28

原创 【ROS】移动机器人导航仿真(1)——3D建模与简单移动

前期基本按着ROS wiki 和《ROS by example vol1 indigo 》走了一遍,但是感觉对ROS还是似懂非懂的,有好多问题仍然不明白。一直在想ROS到底是怎样用在机器人上的。所以干脆从3D建模、传感器信息采集到SLAM、路径规划等把机器人的整个导航过程捋一遍。 本节主要实现移动机器人的3D建模,激光和相机的信息采集以及在gazebo仿真环境中简单地移动机器人。完整代码见百度云:

2016-12-08 22:59:48 19078 17

原创 均值、方差、协方差、协方差矩阵

1、均值E(X) (1)E(X)=ΣX/n (2)E(X±a)=E(X)±a (3)E(aX)=aE(X) (4)E(X±Y)=E(X)±E(Y) (5)E(XY)=E(X)E(Y)2、方差D(X) (1)D(X)=E{(X-E(X))^2} =E(X^2-2XE(X)+E(X)^2) =E(X^2)-E(2XE(X))+E[E(X)^2)] =E(X^2)-2E(X)^2+E(X

2016-12-07 20:12:00 3669

原创 【SLAM】卡尔曼滤波(Kalman Filter)

卡尔曼滤波(Kalman filter)一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。卡尔曼滤波器的原理解释如下:

2016-12-07 17:50:10 8615

原创 【ROS】launch启动文件

ROS采用rosrun命令可以启动一个节点,如果需要同时启动节点管理器(master)和多个节点,就需要采用launch文件来配置。launch文件是一种特殊的XML格式文件,通常以.launch作为文件后缀。每个launch文件都必须要包含一个根元素。roslaunch的使用方法为: $ roslaunch pkg-name launch-file-name下面以一个典型的launch文件举例说

2016-12-06 22:50:29 6217 4

转载 【Linux】vim在每行行首或行尾添加/删除内容

idea:利用vim中的批量替换功能实现。一、添加在每行行首添加相同的内容:[plain] view plain copy:%s/^/要添加的内容  在每行行尾添加相同的内容:[plain] view plain copy:%s/$/要添加的内容

2016-11-24 11:38:32 51252

转载 【ROS】移动机器人运动控制的层次

控制一个移动的机器人,可能在不同的层次面进行。ROS 的控制阶层看起来就是这个样子的: (从最上层开始)

2016-11-02 16:46:20 5195

原创 最大公共子序列(删除字符使得剩下的是回文串)

给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?输出需要删除的字符个数。思路:采用常规方法复杂度太大,应该采用动态规划的思想。求原字符串和其反串的最大公共子序列(不是子串,因为可以不连续)的长度(使用动态规划),然后用原字符串的长度减去这个最大公共子串的长度就得到了最小删除的字符个数。状态:当str1的下标为m,str2

2016-10-10 22:48:18 1082

转载 约瑟夫环问题的数学求解

原文  http://www.cnblogs.com/jjscm/p/4463555.html问题:有n个人站成环 从1开始报数,报k的人去死,之后下一个人报1,问当你是第几个的时候可以活下来?这篇文章主要是讲解  f(n,k)=(f(n-1,k)+k)%n 这个公式是什么意思为什么是对的 虽然公式是使用数学解法 但开始时我会手动的模拟过程 其是有意义的 十

2016-10-06 16:16:12 678

原创 最大的奇约数和

小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣。一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数。 例如:f(44) = 11.现在给出一个N,需要求出 f(1) + f(2) + f(3).......f(N)例如: N = 7 f(1) + f(2) + f(3) + f(4) + f(5) + f(6) + f(7) = 1 + 1 + 3 +

2016-10-05 21:53:23 1065

转载 暗黑的字符串

一个只包含'A'、'B'和'C'的字符串,如果存在某一段长度为3的连续子串中恰好'A'、'B'和'C'各有一个,那么这个字符串就是纯净的,否则这个字符串就是暗黑的。例如:BAACAACCBAAA 连续子串"CBA"中包含了'A','B','C'各一个,所以是纯净的字符串AABBCCAABB 不存在一个长度为3的连续子串包含'A','B','C',所以是暗黑的字符串你的任务就是计算出长度

2016-10-05 18:25:32 536

原创 跳石板问题(约数)

小易来到了一条石板路前,每块石板上从1挨着编号为:1、2、3.......这条石板路要根据特殊的规则才能前进:对于小易当前所在的编号为K的 石板,小易单次只能往前跳K的一个约数(不含1和K)步,即跳到K+X(X为K的一个非1和本身的约数)的位置。 小易当前处在编号为N的石板,他想跳到编号恰好为M的石板去,小易想知道最少需要跳跃几次可以到达。例如:N = 4,M = 24:4->6-

2016-10-05 16:52:24 2610

原创 构造回文序列

如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列。例如:{1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列, {1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列。现在给出一个数字序列,允许使用一种转换操作:选择任意两个相邻的数,然后从序列移除这两个数,并用这两个数字的和插入到这两个数之

2016-10-04 16:22:18 4534 2

原创 【OpenCV】障碍物提取

由于后续要做移动机器人的视觉导航,所以提取机器人行进路径上的障碍物是很重要的一步。目前已基本实现障碍物的提取,但精度不高,后续仍要进行改进。本文主要参考了基于深度摄像头的障碍物检测(realsense+opencv) http://www.cnblogs.com/daihengchen/p/5686272.html以及一些期刊论文和学位论文。 在前文得到视差图和三维坐标的基础上,首先对地面干扰区域

2016-09-28 10:07:28 14618 39

原创 【OpenCV】双目测距(双目标定、双目校正和立体匹配)

本文采用MATLAB标定工具箱和OpenCV3.10来实现双目测距,设备为两个CMOS工业相机和相应的双目云台。 首先感谢CSDN上两位大神前辈邹宇华和scyscyao,虽然是六年前的博客,OpenCV也从1.0的版本更新到了3.1版本,但博客对机器视觉初学者来说仍然提供了巨大的帮助。本文主要参考了 OpenCV学习笔记(17)双目测距与三维重建的OpenCV实现问题集锦(二)双

2016-09-11 21:41:25 74648 83

原创 【Linux】命令执行顺序控制与管道

用;号 隔开每个命令, 每个命令按照从左到右的顺序,顺序执行用&& 号 隔开每个命令, 每个在执行成功后, 顺序执行后面的命令用 || 号 隔开每个命令, 每个命令在执行失败后, 顺序之后后面的命令.&& 与 || 的组合,相当于 if ($?=0) { xxx} else {www}($?是表示上一条命令执行返回结果的环境变量)例如:$ which l

2016-09-05 10:18:43 2281

原创 【Linux】任务计划crontab

一、crontab的使用 通常crontab储存的被守护进程激活,crontab为其守护进程,crontab常常在后台运行,每分钟检查一次是否有指定的作业需要被执行。 添加一个计划任务 crontab -e 第一次进入需要选择编辑工具,选择vim.basic 然后可以看到命令的基本格式 m h dom mon dow command(分钟0~60 小时0~23 日期

2016-09-05 09:25:11 410

转载 【Linux】环境变量与文件查找

转自鸡蛋Lino的实验报告https://www.shiyanlou.com/courses/reports/542292变量定义#定义变量declare $变量名#或者直接赋值也自动定义变量,注意变量之前不带"$"变量名=值#打印变量的值,"$"代表引用变量的值echo $变量名在所有的 UNIX 和类 UNIX 系统中,每个进程都有其各自的环境变量设置,且默认情

2016-09-04 19:38:35 1192

转载 【Linux】目录结构及文件基本操作

一、Linux 目录结构(重点) Linux 是以树形目录结构的形式来构建整个系统的,可以理解为一个用户可操作系统的骨架。虽然本质上无论是目录结构还是操作系统内核都是存储在磁盘上的,但从逻辑上来说 Linux 的磁盘是“挂在”(挂载在)目录上的,每一个目录不仅能使用本地磁盘分区的文件系统,也可以使用网络上的文件系统。1.FHS 标准(英文:Filesystem Hierarchy

2016-09-03 15:24:54 527

原创 【Linux】用户及文件权限管理

一、Linux 用户管理1.查看用户who [options] [files]示例:who i am2、创建用户sudo adduser 【name】例子:sudo adduser wangdaye指令英解:adduser = add user3.用户组方法一:使用groups命令例子:groups

2016-09-03 11:39:42 1613

原创 【Linux】基本概念操作

普通意义上的 Shell 就是可以接受用户输入命令的程序。它之所以被称作 Shell 是因为它隐藏了操作系统底层的细节。Shell 既是用户交互的界面,也是控制系统的脚本语言.常见的 Shell 有 bash,zsh,ksh,csh 等等1. 快捷键Tab ---------补全命令,补全目录,补全命令参数Ctrl+c ------强行终止当前程序Ctrl+d ------键盘输入

2016-09-03 10:35:17 321

原创 【OpenCV】单目摄像头标定

理论参考:OpenCV学习笔记(16)双目测距与三维重建的OpenCV实现问题集锦(一)图像获取与单目定标                    关于OpenCV的那些事——相机标定编程参考:OPENCV3.0 单目摄像头标定(使用官方自带的标定图片)

2016-08-24 10:23:19 2510 1

原创 二叉树打印成多行

从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/

2016-08-03 21:42:41 646

原创 跳台阶(斐波那契数列)

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。(类似于斐波那契数列)采用递归方法求解,时间复杂度为O(2^n).class Solution {public: int jumpFloor(int number) { if(number==1||number==2) return number;

2016-06-28 20:53:42 428

原创 复数四则运算--类模板实现

#includeusing namespace std;templateclass Complex {public: Complex(numtype a=0, numtype b=0) :x(a), y(b) {} Complex complex_add(Complex &); Complex complex_sub(Complex &); Complex complex_mul

2016-06-28 12:36:52 1057

原创 C++类实践——时间类

#include#include"time.h"using namespace std;bool Time::is_time() { if (hour 23 || minute 59 || dec 59) return false; return true;}void Time::show_time() { if (is_time()) cout << hour <<

2016-06-23 22:22:40 585

原创 Dijkstra算法

Dijkstra算法使用了贪心策略,解决了从某个源点到其余各顶点的最短路径问题,其时间复杂度为O(n^2).typedef int Pathmatrix[MAXVEX]; //用于存储最短路径下标的数组typedef int ShortPathTable[MAXVEX]; //用于存储各点最短路径的权值和//Dijkstra算法,求有向网G的V0顶点到其余顶点V的最短路径P[V]及带权长度D[V

2016-05-19 15:27:29 498

原创 图的创建与遍历

图的存储结构可以用邻接矩阵或者邻接表来表示,对于n个顶点和e条边的无向网图,采用邻接矩阵创建时,其时间复杂度为O(n+n^2+e),深度优先算法遍历时间复杂度为O(n^2);采用邻接表创建时,其时间复杂度为O(n+e),深度优先算法遍历时间复杂度为O(n+e)。以下是两种方式的代码实现。#include<iostream>#define INF 65535#define MAXVEX 100

2016-05-18 21:10:41 4038

资料合集计算机视觉编程机器人

计算机视觉

2018-07-08

Programming.Robots.with.ROS.A.Practical

2016-12-21

粒子滤波PF

很清楚的介绍了粒子滤波

2016-12-21

ROS导航功能包 程序

采用URDF文件构建机器人的3D模型,采用gmapping包实现了机器人工作环境的地图构建,这一节将利用amcl包和move_base包实现移动机器人的自主导航。http://blog.csdn.net/wangchao7281/article/details/53691351

2016-12-21

SQL.Server.2008编程入门经典

2016-09-22

如何做研究 MIT AI lab

2016-09-22

数字信号处理胡广书第二版答案

2016-09-22

三轴点胶机控制器-手持版说明书

三轴点胶机控制器-手持版说明书

2016-09-22

opencv2.4中文参考手册

2016-09-22

CVAVR用户手册(中文版)

CVAVR用户手册(中文版)CVAVR用户手册(中文版)

2013-04-24

空空如也

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

TA关注的人

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