6 莫奈的老旧三轮车

尚未进行身份认证

我要认证

为什么我的眼里常含泪水,因为我还有一个算法不会......

等级
TA的排名 5w+

ROS Image_transport使用

本来想要用image_transport来将compressed图像republish成raw的,结果使用过程中遇到找不到image_transport.这一点很矛盾,因为一直都在用这个,一下是遇到的问题集锦;1. 首先是找不到list_transport:s———n@shinan:/opt/ros/kinetic/lib/image_transport$ rosrun image_transport list_transports[rosrun] Couldn't find executab.

2020-08-13 20:51:23

ROS 图像相关的命令与应用

本文翻译自 xx大学的机器人课程,以及个人使用的Ros进行图像处理时的一些问题总结:1. ROS 中表示图像1.1 查看图像ROS中最基本的图像表示方式为sensor_mags/Image类型,可以使用RVIZ对该topic所对应的图像画面进行查看,RVIZ中的Camera display功能;或者更简便的,可以使用模块image_view:具体命令为:rosrun image_view image_view image:=topic_name例如, 如果想要查看 Turtlebo...

2020-08-11 20:32:31

【回环检测】如何理解loopClosing中的连续性检测

在连续性检测中会用到几个变量如下,可以先理解一下这几个变量之间的关系如图:总结:回环部分对候选帧的检测其实可以理解为静态检测和动态检测;静态检测也就是对于图片相似度的检测,通过候选帧及其共视帧的commonwords 和score进行选择,保存下来的帧都具有静态一致性;空间上的连续性检测主要是动态检测,用于筛选那些落单的相似帧,通俗来讲就是这一候选、帧与当前帧相似,但是走两步之后就不一定相似了(传说中的没病走两步),怎么实现走两步的效果检测呢?那就是看簇与簇之间有没有共同帧了;PS:簇 = 候.

2020-07-28 09:50:39

ORBSLAM3 的改进

周六看到了ORBSLAM3的源码,安装运行后看了一下其代码结构,因为加IMU的部分是针对之前的ORB-VI, 因此大家可以参考jinpang的LearnORBVI可以更纯粹地学习视觉+IMU的组合;这篇文章主要是针对其在Tracking线程做出的改动,尤其是添加Atlas后对Tracking部分的影响,LoopClosing和MapMerging的部分会在后面的分析中讲到,有错误也欢迎各位指正。ORBSLAM3相对于ORBSLAM2做出的主要改动:1. Atlas: 用于保存很多琐碎的地图;主要

2020-07-27 09:26:27

详细解读ORBSLAM中的描述子提取过程

一直都在基于ORBSLAM做一些相关的开发,只知道进来的图片会直接提取出BRIEF描述子,但是都没有详细地看过它具体的提取过程,今天仔细研究了一下代码和相关理论,弄清楚之后感觉神清气爽,部分内容查找有些费劲,所以特此整理出来,希望对需要的人有所帮助。1. 前言ORBSLAM中使用的ORB特征是FAST特征和BRIEF描述子的集合,详细的FAST特征的提取过程这里大概说一下,方便后面对描述子的理解;FAST特征的提取过程:1. 构建高斯金字塔:ComputePyramid()​ 第一层.

2020-07-21 21:09:04

cartographer编译过程遇到未定义的dlclose@@GLIBC_2.2.5

1. 使用的安装过程如下:先装下这下面几个依赖sudo apt-get updatesudo apt-get install -y python-wstool python-rosdep ninja-build1. cartographer,cartographer_ros,ceres-solver放在工作空间的src目录下2. protobuf放在工作空间下3. 编译指令:catkin_make_isolated --install --use-ninja一些相关的以来安装完成后

2020-07-07 16:19:48

【从理论到代码】旋转矩阵与欧拉角 一

本篇主要是结合odom坐标系与相机坐标系之间的转换,可以用于将odom属于与视觉slam进行融合时的位姿计算;主要分为两部分,第一部分讲述旋转矩阵与欧拉角之间的转换;第二部分讲述如何将odom的位移和角度转换到相机坐标系下;...

2020-06-22 20:16:32

【直观理解】粒子滤波 原理及实现

该博文集成了几个重要的参考博客,首先感谢这些博主的讲解和实现,因此是转载,不是原创。一. 首先从通俗易懂的层面来理解一下粒子滤波,主要是博主(饮水思源)的博客。粒子滤波可以先分为几个主要的阶段:初始化阶段 ---> 预测阶段--->矫正阶段--->重采样--->滤波初始化阶段:主要就是选定粒子数量。也就是博主所说的放狗去搜索目标;放狗的方式有很多中,一种是让他们均匀分布,第二种是让他们按照高斯分布,即可能性大的地方就多放一点。一般来讲,比较简单的实现都是先让粒子们均匀分布

2020-05-23 11:35:20

【贪心School】机器学习课程笔记

一定要认清技术的边界以及定义好问题的范围(scope)。举个例子,不要试图使用完全开放的对话系统来搭建机器人订餐系统,因为目前的对话技术还不足以支撑完全开放环境下的对话。简答来讲,BI是一种分析的工具,也就是通过一些方式把数据更直观的展示给用户,辅助人去决策。另一方面,AI是通过数据帮助人做决策。所以从这个角度,可以把BI看作是辅助的决策的工具,AI则可以直接帮我们做决策。机器学习:机器学习是解决人工智能问题的最核心的技术。比如推荐系统、无人驾驶、人脸识别、竞技分析等应用都要依...

2020-05-14 20:09:37

【思维导图】nav_msgs/Odometry 消息的构成及订阅

导航功能包要求机器人 能够通过里程计信息源发布包含速度信息的里程计nav_msgs/Odometry 消息;本篇整理了nav_msgs/Odometry消息的具体结构,更加清晰一点,以及如果订阅这种类型的topic时应该如何获取数据;了解了具体的结构后来看一下简单一点的订阅实例:typedef struct { float x; float y; float th;} POSE2D;vector<POSE2D> odom_poses;void

2020-05-14 19:56:32

【讲清楚】rebase的使用

Git rebasegit original log:目前有多于三个的log,而我想要合并最近的两个 log, 也就是上图中紫色的圈和黄色的圈,所以这个时候使用rebase的方式如下:git rebase -i ee9ee598ea2a4bece9b23注意这个时候的应该使用的log的编码是红色的圈,虽然我想要合并紫色和黄色,但是需要在红色圈的基础上进行合...

2020-03-26 14:16:37

LInux下的交换分区以及相关查看命令

linux下SWAP为交换分区,也就是虚拟内存;当linux系统的物理内存不够的时候,就需要将物理内存中的一些东西释放出来,以供当前程序使用;那些被释放的空间可能来自于一些很长没有什么操作的程序,被释放出来的空间中保存的内容就会被临时放入swap中;等到那些程序要运行时,再从swap中恢复保存的数据。具体swap分区的大小设置问题参考Linux交换分区设置多大为好?如何查看系统...

2020-02-20 11:56:33

SLAM中直接法分类及对应的项目

1. 思路:已知三维点P在相机1中对应的像素点为p1,则可以根据当前相机位姿的估计值,寻找到P在相机2中对应的像素值p2;2. 优化变量:优化光度误差,也就是P在两张图片中对应的两个像素点p1,p2之间的亮度误差;3. 分类:根据在图像中选用的P的来源,可以将直接法分为以下三类1. 稀疏直接法: P来自于稀疏关键点,只比较关键点周围区域的像素值,不使用描述子;2. 半稠密:...

2020-02-18 17:47:54

catkin_make 只编译一个包

来源于ros wiki上的问题: how to build a single package by catkin_make一般来讲,在工作空间下,使用catkin_make 将会一次性编译src下所有的包,因为catkin_make 相当于以下命令的集合:$ cd ~/catkin_ws$ cd src$ catkin_init_workspace$ cd ..$ mkdir...

2020-01-13 20:11:12

在cmakelists和makefile中设置opencv

1. 查询电脑上的opencv版本:pkg-config--modversion opencv2. 在电脑上安装多个版本的opencv,可以通过指定安装路径进行设置: 下载源码后进入文件夹,打开终端;mkdirbuildcmake-DCMAKE_BUILD_TYPE=Release-DCMAKE_INSTALL_PREFIX=/usr/local/opencv3...

2020-01-10 22:12:31

ORBSLAM的ORB特征到底从哪儿来?

ORBSLAM中的主要使用了ORB特征,也就是FAST特征+BRIEF描述子的组合,具体这两种方法就不详细介绍了,这里主要说一下每个特征对应的描述子在ORBSLAM中的维护方式;首先需要说明的是每个frame都有自己对应的找到的feature,在进行特征提取前会先初始化一个Extractor,也就是:void Frame::ExtractORB(int flag, const cv::M...

2020-01-09 21:40:18

ORB_SLAM2中的疑难杂症

用ORB_SLAM也有一段时间了,基于该project也做了不少的开发,期间遇到了一些bug,在这里总结一下,在github上的issue中也有,只是issue数量太大,所以总结出一个关于代码错误的几个方面(主要是在遇到的时候也不敢相信,毕竟是大牛的作品):1. Reset() 的时候会遇到段错误,很偶尔遇到的一个问题,主要原因是双目的初始化函数StereoInitialization() 中...

2020-01-09 20:53:21

Ubuntu下添加boost库

@Ubuntu下Boost库的链接在CmakeLists.txt中添加Boost组件Boost具有很好的平台独立性,因此可以作为首选api来完成特定功能。最常用的为filesystem,用来获取程序的运行目录#include <boost/filesystem/path.hpp>#include <boost/filesystem/operation.hpp>...

2019-11-19 19:22:12

Reading Excel with Python

Reading Excel with Python (xlrd)Every 6-8 months, when I need to use the pythonxlrd library, I end up re-finding this page:Examples Reading Excel (.xls) Documents Using Python’s xlrdIn this case...

2019-11-13 20:14:04

Unknown CMake command "rosbuild_add_executable".

I got this error when I try to add ROS to a existing project. To slove this probelm you can check your file in this two ways:1. Check File .bashrc TO check whether you current project ROS pat...

2019-11-13 15:52:21

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。