自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (2)
  • 收藏
  • 关注

原创 LeetCode1-贪心算法笔记

1.题目描述一群孩子站成一排,每一个孩子有自己的评分。现在需要给这些孩子发糖果,规则是如果一个孩子的评分比自己身旁的一个孩子要高,那么这个孩子就必须得到比身旁孩子更多的糖果;所有孩子至少要有一个糖果。求解最少需要多少个糖果。输入输出样例输入是一个数组,表示孩子的评分。输出是最少糖果的数量。Input: [1,0,2]Output: 5在这个样例中,最少的糖果分法是 [2,1,2]。思路:贪心算法只考虑最近邻,因此需要从左往右遍历,大的+1,再从右往左遍历,大的+1#include <

2021-05-22 10:06:00 255 2

原创 BA-NET论文总结

摘要输入图像–>基本深度图(end to end)深度图+BA优化–>基础深度图线性叠加1.介绍几乎所有的SfM算法用BA优化场景结构和摄像机运动:LM最小化几何误差或光度误差深度学习技术解决SfM学习前馈多层感知器(MLP)预测LM算法中的阻尼因子BA层最小化CNN特征图之间的距离,输入CNN特征图,优化场景结构和摄像机运动标准的编码器-解码器(可以联合训练整个网络):任意输入图像生成一组基础深度图,并将结果深度图表示为这些基础深度图的线性组合编码器-解码器系数在BA层中与相

2021-01-04 17:17:52 724

原创 ORB-SLAM总结

Abstract本文介绍了ORB-SLAM,这是一种基于特征的单目SLAM系统,可在大小型室内外环境中实时运行。该系统对严重的运动模糊具有鲁棒性,可实现较宽的基线回环和重定位,并包括全自动的初始化。我们基于近年来的出色算法,从头开始设计了一个新颖的系统,该系统对所有SLAM任务使用相同的特征 :跟踪,映射,重定位和回环。利用优胜劣汰的策略选择关键帧和点,从而有出色的鲁棒性,并生成了紧凑的跟踪地图,该地图仅在场景内容发生变化时才会增长,从而实现持续运行。我们提供了来自最受欢迎数据集的27个序列的详尽评估。与

2020-09-27 17:30:42 11938 3

原创 Ubuntu版本 对应 ros版本

Ubuntu版本ros版本Ubuntu18.04melodicUbuntu16.04kineticUbuntu14.04indigo

2020-09-25 10:37:23 7107 1

原创 压缩、解压缩命令

tar命令1)压缩为.tar格式tar -cvf xxx.tar source2)压缩为.tar.gz格式tar -zcvf xxx.tar.gz source2、解压缩命令1)解压缩到当前文件夹tar -xvf xxx2)解压缩到指定目录tar zxvf xxx -C 指定目录c:创建压缩包z:gzip压缩x:解压缩v:显示压缩、解压的执行过程f:使用档案的名字(必须)-C:解压到指定目录zip命令1、压缩命令zip -r xxx.zip source [ source

2020-09-25 10:15:57 2340

原创 VINS-Mono论文总结

Abstract由相机和低成本惯性测量单元(IMU)组成的单目视觉惯性系统:VINS,是度量六自由度(DOF)状态估计的最小传感器组件。然而,不能直接测量距离,在IMU处理,估计器初始化,外部校准和非线性优化方面带来了重大挑战。在这项工作中,我们介绍了VINSMono:一种功能强大且用途广泛的单目视惯状态估计器。我们的方法从用于估计器初始化和失败恢复的robust的过程开始。是一种紧耦合的,基于非线性优化的方法,通过融合IMU预积分值和特征观测值来获得高精度的视惯里程计。环路检测模块与紧耦合的公式相.

2020-09-22 15:52:25 1710

原创 ORB-SLAM2论文总结

AbstractORB-SLAM2 适用于单目,双目和RGB-D相机,包括闭环、重定位等功能,可用于室内环境、工业环境、飞行的无人机、行驶的汽车等Introduction单目相机:无法观察到深度信息,因此地图的比例和估计的轨迹是未知的。并且 system bootstrapping 需要多视图或过滤技术来生成初始地图(无法从第一帧开始triangulation)。另外,单目SLAM可能会发生 scale drift,而且过程中进行纯旋转可能会估计失败。这些问题可以通过使用双目或RGB-D摄像机解决

2020-09-19 20:03:35 2497

原创 SLAM 激光里程计

里程计面临的挑战:6 DOF,精确,无偏的里程计信息实时高速,硬件结构小巧对抖动等鲁棒对传感器限制(高速公路等重复度高的场景精确度低)鲁棒Point-to-point ICP步骤:扫描两个相关点的集合做最近匹配使用牛顿法或者LM迭代优化缺陷:精度高度依赖于初始化情况图中的错误匹配没有办法remove,于是有人提出了Point-to-plane ICPPoint-to-plane ICP扫描两个相关点的集合做最近匹配计算集合中的点的法向量使用牛顿法或者LM迭代优化

2020-09-16 16:26:55 7740 1

原创 SLAM 视觉里程计和回路检测

综述视觉里程计:通过连续关联图像来进行位置和方向的估计1. 基于特征点的方法:构建:稀疏点云方法:世界坐标系->相机坐标系->图像平面,投影+外参PTAM、ORB-SLAM2. 基于光测误差构建:(半)稠密点云方法:投影+光测度误差LSD-SLAM、DVOFeature-BasedDirect直接把两个图片相减,使其差最小,省略特征提取匹配的过程特征法特征点云的初始化:Mono:随机初始化(EKF SLAM 会进行update)local SfM :

2020-09-15 10:38:17 477

原创 SLAM的传感器

SLAM传感器分类SLAM:Simultaneous Localization And Mapping获取传感器的信息来进行定位和建图雷达传感器:2D(SICK,HOKUYO,…),3D(无人车等)视觉传感器:单目相机,红外摄像机(夜间等)direct time of flight imagers:打出平行光,没有遇到物体平行光平行,遇到物体平行光轨迹发生改变phase shift time of fight imagers:单目相机+红外stereo cameras:双目相机声呐

2020-09-13 17:47:01 1171

原创 SLAM基础(三) --图优化

2020-09-13 10:31:28 2242

原创 ROS笔记(十八)Karto Hector

Karto1. 计算图Karto SLAM和Gmapping SLAM在工作方式上类似:输入的Topic同样是/tf和/scan,其中/tf里有odom_frame和laser_frame,laser_frame和base_frame,与GmappingSLAM的完全一样。唯一不同的是输出:slam_katro的输出比slam_gmapping的车、输出少了一个位子位姿估计的分散程度。2. 服务与Gmapping相同,提供/dynamic_map服务3. 参数test/param/katro

2020-09-10 15:07:35 649

原创 PoseNet论文总结

PoseNet: A Convolutional Network for Real-Time 6-DOF Camera Relocalization论文总结1.Introduction几个例子:top:原图middle:根据预测的相机pose重建的图bottom:原图和重建的图重合The algorithm is simple in the fact that it consists of a convolutional neural network(convnet) trained end

2020-08-19 17:41:33 2954 1

原创 SLAM基础(二)--滤波器

滤波器1 随机状态和估计随机过程:stochastic process随机过程 = 时间 + 不确定性(期望、方差):概率随机过程:例如 IMU 测重力加速度,事件为X(t),读数为w,则随机过程就是X(t,w),时间和读数的关系加速度的变化:随时间变化------------>随机过程随机变量:例如正态分布:概率:研究随机事件的数学统计特性 P(X)条件概率:机器人的初始位置:P(B)下一步:P(X|B)P(X) = P(X|B) × P(B)假设前面已经走

2020-08-10 17:45:39 678

原创 SLAM基础(一) --坐标系、刚体运动、李群李代数

坐标系、刚体运动、李群李代数1 欧式坐标系和刚体姿态表示body frame:本体坐标系,不进行旋转平移等(本体坐标系定义了旋转平移等动作)world frame:世界坐标系例:无人机坐标系是本体坐标系,vision frame是相机视野的地图坐标系(即world frame)通过相机看到的vision frame中的地图信息,通过相机视野得到相机的位姿(即相机的外参:相机看到的世界和其自身的转换关系),再通过相机与无人机之间的位置关系转换成无人机在世界坐标系下的位姿world fram

2020-08-09 19:01:48 2172 1

原创 CMake实践(二)

让 HelloWorld 看起来更像一个工程让前面的 Hello World 更像一个工程,我们需要做的是:添加一个子目录src,放置工程源代码添加一个子目录doc,放置这个工程的文档 hello.txt在工程目录添加一个COPYRIGHT,README工程目录添加一个runhello.sh脚本,用来调用 hello 二进制将构建后的目标文件放入构建目录的bin子目录安装这些文件: 将 hello 二进制与 runhello.sh 安装至/usr/bin,将 doc 目录的内容以及 COPY

2020-08-08 18:31:59 399

原创 CMake实践(一) CMake介绍

CMake介绍cmake 是 kitware 公司以及一些开源开发者在开发几个工具套件(VTK)的过程中衍生品,最终形成体系,成为一个独立的开放源代码项目。项目的诞生时间是 2001 年。其官方网站是 www.cmake.org,可以通过访问官方网站获得更多关于 cmake 的信息。cmake的流行其实要归功于 KDE4 的开发(似乎跟当年的 svn 一样,KDE 将代码仓库从 CVS 迁移到SVN,同时证明了 SVN 管理大型项目的可用性),在 KDE 开发者使用了近 10 年 autotools之后,

2020-08-08 15:50:22 1601

原创 ROS学习笔记(十七) SLAM介绍(一)

SLAM介绍(一)地图ROS中的地图就是一张普通的灰度图像,通常为pgm格式,黑色像素表示障碍物,白色像素表示可行区域,灰色是未探索的区域。SLAM建图中,可以在RViz看到一张地图北极爱呢里起来的过程,类似于一块块拼图被拼接成一张完整的地图。这张地图对于我们定位、路径规划都是不可缺少的信息。地图在ROS中是以Topic的形式维护和呈现的,这个Topic就是/map,消息类型是nav_msgs/OccupancuGrid。锁存/map中实际储存的是一张图片,为了减少开销,这个Topic往往采用锁

2020-08-08 11:58:52 2304 1

原创 ROS学习笔记(十六) 统一机器人描述格式URDF

统一机器人描述格式URDFURDF(Unified Robot DScription Fornat)机器人统一描述格式(XML格式)。语法规范:参考链接:http://wiki.ros.org/urdf/XMLURDF组件,是由不同的功能包和组件组成:urdf_paser_plugin是URDF基础的插件,衍生出了urdfdom(面向URDF文件)collar_parser(面向相互文件)(\qquad其中urdf_parser和urder_interface已经在hydro之后的版本中去除了)。

2020-08-07 10:17:33 941

原创 ROS学习笔记(十五)TF介绍(三)

TF介绍(三)tf in pythontf中有C++接口,也有Python接口,tf在Python中的具体实现相对比较简单。数据类型:TF的相关数据类型,向量、点、四元数。矩阵的=都可以表示成类似于数组的形式(Tuple、List、Numpy Array表示)。如:t = (1.0,1.5,1.0) #平移q = [1,0,0,0] #四元数m = numpy.identity(3) #旋转矩阵t平移数据用Tuple表示的,也可以用List表示(t = [1.0,1.5,1.0]),也能

2020-08-06 11:15:20 2831 2

原创 ROS学习笔记(十四) TF介绍(二)

TF介绍(二)tf in c++C++提供的TF数据类型:名称数据类型向量tf::Vector3点tf::Point四元数tf::Quaternion3*3矩阵(旋转矩阵)tf::Matrix3x3位姿tf::pose变换tf::Transform带时间戳的以上类型tf::Stamped带时间戳的变换tf::StampedTransform注意tf::StampedTransform 和 geometry_msgs/T

2020-08-05 16:17:08 3452

原创 ROS学习笔记(十三) TF介绍(一)

TF介绍(一)TF:机器人不停部位之间的坐标转换。坐标转换包括位置和姿态两方面,ROS中的tf是一个让用户随时记录多个坐标系的软件包。tf保持缓存的树形结构中的坐标系之间的关系,并允许用户在任何期望的时间点在任何两个坐标系之间转换点、矢量等。tf可以被当做是一种标准规范,定义了坐标转换的数据格式和数据结构。tf本质是树状的数据结构(通常称之为tf tree),可以看成是一个topic:/tf,message保存的是tf tree的数据结构格式,维护了整个机器人(甚至是地图)的坐标转换关系。也可以看做pa

2020-08-04 10:34:14 3895

原创 ROS学习笔记(十二) roscpp介绍(二)

roscpp介绍(一)service利用Service通信的节点:创建一个节点,发布模拟的gps信息,另一个接收和计算距离原点的距离。7.3.1 srv文件建立Greeting.srv的服务文件:test/string name #短横线上边部分是服务请求的数据int32 age— #短横线下面是服务回传的内容string feedback然后修改CMakeLists.txt文件。ROS的catkin编译系统会将你自定义的msg、srv(甚至还有action)文件自动编译构建,生成对应的C

2020-08-03 22:11:40 773

原创 ROS学习笔记(十一) rospy介绍(一)

rospy介绍(一)rospy是Python版本的ROS客户端库,提供了Python程序需要的接口(rospy就是一个Python模块),位于/opt/ros/kineetic/lib/python2.7/dist-packages/rospy。rospy和roscpprospy功能与roscpp相似,都有关于node、topic、service、param、time相关操作,也有一些区别:rospy没有NodeHandle。创建publisher、subscriber等操作被直接封装成了ros

2020-08-03 16:14:15 25254 5

原创 ROS学习笔记(十) roscpp介绍(四)

roscpp介绍(三)时钟ROS中计算机器人移动距离、设定程序的等待时间、设定计时器等,都需要时钟。roscpp中有两种表示时间的方法:一种是时刻(ros::Time),一种是时长(ros::Duration).TIme和Duration都有相同的表示方法:...//Time和Duration都由秒和纳秒组成int32 secint32 nsec...要使用TIme和Duration,需要#include<ros/time.h>和#include<ros/duratio

2020-08-02 09:37:35 509

原创 ROS学习笔记(九) roscpp介绍(三)

roscpp介绍(三)param in roscpproscpp提供了两套关于param的API,一套在ros::paramnamespace下,另一套在ros::NodeHandle下,操作都一样,用哪套都可以。示例:文件位置:test/param.cpp#include<ros/ros.h>int main(int argc,char** argv){ ros::init(argc,argv,,"param"); ros::NodeHandle nh; int para

2020-08-01 16:28:31 422

原创 cp: 略过目录

cp: 略过目录解决:cp -r原因:-r 递归复制目录及其子目录内的所有内容cp --help查看

2020-08-01 16:17:14 429

原创 ROS学习笔记(八) roscpp介绍(二)

roscpp介绍(二)Serviceservice是请求-反馈通信机制,消息的传输是双向的,有反馈的,service的传输与topic不同,不是以固定的频率传输,不连续,而是在需要的时候向服务器发起请求。请求的一方为客户端(Client),提供服务的一方为服务器端(Server)。1. 创建Service服务创建test/Greeting.srv文件string name //短横线上边部分是服务请求的数据int32 age ---string feedback //短横线下面是服务回传的内

2020-07-31 22:16:18 387

原创 error: ‘__s_getMD5Sum’ is not a member of ‘boost::shared_ptr<const test::gps_<std::allocator<void>

error: ‘_s_getMD5Sum’ is not a member of ‘boost::shared_ptr<const test::gps<std::allocator > >’ return M::__s_getMD5Sum().c_str();解决:根据此警告,将ROS_INFO("listener : distance to origin = %f,state = %s",distance.data,msg->state);改成ROS_INFO("lis

2020-07-31 20:09:49 2308 1

原创 ROS学习笔记(七) roscpp介绍(一)

roscpp1.Client Library 简介lient Library简介ROS为机器人开发者们提供了不同语言的编程接口,比如C++接口叫做roscpp,Python接口叫做rospy,Java接口叫做rosjava。尽管语言不通,但这些接口都可以用来创建topic、service、param,实现ROS的通信功能。Clinet Lirary有点类似开发中的Helper Class,把一些常用的基本功能做了封装。目前ROS支持的Clinet Library包括:Client Library

2020-07-31 18:31:58 3027

原创 Could not find messages which ‘/home/zjj/practice/my/src/test/msg/gps.msg‘

Could not find messages which '/home/zjj/practice/my/src/test/msg/gps.msg’depends on. Did you forget to specify generate_messages(DEPENDENCIES …)?解决:gps.msg文件中数据类型出错Float32 改成 float32

2020-07-31 17:37:05 725

原创 ROS学习笔记(六) ROS通信架构(四)

ROS通信架构(四)ROS的通信方式有以下四种:Topic 主题Service 服务Parameter Service 参数服务器Actionlib 动作库Actionlibactionlib是ROS中的一个库,也是请求响应机制的通信方式(类似service),主要弥补了service通信的一个不足:若执行长时间任务时,利用service通信机制,Client会长时间接收不到reply,通信受阻。actionlib比较适合较长时间的通信过程,actionlib通信过程随时查看过程进度,也可以

2020-07-30 16:33:05 333

原创 ROS学习笔记(五) ROS通信架构(三)

ROS通信架构(三)ROS的通信方式有以下四种:Topic 主题Service 服务Parameter Service 参数服务器Actionlib 动作库Servicetopic是单向异步通信方式,当一些节点只是临时而非周期性的需要某些数据,topic会消耗大量内部资源,效率低。此时就需要请求-查询式通信的service(服务)。service通信是双向的,接收消息同时有反馈。Service包括请求方(Client),应答方/服务提供方(server)。Client发送一个request

2020-07-30 11:10:35 627

原创 E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用) E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-front

运行sudo apt-get install或类似命令时,出现如下提示:E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?在使用apt-get install 下载时,如果没有完成下载就结束,下次使用时会报此错,即有另一个程序正在占用apt-get install进程,由于它在运行时,会占用软件源更新时的系统锁(简称‘系统

2020-07-29 22:22:49 4042

原创 无法找到可执行文件[已解决]

1.检查可执行文件是否存在2.检查功能包名、文件名是否正确3.Unable to register with master node ,是否打开可执行文件的执行权限方法1:方法2:chmod 777 file_name

2020-07-29 22:14:37 3204

原创 roscore cannot run as another roscore

roscore cannot run as another roscore解决:killall -9 roscorekillall -9 rosmaster参考:https://blog.csdn.net/u010918541/article/details/50445310

2020-07-29 22:06:50 314

原创 [ERROR] Failed to contact master at [localhost:11311]. Retrying...

[ERROR] Failed to contact master at [localhost:11311]. Retrying…检查roscoreroslaunch等命令运行时会自动检查并启动roscore,直接运行rosrun等命令会报错参考:https://www.cnblogs.com/Jessica-jie/p/6591230.html

2020-07-29 22:02:06 2873 6

原创 ROS学习笔记(四) ROS通信架构(二)

ROS通信架构(二)ROS的通信方式有以下四种:Topic 主题Service 服务Parameter Service 参数服务器Actionlib 动作库Topic:topic常用于传输实时性、周期性的消息,是一种点(node)对点的单向通信方式。1.public节点和subscriber节点到master进行注册2.public发布topic3.subscriber在master指挥下订阅改topic4.public和subscriber建立单向通信subscriber接受到消

2020-07-29 21:56:10 590

原创 ROS学习笔记(三) ROS通信架构(一)

ROS通信架构(一)node:最小的进程单元。一个软件包里有多个可执行文件,一个可执行文件在运行执行之后会变成一个进程,进程在ROS中就叫做node节点。从程序来看,node就是一个可执行文件(C++或Python脚本)被执行;功能上来说,一个node负责一个独立的功能,很多个node完成机器人的各种操作任务(如一个node控制底盘轮子,一个node驱动摄像头获取图像,一个node驱动激光雷达,一个node传感器信息进行路径规划等)。基于模块化分工的思路,ROS不同功能模块之间的通信,就是节点之间的通

2020-07-29 17:46:21 653

原创 ROS学习笔记(二) package介绍

package介绍├── CMakeLists.txt   #package的编译规则(必须)├── package.xml   #package的描述信息(必须)├── src/        #源代码文件(.cpp)├── include/      #C++头文件(.h)├── scripts/     #可执行脚本(shell python)├── msg/       #自定义消息(.msg)

2020-07-29 12:12:05 1540

PoseNet.pdf

PoseNet: A Convolutional Network for Real-Time 6-DOF Camera Relocalization论文

2020-08-17

PoseNet-Pytorch.tar.gz

posenet的pytorch实现的代码,PoseNet: A Convolutional Network for Real-Time 6-DOF Camera Relocalization论文是原代码是在caffe框架上搭建的,比较老,此代码是在pytorch框架上搭建的

2020-08-17

空空如也

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

TA关注的人

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