德鲁周记
文章平均质量分 95
安德鲁JANKENPAN
本科毕业于北京交通大学,中国科学技术大学软件工程硕士在读
展开
-
SLAM--基于栅格和八叉树地图的Active SLAM(turtlebot_exploration_3d)
基于ORB-SLAM2的自主探索建图小车环境搭建软件系统自主探索(turtlebot_exploration_3d)我们学习研一每个人都会做有一个小的项目,研究生一开学就会让你选题,最近要结题了,所以一直再调试这个项目,这周终于有点结果了,所以给大家分享一下。首先介绍一下这个项目:硬件方面:小车的底座选用的是turtlrbot,相机用的kinectV1。软件方面:ubuntu是16.04版本的,是基于ROS做的开发。:环境搭建这个其实是最费时间的一个环节,这个大家多参考一些博客和软件对应的re原创 2021-06-20 21:32:46 · 1721 阅读 · 2 评论 -
德鲁周记15--一文刷通并查集(leetcode并查集题目集合)
并查集并查集并查集的介绍及引入并查集的三个基本组成未经过优化时经过优化带权并查集(进阶)基本定义例题列表并查集并查集是一种树形结构,主要用于解决元素的分组问题(比如有多少个帮派、有多少个朋友圈),它管理一系列不相交的集合。并查集主要实现以下几个功能查询某个元素属于哪个集合(属于哪一个连通分量)合并两个集合为一个大集合在一张无向图中维护节点之间的连通性,擅长动态维护许多具有传递性的关系并查集的介绍及引入并查集的重要思想,用集合中的一个元素来代表该集合初始状态,对于只有一个元素的集合,代原创 2021-05-20 20:18:04 · 135 阅读 · 0 评论 -
德鲁周记14--树状数组详解(Leetcode-307详解)
树状数组详解树状数组介绍如何建立树状数组树状数组的几种变式(区间更新,区间查询)单点更新、单点查询单点更新、区间查询区间更新、单点查询区间更新、区间查询最近在刷LC时遇到了这样一道题:这题我第一反应就是前缀和,修改时更新前缀和就行,但是一直超时,最好通过题解才知道了这一种数据结构–树状数组,今天也来给大家介绍一下。这里给出这道题的代码class NumArray {public: int n; vector<int> tree; vector<int&g原创 2021-02-25 14:31:14 · 161 阅读 · 0 评论 -
德鲁周记13--最小二乘、RANSAC与霍夫变换的区别
最小二乘、RANSAC与霍夫变换最小二乘与RANSAC最小二乘举个最简单的例子理解最小二乘最小二乘的cost function最小二乘法的求解RANSAC霍夫变换基本原理最近看orb-slam2代码和图像处理问题的时候发现了多种处理直线拟合的方法,特此也记录一下。分别是直线拟合的最小二乘法,RANSAC和直线检测的霍夫变换,其本质都是对直接的拟合。最小二乘与RANSAC普通最小二乘是保守派:在现有数据下,如何实现最优。是从一个整体误差最小的角度去考虑,尽量谁也不得罪。RANSAC是改革派:首先假设原创 2021-02-04 22:09:49 · 1756 阅读 · 0 评论 -
德鲁周记12--带有颜色追踪功能的turtlebot(ROS+反向投影+camshift)
带有颜色追踪功能的turtlebot主要技术和算法颜色识别和追踪模块反向投影算法camshift控制板块(ROS)代码算法模块控制模块这个是我前段时间完成的基于turtlebot实现跟随特定颜色的物体实现自主移动的项目,主要目的是为了学习熟悉一下ROS和turtlebot,然后也是基于图像的一个处理方便后续的vslam的应用。运行成功后,turtlebot会跟随相机中的目标实现追踪(自主的转向和移动)。下面来讲一下内部的主要算法:主要技术和算法算法主要是追踪模块和控制模块,都是基于ROS所以可以依靠t原创 2021-01-10 23:49:08 · 589 阅读 · 2 评论 -
德鲁周记11--Kaggle比赛 Bike Sharing Demand
Kaggle Bike Sharing Demand 报告文章目录Kaggle Bike Sharing Demand 报告一、问题定义二、获取数据三、研究数据四、准备数据五、模型研究六、模型融合一、问题定义该问题来源于kaggle,这是一个关于共享单车租赁预测的题目,通过对数据的预测,可以观测到共享单车在某个时间段的租赁数量,如果预测值和实际租赁值存在很大差异,就应该去调查情况,从而保证共享单车的正常运营。训练集提供了一个月的前19天的数据和使用情况,提供的数据集包括日期、季节、节假日、工作日、天气原创 2020-12-30 17:15:18 · 1289 阅读 · 3 评论 -
德鲁周记10--15天从0开始刷动态规划(leetcode动态规划题目类型总结)
动态规划什么是动态规划题目类型基本一维动态规划基本二维动态规划分割类问题子序列问题背包问题字符串编辑问题股票问题什么是动态规划这里我们引用维建百科的描述:“动态规划在查找有很多重叠子问题的情况的最优解时有效。它将问题重新组合成子问题,为了避免多次解决这些子问题,它们的结果都是逐渐被计算并被保存,从简单的问题直到整个问题都被解决。因此,动态规划保存递归的结果,因而不会在解决同样的问题上花费时间。动态规划只能应用于有最优子结构的问题。最优子结构的意思是局部最优解能决定全局最优解(对有些问题这个要求并不能完全原创 2020-12-20 16:44:12 · 253 阅读 · 0 评论 -
德鲁周记09--Kaggle比赛 TMDB Box Office Prediction
Kaggle TMDB Box Office Prediction 报告一.问题定义:二.获取数据:三.研究数据:四.准备数据五.模型研究六.模型微调和模型融合一.问题定义:该问题来源于kaggle,在这个世界上,2018年电影收入估计达到417亿美元,电影业比以往任何时候都更受欢迎。但是什么电影票房收入最高?一个导演有多重要?还是预算?本题将通过电影数据库中7000多部电影的数据,以尝试预测它们在全球的总票房收入。提供的数据点包括演员、剧组、剧情关键词、预算、海报、发行日期、语言、制作公司和国家。该原创 2020-12-14 19:49:14 · 770 阅读 · 0 评论 -
德鲁周记08--Leetcode回溯算法题目类型总结
回溯算法什么是回溯法回溯法解决的问题回溯法的解题办法思维代码模板回溯法的对应题目本文参考自公众号代码随想录什么是回溯法回溯法也可以叫做回溯搜索法,它是一种搜索的方式。我理解的回溯就是对N叉树深度搜索的过程,回溯法解决的问题都是抽象为树状结构来解决 。(这也是思维层面最重要的过程,一旦画出了抽象树,剩下就是代码的问题了),因为回溯法解决的都是在集合中递归查找子集,集合的大小就构成了树的宽度,递归的深度,都构成的树的深度。回溯是递归的副产品,只要有递归就会有回溯。递归就要有终止条件,所以必然是一颗高度有原创 2020-12-01 15:15:06 · 127 阅读 · 0 评论 -
德鲁周记07--千奇百怪的排序算法(排序算法总结)持续更新补充
千奇百怪的排序算法快速排序归并排序插入排序冒泡排序选择排序快速选择排序桶排序荷兰国旗问题排序快速排序C++可以直接通过std::sort()快速排序,但是能够手写快排也是一件很重要的基础。void quick_sort(vector<int> &nums,int l,int r){ if(l+1>=r) { return; } int first=l,last=r-1,key=nums[first]; while(first<last) { whil原创 2020-11-16 16:20:27 · 280 阅读 · 0 评论 -
德鲁周记06--VSLAM从入门到入坟
VSLAM入门介绍基础知识三维空间的刚体运动欧式变换四元数欧拉角李群与李代数线性拟合相机单目相机双目相机深度相机基本框架视觉里程计特征匹配ORB直接法对比后端优化EKFBA(Bundle Adjustment)回环检测建图最后说点因为研究生的工程实践我选择了这个方向,这两周一直在学VSLAM,看完了高翔老师的视频和《视觉SLAM十四讲》,强烈推荐!!!入门必看,神书!!当然我第一遍自我感觉是肯定没看太懂的,只能说知道了一个框架和目前的一些主流算法。正好下周要开题,要做PPT所以也写一篇博客记录一下,算是一原创 2020-11-08 14:51:26 · 512 阅读 · 0 评论 -
德鲁周记05--C++ enum 用法(附:数据库自制思维导图)
C++ enum 用法(附:数据库自制思维导图)步骤(一)——枚举量的声明和定义步骤(二)——自定义枚举量的值步骤(三)——枚举的取值范围简述强类型枚举附:数据库自制思维导图转载博客地址: https://blog.csdn.net/bruce_0712/article/details/54984371.步骤(一)——枚举量的声明和定义众所周知,C/C++语言可以使用#define和const创建符号常量,而使用enum工具不仅能够创建符号常量,还能定义新的数据类型,但是必须按照一定的规则进行,下面我原创 2020-11-01 21:29:15 · 149 阅读 · 0 评论 -
德鲁周记04--QT折线图(HDF5文件读取官方文档,Qchart框选放大,多Y轴,OpenGL画曲线莫名BUG)
QT多功能折线图需求具体要求难点解决方法从HDF5中读取数据(double和string)框选放大其他BUG(折线阻挡了chartview的鼠标事件)需求实习末期接到一个项目,要我从后台发过来的HDF5文件中读取数据将其画成图表。一听,简单啊,Qchart画就好了啊,上手开干。一天后,HDF5是啥啊,咋读数据呢?怎么读字符串呢?于是开始全网找攻略,我发现非常非常的少,还好最后找到了文档,慢慢摸索终于解决了问题具体要求具体要求:从中台读取已经处理过用HDF5保存的一维数组,其中包括每个一维数据的名字集原创 2020-11-01 20:46:15 · 647 阅读 · 0 评论 -
德鲁周记03--机器学习项目初探(房价预测)
德鲁周记03--机器学习项目初探(房价预测)项目介绍机器学习流程获取数据研究数据准备数据研究模型微调模型项目介绍这周刷的leetcode比较简单,所以没有太多特别值得记录的点,但是这周学校的人工智能课的大作业我却是收获满满,让我从0到1体会了一个机器学习的项目,所以和大家分享一下,这个项目也在下面这本《sklearn与tensorflow机器学习实用指南》里面 如果需要电子版的书可以私聊我。机器学习流程这里就开门见山直接介绍一下一个项目代码的流程,就不说什么前期的需求分享,划定问题选择性能指标了,原创 2020-10-18 22:23:31 · 146 阅读 · 0 评论 -
德鲁周记02 --Leetcode二分查找题目类型总结
德鲁周记02 --Leetcode二分查找题目类型总结二分查找Leetcode题目1552. 两球之间的磁力LCP 12. 小张刷题计划410. 分割数组的最大值二分查找上周因为国庆放假,家人来学校看我所以没有太多时间学习,就把在leetcode上刷到的二分查找的三到类型题和大家分享一下。二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。算法查找过程很简单,相信大家都玩过猜数的游戏,玩家说猜一个数,游戏会告诉你大了还是小了,根据这个再继续猜数。原理类似,这里就不再介绍了原创 2020-10-11 21:56:36 · 1614 阅读 · 0 评论 -
德鲁周记01 -- STL 中map和unordered_map区别,vector添加元素push_back()和emplace_back()区别
德鲁周记01 -- STL 中map和unordered_map区别 vector添加元素push_back和emplace_back区别map和unordered_map区别vector添加元素push_back()和emplace_back()区别map和unordered_map区别这周在刷leetcode的时候发现高赞题解的代码和我几乎一模一样,但性能却比我好很多,唯一的区别就是他用了一个unordered_map,而我用的是map,于是我专门去研究了一下这两个容器的差别。内部实现机理不同:原创 2020-09-27 22:51:35 · 1702 阅读 · 0 评论