自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

W_Tortoise的博客

虽然很慢,但一直在路上。

  • 博客(157)
  • 收藏
  • 关注

原创 使用imu_tools对IMU进行滤波并可视化

1 前言imu_filter_madgwick:一种滤波器,可将来自常规IMU设备的角速度,加速度和磁力计读数(可选)融合到一个方向中。基于工作:http://www.x-io.co.uk/open-source-imu-and-ahrs-algorithms/imu_complementary_filter:一种滤波器,它使用一种基于互补融合的新颖方法,将来自通用IMU设备的角速度,加...

2019-11-22 17:32:55 12245 21

原创 robot_pose_ekf——基于EKF的Odometry+IMU+VO+GPS融合定位

了解ROS的robot_pose_ekf软件包中扩展卡尔曼滤波器的用法:robot_pose_ekf软件包用于基于来自不同来源的(部分)位姿测量值来估计机器人的3D姿势。它使用带有6D模型(3D位置和3D方向)的扩展卡尔曼滤波器,将来自车轮里程计,IMU传感器和视觉里程计的测量结果结合起来。基本思想是提供与不同传感器的松散耦合集成,其中传感器信号以ROS消息的形式接收。主页:http:/...

2019-11-21 14:14:18 9256 10

原创 Ubuntu系统上的USB端口号绑定

1 为什么绑定USB端口号USB端口号会随设备的插拔发生变化,不方便测试,因此需要将USB端口号绑定。2 如何绑定USB端口号将端口重映射到新的固定的名字,并且设置其权限为可读。2.1 查询USB设备端口信息在未插入USB设备前,打开终端,执行以下命令查看USB端口信息:lausb输出如下:Bus 002 Device 001: ID 1d6b:0003 Linux Founda...

2019-11-19 18:48:19 1863

原创 在rviz中使用点和线可视化轨迹(Markers: Points and Lines)

1 介绍在做位姿相关的研究时,我们希望直观的可视化轨迹,尤其是对比不同的轨迹。本教程将向您介绍POINTS,LINE_STRIP和LINE_LIST标记类型。有关类型的完整列表,请参见“标记显示”页面。2 使用Points, Line Strips, and Line ListsPOINTS,LINE_STRIP和LINE_LIST标记都使用visualization_msgs/Marke...

2019-11-19 11:10:29 4929

原创 LaMa:一个定位和建图库

1 总览LaMa是由葡萄牙阿威罗大学的智能机器人与系统(IRIS)实验室开发的用于机器人定位和制图的C++ 11软件库。它包括一个用于3D体积网格(用于建图)的框架,一个基于扫描匹配的定位算法和两个SLAM解决方案(一个在线SLAM和一个粒子滤波SLAM)。主要特点是效率。只要有可能,就使计算量少,内存使用量少。运行我们的定位和SLAM解决方案的最小可行计算机是Raspberry Pi 3 M...

2019-11-01 16:43:56 2268

原创 OpenARK:UC Berkeley 开源可穿戴增强现实系统(C++)

1 OpenARKOpenARK是于2016年在加州大学伯克利分校创建的开源可穿戴式增强现实(AR)系统。基于C ++的软件提供了创新的核心功能,可为各种现成的AR组件提供动力,包括透视眼镜,深度摄像头和IMU。开源平台包括高级模块,以帮助人机交互,例如3D手势识别,平面检测,avatar/姿势跟踪和多用户协作,还包含基本工具,例如基于AR的相机校准,深度到立体,SLAM等。当前,它同时支持P...

2019-11-01 15:30:16 848 1

原创 IMU定位/位姿跟踪(IMU_localization or IMU_pose_tracking)

目录1 前言2 安装3 代码解读3.1 main函数3.2 头文件3.3 源文件4 测试5 总结1 前言IMU位姿跟踪2 安装首先安装ROS,然后安装Eigen:sudo apt-get install libeigen3-dev从Github下载代码,并编译:git pull https://github.com/Abekabe/verdict-crawler.gitcd ve...

2019-10-19 11:34:03 13526 23

原创 Ubuntu中终端分屏工具terminator的安装和使用

1 有何不同在Linux中,以一种非常灵活的方式在一个窗口中拥有多个Gnome终端。2 特性自动记录所有终端会话文本和URL的拖放功能支持水平滚动查找,一种用于在终端内搜索任何特定文本的功能支持UTF-8智能退出–它知道运行过程(如果有)垂直滚动很方便使用自由,通用公共许可证支持基于选项卡的浏览用Python编写的Portal平台–支持GNU/Linux平台3 安装...

2019-10-16 10:51:13 22635 3

原创 Python中zip()和map()的使用

目录0 前言1 zip() 函数1.1 描述1.2 语法1.3 返回值1.4 实例1.5 补充2 map() 函数2.1 描述2.2 语法2.3 参数2.4 返回值2.5 实例2.6 补充3 matplotlib绘图4 参考0 前言在一段用matplotlib绘制三维轨迹图的代码中,用到了zip()和map(),现将其使用方法记录一下。1 zip() 函数1.1 描述zip() 函数用于...

2019-10-11 10:46:15 2042

原创 《视觉SLAM进阶:从零开始手写VIO》第二讲作业

目录1 安装im_utils1.1 安装1.2 可能出现的Error1.3 运行1.4 参考资料2 编译vio_data_simulation-master3 编译vio_data_simulation-ros_version3.1 编译3.2 生成imu.bag3.3 使用imu_utils标定IMU的白噪声和零偏不稳定性4 总结1 安装im_utils这个工具之前就使用过了,还写了博客,没...

2019-10-10 18:14:04 5242 5

原创 《视觉SLAM进阶:从零开始手写VIO》第一讲作业

目录1 视觉与IMU融合之后有何优势?2 有哪些常见的视觉+IMU融合方案?有没有工业界应用的例子?3 在学术界,VIO研究有哪些新进展?有没有将学习方法应用到VIO的例子?4 四元数和李代数更新5 求导参考1 视觉与IMU融合之后有何优势?要说视觉与IMU融合之后有何优势,首先要明白视觉与IMU各自的局限:(1)IMU虽然可以测得加速度和角速度,但这些量都存在明显的漂移,使得积分两次得到的...

2019-10-08 20:17:59 5155 2

原创 使用C++中的std::pair,返回两个不同类型的变量

1 前言今天,遇到在一个函数中返回两个不同类型的变量的问题。其实,可以通过结构体解决此问题。除了结构体,还可以使用C++中的std::pair。当要返回多个变量(≥3)时,虽然std::pair可以通过嵌套实现,但最好还是用结构体。2 std::pair的用法2.1 介绍pair能将2个数据组合成一个数据,stl中的map就是将key和value放在一起来保存。另外,当一个函数需要返...

2019-09-29 16:17:52 3475

原创 用于监控CPU、内存和GPU使用情况的最佳命令行工具

如果你现在认真做任何数据驱动的事情,那么强大的PC是必须拥有的。数据科学往往需要很多RAM,强化学习喜欢吃掉CPU,深度学习吞噬GPU。在处理十分消耗资源的应用程序时,了解您的PC是否正在高效使用非常重要。你的算法是否在CPU上遇到瓶颈?它可以使用更多核心吗?你有足够的内存或你的内存使用量溢出到swap中(磁盘内存,非常慢)吗?你的CPU或GPU运行得太热吗?英特尔CPU和Nvidia ...

2019-09-19 17:29:04 4195

原创 XIVO:X惯性辅助视觉里程计和稀疏建图

XIVO在存储数据(此处来自RealSense D435i传感器)或实时流上以140FPS运行,延迟大约为1-7ms,具体取决于硬件。它从已标定地相机输入视频帧和从IMU进行惯性测量,并输出具有属性特征和相机6自由度位姿的稀疏点云。它执行相机和IMU之间相对姿势的自动校准以及时间戳对齐。此处提供了更多演示,这篇论文介绍了该方法。XIVO不执行事后细化(集束调整,位姿图优化),但可以轻松添加为后处...

2019-09-19 09:28:38 1635

原创 使用OpenCV(C ++ / Python)实现视频中的简单背景估计

在我的计算机视觉应用中,您可以使用的处理能力很低。在这种情况下,我们必须使用简单而有效的技术。在这篇文章中,我们将介绍一种这样的技术,用于在摄像机静态并且场景中有一些移动物体时估计场景的背景。这种情况并不罕见。例如,许多交通和监控摄像机都是严格固定的。Temporal Median Filtering为了理解我们将在本文中描述的想法,让我们考虑一维中的一个更简单的问题。假设我们每10毫秒估...

2019-08-29 10:08:27 708

原创 vid:完成视频的合成、合并、下载、裁剪、帧提取等日常任务的命令行工具

vid是一个用于简单视频操作的命令行工具。目前具有的功能:1.将一系列图像创建成视频:~ vid slideshow "frames/*.png" video.mp4~ vid slideshow --fps 1 "frames/*.png" video_1fps.mp42.输出视频信息:~ vid info video.mp4 Path: video.mp4 ...

2019-08-15 22:33:57 2638 1

原创 使用正态分布变换(NDT)算法对点云进行配准

目录代码解释说明编译和运行参考在本教程中,我们将介绍如何使用正态分布变换(NDT)算法来确定两个大规模点云(都超过100,000个点)之间的刚性变换。NDT算法是一种配准算法,其使用应用于3D点的统计模型的标准优化技术来确定两个点云之间的最可能的配准。因为其在配准过程中不依赖对应点的特征计算和匹配,所以效率高。有关NDT算法内部工作原理的更多信息,请参阅Martin Magnusson博士的博士...

2019-08-07 11:36:50 3741 1

原创 坐标变换

设有小萝卜1号和小萝卜2号位于世界坐标系中。记世界坐标系为W,小萝卜们的坐标系为R1R_1R1​和R2R_2R2​。小萝卜1号的位姿为q1=[0.35,0.2,0.3,0.1]Tq_1=[0.35,0.2,0.3,0.1]^Tq1​=[0.35,0.2,0.3,0.1]T(qqq的第一项为实部),t1=[0.3,0.1,0.1]Tt_1=[0.3,0.1,0.1]^Tt1​=[0.3,0.1,0....

2019-08-06 15:08:08 569

原创 使用fstream和boost::filesystem创建文件并写入数据

#include <iostream>#include <fstream>#include <sstream>#include <string>#include <time.h>#include <boost/filesystem.hpp>using namespace std;//static std::o...

2019-08-04 18:07:28 8132

原创 TF坐标变换

TF坐标变换坐标变换是机器人学中一个非常基础,同时也是非常重要的概念。机器人本体和机器人的工作环境中往往存在大量的组件元素,在机器人设计和机器人应用中都会涉及不同组件的位置和姿态,这就需要引入坐标系和坐标变换的概念。对于A,B两个坐标系,A坐标系下的位姿可以通过平移和旋转变换成B坐标系下的位姿,这里的平移和旋转可以通过4×4的变换矩阵来描述。坐标变换是机器人系统中常用的基础功能,ROS中的坐...

2019-08-01 11:47:59 3616 1

原创 使用cv::FileStorage读写YAML文件

#include <opencv2/opencv.hpp>#include <time.h>using namespace cv;int main() { FileStorage fs("test.yaml", FileStorage::WRITE); fs << "frameCount" << 5; time...

2019-07-30 23:49:13 9389 1

原创 安装Xsens MTi-300的ROS驱动

文章目录1 概述2 支持的设备3 工作流程4 要求5 运行Xsens MTi节点6 配置Xsens MTi节点7 发布的话题8 故障排除9 参考1 概述Xsens工业级运动跟踪器(MTi)的官方ROS驱动程序可以在MT软件套件的Linux安装包(2019.0及更高的版本)中找到。解压缩下载的安装包,执行mtsdk_linux-x ## _ ####.#.sh,并找到xsens_ros_mti_...

2019-07-30 18:32:43 8733 11

原创 使用OpenCV进行霍夫变换(C++/Python)

前言首先,这是一篇英文博客的翻译,原地址:https://www.learnopencv.com/hough-transform-with-opencv-c-python/ 。通过这篇博客,你可以知道什么是霍夫变换,如何检测直线和圆,以及如何使用C++/Python和OpenCV实现图像的直线和圆检测。但是,这篇博客并不是通俗易懂,至少我开始是没搞明白到底什么是霍夫变换,它是怎么检测直线的。...

2019-06-13 19:53:02 3379

原创 视觉SLAM中的李群与李代数

写在前面首先声明,这篇博客只是高博的《视觉SLAM十四讲》的学习笔记,稍加一些自己的领悟和思考。如果想系统和详细的学习李群与李代数,强烈建议移步。为什么要使用李群和李代数三维世界中刚体运动的描述方式,包括旋转矩阵、旋转向量、欧拉角、四元数等若干种方式。在SLAM 中,除了旋转表示之外,还要对它们进行估计和优化。因为在SLAM 中位姿是未知的,而我们需要解决什么样的相机位姿最符合当前观测数据这...

2019-06-12 15:40:44 957 1

原创 Eigen学习总结

前言最早接触Eigen,是在高翔博士编著的《视觉SLAM十四讲》中。

2019-05-28 15:13:57 2422 1

原创 IMU参数标定工具——imu_tk

sudo apt-get install build-essential cmake libeigen3-dev libqt4-dev libqt4-opengl-dev freeglut3-dev gnuplotgit clone https://github.com/Kyle-ak/imu_tk.gitcd imu_tkmkdir buildcd buildcmake ..ma...

2019-05-06 23:08:08 16417 10

原创 IMU噪声标定——加速度计和陀螺仪的白噪声和零偏不稳定性

首先,安装依赖:sudo apt-get install libdw-dev作者在README.md中的编译步骤为:download required code_utils;put the ROS package imu_utils and code_utils into your workspace, usually named catkin_ws;cd to your work...

2019-05-06 19:18:22 11910 13

原创 基于ZBar,OpenCV和Python的二维码识别

0 前言今天分享一个之前做过的二维码识别,参考:https://www.pyimagesearch.com/2018/05/21/an-opencv-barcode-and-qr-code-scanner-with-zbar/上面那个只有Python版本,再推荐一个C++版本的:https://www.learnopencv.com/opencv-qr-code-scanner-c-and-...

2019-04-25 21:40:39 5920

原创 点云配准与匹配

配准与匹配是在两个数据集中寻找共同的结构或特征,然后利用它们将数据集拼接到一起。PCL提供了迭代最近点算法执行配准与匹配。源文件pcl_matching.cpp:#include <ros/ros.h>#include <pcl/point_cloud.h>#include <pcl/registration/icp.h>#include <p...

2019-04-18 19:42:35 5638 3

原创 点云滤波和缩减采样

当尝试处理点云时,可能会遇到两个问题:过多的噪声太大的密度前者导致算法错误地解释数据,并导致不正确或不准确的结果;后者则使算法花费很多时间去完成运算。滤波创建一个节点,负责过滤pcl-output主题中产生的点云离群值,并且通过pcl_filtered主题将他们发送回来。源文件pcl_filter.cpp:#include <ros/ros.h>#include &...

2019-04-18 19:06:04 1961

原创 使用OpenCV和深度学习对黑白图像进行着色

原文地址:https://www.pyimagesearch.com/2019/02/25/black-and-white-image-colorization-with-opencv-and-deep-learning/在本教程中,您将学习如何使用OpenCV,深度学习和Python对黑白图像进行着色。图像着色是获取输入灰度(黑白)图像然后输出彩色图像的过程,该彩色图像表示输入图像的语义颜色...

2019-04-10 00:02:05 10437 10

原创 可视化点云

PCL提供了几种方法来可视化点云,其中最简单的方法是通过点云查看器。目的创建一个节点用来订阅sensor_msgs/PointCloud2,这个节点会使用库中的cloud_viewer(basic)来显示sensor_msgs/PointCloud2。代码源文件pcl_visualize.cpp:#include <iostream>#include <ros/ros...

2019-04-01 19:30:01 3814 2

原创 加载和保存点云到硬盘

目的加载PCD文件并将点云结果发布为ROS消息。代码源文件pcl_read.cpp:#include <ros/ros.h>#include <pcl/point_cloud.h>#include <pcl_conversions/pcl_conversions.h>#include <sensor_msgs/PointCloud2.h&gt...

2019-04-01 19:26:22 615

原创 创建点云

目的创建仅由随机的点组成的PCL点云,并且这个PCL点云最终会通过一个/pcl_output的主题发布出去。代码源文件pcl_create.cpp:#include <ros/ros.h>#include <pcl/point_cloud.h>#include <pcl_conversions/pcl_conversions.h>#include ...

2019-03-30 14:24:40 2094

原创 第一个PCL程序

1.创建ROS软件包在工作空间创建一个ROS软件包,这个软件包依赖于pcl_conversions、pcl_ros、pcl_msgs和sensor_msgs包:$ catkin_create_pkg chapter6_tutorials pcl_conversions pcl_ros pcl_msgs sensor_msgs在软件包中创建一个源文件目录:$ rospack profile...

2019-03-30 13:06:41 1322

原创 理解点云库

写在前面说好了要学习点云处理,那就从基础做起,我将根据《ROS机器人程序设计》中点云部分的内容写一系列学习笔记。完成后,再学习点云库PCL进阶。理解点云库点云是由飞行时间(Time of Flight)摄像头和激光扫描仪在3D空间采集的有限点集构成的。点云库(PCL)提供了大量数据类型和数据结构,不仅能方便的表示采样空间中的点,而且可以表示采样空间的不同属性,比如颜色、法向量等。PCL同...

2019-03-30 00:34:23 1643

原创 点云处理——将激光雷达数据投影到二维图像

“前视图”投影为了将激光雷达传感器的“前视图”展平为2D图像,必须将3D空间中的点投影到可以展开的圆柱形表面上,以形成平面。以下代码改编自论文:Vehicle Detection from 3D Lidar Using Fully Convolutional Network# h_res = horizontal resolution of the lidar sensor# v_re...

2019-03-27 12:39:15 21692 16

原创 点云处理——将点云转换为鸟瞰图

写在前面最近在求职,发现激光雷达就业机会更多,而且我在这方面基础相对薄弱些,所以打算补一补。只要开始,就不晚。这是一篇英文博客翻译,内容是将点云数据转换成鸟瞰图,虽然CSDN上已经有翻译,但我还是想自己过一遍,以加深理解。接下来我要好好学学PCL!点云数据点云数据可以表示为具有N行和至少3列的numpy数组。每行对应一个点,其在空间中的位置至少使用3个值表示,即(x,y,z)。如果...

2019-03-26 21:48:30 17376 16

原创 树莓派——安装系统

0 前言关于什么是树莓派,这里就不多说了,知道它很强大就行了。因为它强大性能、低廉的价格和丰富的学习资源,我入手了一套打算学习一下。安装系统是第一步,在这里记录一下,进阶的内容之后再慢慢补充。1 安装系统1.1 准备0.树莓派1.一张micro SD卡,最好是高速卡,因为读写速度直接影响系统的运行速度,而且容量要大于8 GB,具体根据使用情况选择,当然最好是大一点2.读卡器或卡托...

2019-02-15 16:51:33 1005

原创 CSDN——2018总结与展望

今天是除夕,一个普天同庆的日子。微信上不断收到群发的祝福,可能也就只有这个时刻才发现通讯录里这个人的存在。我并不喜欢这种形式,现在的状态是一路遇见,一路再见。很多人喜欢在元旦前后写年终总结,我因为拖延症到现在还没有写,正好现在闲来无事,那就在春晚开始之前,先完成2018年我在CSDN上的总结与展望。初衷首先需要声明我是博客的受益者,对大部分初学者,遇到问题都需要上网搜索解决方法,而CSDN...

2019-02-04 19:58:39 916

空空如也

空空如也

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

TA关注的人

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