- 博客(74)
- 资源 (1)
- 收藏
- 关注
原创 leetcode解题模板 ——双指针
1.模板/*(1)定义两个边界指针*/int left = 0;//左边界int right = num.size() - 1;//右边界while(left<right){/*执行操作*/}/*(2)定义两个快慢指针*/ListNode*s = head;//慢指针ListNode*f = head->next;//快指针 while (s != f){/*执行操作*/}2.实战leetcode 42. 接雨水class Solution {public:
2020-12-13 12:17:55
428
原创 leetcode解题模板 —— 二分查找
1.模板 vector<int>& nums int left = 0;//左边界 int right = nums.size()-1;//右边界 int mid = 0; while(left <= right) { mid = (left + right) / 2; if(target == nums[mid]) {/*操作*/ } if(
2020-12-13 11:49:33
385
原创 leetcode解题模板 —— 树的遍历
1.二叉树前序遍历模板:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ void order(TreeNode* root) { if (root ==
2020-12-05 21:39:18
431
原创 Git常用指令
1. 创建版本库(1)初始化git init(2)查看.git是否成功创建ls -ah(3)把文件添加到版本库git add 文件名(4)把文件提交到仓库git commit -m "本次提交的说明"2.版本管理2.1 版本回退(1)历史记录查看git loggit log --pretty=oneline(2)回退一个版本git reset --hard ...
2019-07-06 11:01:17
293
原创 百度Apollo学习笔记(5)——感知
1.感知概貌1.1感知技术模块小感知:检测、(语言)分割、(属性)识别、跟踪、融合大感知:标定、定位、障碍物行为预测1.2感知多个维度Sensor维度(Input):Lidar、Camera、Radar…Targer维度(Output):障碍物、车道线和道路边界线、红绿灯…问题空间维度:2D算法、3D算法…机器视觉维度:模型计算、几何计算机器学习维度:深度学习(数据驱动)、...
2019-06-12 16:37:44
3150
原创 百度Apollo学习笔记(4)——ROS介绍
1.选择ROS原因开发工具包:完整的包管理和工程结构;庞大的基础库;多语言接口支持计算调度模型:消息驱动的异步运行模型;抽象的P2P通信接口;自定义的消息格式调试工具:可视化的调试工具;消息查看、存储、回放工具2.ROS常用命令rosrun package_name node_name //启动一个节点rosnode list //查看激活的节点rosnode info nod...
2019-06-12 10:29:49
1424
原创 SLAM数据集聚合
1.TUM数据集 数据集包含一些室内的序列,在不同的纹理下,不同的光照和不同的结构条件,从RGB-D传感器采集到的数据中分别去评估物体的重建和SLAM/视觉里程计的性能。TUM提供很多数据集,从各个有利位置捕获对象,每个条目中包含图像序列、相应的轮廓和完整的校准参数。1.1常用RGBD数据集下载测评工具下载使用方法在线测评1.2 rtabmap使用TUM数据集使用方法一使...
2019-06-07 13:47:30
932
1
原创 百度Apollo学习笔记(2)——高精地图
1.高精地图和自动驾驶1.1 自动驾驶分级标准 SAE将自动驾驶技术分为L0-L5共六个等级。L0代表没有自动驾驶加入的传统人类驾驶,L1-L5则随自动驾驶的成熟程度进行了分级。L0: 就是人工驾驶,完全由驾驶员来进行操作驾驶汽车,包括制动、转向、油门以及动力传动。需要由驾驶员判断危险性。L1: 汽车能给驾驶员一些支援(如车道保持系统、自动制动系统还有自适应巡航功能)L2: 部分...
2019-05-31 16:35:28
5286
1
原创 百度Apollo学习笔记(1)——定位技术
1.无人车的定位是什么 无人车的定位就是确定无人车相当于一个坐标系的位姿。坐标系包括了全局坐标系和局部坐标系位姿包括了6个自由度(如下图所示)2.定位系统指标要求项目指标理想值精度误差均值<10cm鲁棒性最大误差<30cm场景覆盖场景全天候3.无人车定位方法基于电子信号定位(GNSS、Wifi、Cell pho...
2019-05-27 21:47:17
5709
原创 ROS笔记之Gazebo机器人仿真(八)—— 机器人导航避障仿真
1.引言 这章我们将介绍如何在Gazebo中实现机器人导航避障的仿真。2.准备工作(1)安装depthimage_to_laserscan功能包,主要功能是将深度图像转化为激光雷达数据。(2)安装gmapping功能包。(3)安装navigation功能包。3.导航避障仿真(1)在launch文件夹下创建gmapping_nav.launch<?xml version="1...
2019-02-06 12:38:42
11981
2
原创 ROS笔记之Gazebo机器人仿真(七)—— 机器人gmapping建图仿真
1.引言 通过前面几章,我们在Gazebo下搭建好和仿真环境和机器人模型,这章我们将来实现Gazebo下的机器人gmapping的建图仿真。本文采用的方案是通过将RGB-D相机采集到的深度图像转换为激光雷达数据,然后采用gmapping算法实现建图。(若采用的是激光雷达传感器则直接通过gmapping算法实现建图)2.准备工作(1)安装depthimage_to_laserscan功能包,...
2019-02-05 21:00:19
10596
3
原创 ROS笔记之Gazebo机器人仿真(四)——Rviz及Gazebo下机器人模型显示
1.引言 上一章中我们成功导出了URDF文件,这章中我们将学习如何在Rviz和Gazebo下显示我们创建的三维模型。2.预备 首先,我们需要对导出的URDF文件进行下修改。(1)package.xml文件中将“me2email.com”改为“me@email.com”&amp;lt;package&amp;gt; &amp;lt;name&amp;gt;smartcar&amp;lt;/name&a
2019-01-30 22:22:44
18346
41
原创 ROS笔记之Gazebo机器人仿真(二)——Soildworks搭建机器人模型
1.引言 机器人的模型是通过URDF文件进行描述,具体说明可以参考URDF。但对于一些复杂的机器人,通过直接编写URDF文件就比较繁琐,这里我们介绍一种通过专业的三维建图软件Soildworks构建模型然后通过插件导出URDF文件。这章我们先介绍通过Soildworks搭建机器人小车模型,通过案例熟悉下Soildworks的使用。Soildworks的特点如下: Solidworks软件...
2019-01-29 14:02:04
15873
7
原创 ROS笔记之Gazebo机器人仿真(一)——目录
引言 Gazebo是一个很强大的物理仿真平台,能够对环境、传感器、物体的物理性质(如:重力、阻力等)进行仿真。本系列教程将通过一个案例从机器人模型搭建、传感器插件添加、仿真环境搭建、建图和导航避障等整个。目录...
2019-01-29 13:56:43
13439
2
原创 ROS笔记之常见问题汇总(持续更新)
问题1输入指令:sudo rosdep init报错信息:ERROR: default sources list file already exists: /etc/ros/rosdep/sources.list.d/20-default.listPlease delete if you wish to re-initialize解决办法:sudo rm /etc/ros/rosd...
2018-11-28 15:41:27
7251
原创 ROS笔记之Gazebo插件
在Gazebo仿真中常需要在URDF文件中添加相关标签来来仿真机器人的传感器、执行器的特性。现将常用插件总结如下(使用时根据自己情况对参数进行修改):1.运动控制1.1.差速驱动插件&amp;amp;lt;gazebo&amp;amp;gt; &amp;amp;lt;plugin name=&amp;quot;differential_drive_controller&amp;quot; filename=
2018-11-08 11:28:48
7610
1
原创 探秘SLAM之ORB-SLAM
1.背景 ORB-SLAM是西班牙Zaragoza大学的Raul Mur-Artal编写的视觉SLAM系统。第一个版本主要用于单目SLAM,而第二个版本支持单目、双目和RGBD三种接口。ORB-SLAM是一个完整的SLAM系统,包括视觉里程计、跟踪、回环检测,是一个学习slam很好的开源项目。2.流程 ORB-SLAM整体流程如下图所示: ...
2018-08-31 20:32:57
1417
原创 C++ STL常用容器(一)
一.vector 使用时需要包含头文件:#include&amp;amp;amp;lt;vector&amp;amp;amp;gt;;1.初始化(1)vector&amp;amp;amp;lt;int&amp;amp;amp;gt; vec(16); //定义了已知长度16的vector(2)vector&amp;amp;amp;lt;int&amp;amp;amp;gt; vec
2018-08-24 22:12:11
415
原创 探秘SLAM之Homography,Essential 和 Fundamental matrix
一.Homography 单应 ( homography )也叫射影映射,保线变换或射影变换。 在空间中同一平面的任意两幅图像通过单应性关联在一起(假定是针孔相机)。假设在一个图中的点xxx的坐标是(u,v,1)(u,v,1)(u,v,1),与其相对应匹配点x′x′x'的坐标是(u′,v′,1)(u′,v′,1)(u',v',1),单应性矩阵HHH。则有x=Hx′x=Hx′x=Hx',...
2018-08-02 15:46:37
5076
原创 探秘SLAM之RANSAC算法
探秘SLAM之RANSAC算法一.初识RANSAC算法 随机抽样一致算法**(RANdom SAmple Consensus),简称**RANSAC算法 ,采用迭代的方式从一组包含离群的被观测数据中估算出数学模型的参数。其广泛应用在计算机视觉领域和数学领域,例如直线拟合、平面拟合、计算图像或点云间的变换矩阵、计算基础矩阵等方面。 RANSAC算法基本思想:...
2018-08-01 10:08:39
2987
原创 Multiple View Geometry(多视图几何)学习笔记(25)— 消影点与消影线
消影点与消影线 透视投影的一个显著特征是延伸至无穷远的物体的图像可能出现在有限范围。1.消影点 几何上一条世界直线的消影点由平行于该直线并过摄像机中心的射线与图像平面的交点得到。因此消影点仅依赖于直线的方向,而与其位置无关。如果世界直线平行于图像平面,那么消影点在图像的无穷远处。该世界直线可以用X(λ)=A+λDX(λ)=A+λDX(\lam...
2018-07-12 14:10:35
6842
1
原创 Multiple View Geometry(多视图几何)学习笔记(23)—射影摄像机对二次曲面的作用&摄像机中心的重要性
射影摄像机对二次曲面的作用1.光滑曲面的图像定义1: 轮廓生成元ΓΓ\Gamma 定义为影像射线与光滑曲面SSS 的所有切点XXX的集合。在图像上,与它对应的视在轮廓线γγγ 是XXX 的图像点xxx 的集合,即γγγ 是ΓΓ\Gamma 的图像。轮廓生成元ΓΓ\Gamma 仅取决于摄像机中心与曲面的相对位置,而与图像平面无关。视在轮廓线γγγ 由图像平面与轮廓生成...
2018-07-04 22:34:05
703
原创 Multiple View Geometry(多视图几何)学习笔记(22)—射影摄像机对平面、直线和二次曲线的作用
射影摄像机对平面、直线和二次曲线的作用1.对平面的作用
2018-07-02 19:56:08
667
原创 走进数据结构和算法(c++版)(20)——排序(3)
排序(3) 这一章中我们将主要介绍下快速排序,并对这几章的排序算法进行总结。1.快速排序 快速排序( Quick Sort) 的基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的。#include&lt;iostream&gt;#include&lt;vect...
2018-06-30 22:20:10
564
原创 走进数据结构和算法(c++版)(19)——排序(2)
排序(2) 这一章中我们继续来介绍排序算法。1.希尔排序 先来看下希尔排序代码如下:#include&amp;lt;iostream&amp;gt;#include&amp;lt;vector&amp;gt;using namespace std;void SellSort(vector&amp;lt;int&amp;gt;&amp;amp; vec);//希尔排序
2018-06-29 20:46:04
424
原创 走进数据结构和算法(c++版)(18)——排序(1)
排序(1) 排序是我们经常需要面对的问题。我们先来看下排序的定义: 假设含有nnn 个记录的序列为{r1,r2,...,rn}{r1,r2,...,rn}\left \{ r_1, r_2,... ,r_n \right \},其相应的关键字分别为{k1,k2,...,kn}{k1,k2,...,kn}\left \{ k_1, k_2,... ,k_n \right \},需确定1...
2018-06-28 17:11:36
483
原创 走进数据结构和算法(c++版)(16)——平衡二叉树( AVL 树)
平衡二叉树( AVL 树) 在上面一章中我们介绍了二叉排序树,它是一种既方便查找也有利于插入和删除的方法。但是当输入的排好序数据组时,二叉排序树为斜树,不利于查找效率的稳定性差。现在我们介绍一种高度平衡的二叉排序树——平衡二叉树( AVL 树)。 平衡二叉树,是一种二叉排序树,其中每一个节点的左子树和右子树的高度差至多等于1。 将二叉树上结点的左子树深度减去右子树深度的值称为...
2018-06-26 20:26:23
651
原创 走进数据结构和算法(c++版)(14)——查找
查找 在生活中,我们经常需要进行查找操作,例如从一本字典中查找一个单词,从图书馆的书架上找到我们需要的书。在数据结构中我们把由同一类型的数据元素(或记录)构成的集合叫做查找表( Search Table)。关键字(Key) 是数据元素中某个数据项的值,又称为键值。查找( Searchìng )就是根据给定的某个值, 在查找表中确定一个其关键字等于给定值的数据元素(或记录)。 查找表按照...
2018-06-20 22:09:32
882
原创 Multiple View Geometry(多视图几何)学习笔记(21)—计算摄像机矩阵P
计算摄像机矩阵P1.基本方程(0TwiXTi−wiXTi0TyiXTi−xiXTi)⎛⎝⎜P1P2P3⎞⎠⎟=0(0T−wiXiTyiXiTwiXiT0T−xiXiT)(P1P2P3)=0\begin{pmatrix}0^T & -w_iX_i^T &y_iX_i^T \\ w_iX_i^T & 0^T & -x_iX_i^T\end{pmatri...
2018-06-20 16:28:09
928
Soildworks搭建机器人小车模型
2019-01-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人