自定义博客皮肤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)
  • 收藏
  • 关注

原创 R2LIVE安装与测试

文章目录R2LIVE安装依赖Ubuntu和ROSCeres Solverlivox_ros_driver编译R2LIVE运行示例R2LIVER2LIVE 是一个强大的、实时的、紧密耦合的多传感器融合框架,它融合了来自 LiDAR、惯性传感器、视觉相机的测量结果,以实现稳健、准确的状态估计。利用所有单个传感器的测量结果,我们的算法对各种视觉故障、LiDAR 退化场景具有足够的鲁棒性,并且能够在机载计算平台上实时运行,如在室内、室外进行的大量实验所示,以及不同规模的混合环境。系统架构:建图效果:相

2021-06-23 13:43:21 4505 28

原创 在Ubuntu 18.04上安装Apollo 6.0

文章目录1 前期准备1.1 安装Ubuntu1.2 安装NVIDIA GPU驱动1.3 安装Docker Engine1.4 安装NVIDIA Container Toolkit2 下载Apollo源文件3 启动Docker容器4 进入Apollo的Docker容器5 在容器内构建Apollo6 运行Apollo6.1 启动Apollo6.2 访问Dreamview Web UI1 前期准备1.1 安装Ubuntu建议使用 Ubuntu 18.04.5+(包括 Ubuntu 20.04)作为主机系统。

2021-06-16 09:52:54 4186 9

原创 LVI-SAM安装与测试

1 介绍就在昨天,LVI-SAM开源了,它是一个lidar-visual-inertial里程计和建图系统,在系统级别结合了LIO-SAM和Vins-Mono的优势。作者之前还开源了LeGO-LOAM和LIO-SAM,膜拜并致敬。Github:https://github.com/TixiaoShan/LVI-SAM论文:https://arxiv.org/abs/2104.10831Demo:PS:上传这个gif真不容易,原始文件大小为12.5MB,经过一系列的裁剪,缩放,压缩操作,变成4.7

2021-04-23 13:45:24 13421 58

原创 Doxygen——根据代码注释生成文档的工具

文章目录1 简介2 安装3 使用3.1 注释代码3.2 使用doxywizard生成文档4 用例4.1 OpenCV4.2 Apollo5 参考1 简介Doxygen是一个可以根据代码注释生成文档的工具,支持HTML、CHM、LaTex等格式。主要支持C语言、Python语言,还支持C++、Java、C#等语言。通常我们在写程序时,或多或少都会写上注释,但是对于其它人而言,要直接探索程序里的注释会比较麻烦。大部分有用的注释都是属于对函数、类型等的说明。所以,如果能依据程序本身的结构,将注释经过处理重新

2021-02-04 11:16:18 5835 1

原创 解决Ubuntu不能挂载移动硬盘的问题

1 问题描述Ubuntu不能挂载移动硬盘。2 问题来源一般是在使用时,将移动硬盘异常拔出。比如,在复制文件过程中,误操作把移动硬盘拔了出来,再插入时,就提示不能挂载。3 解决办法先把移动硬盘插入电脑USB接口,要求电脑系统为Ubuntu,打开终端,输入:sudo fdisk -l查看分区挂载情况,最后面那一行就是出错的移动硬盘分区。修复挂载错误的分区,打开终端,输入:sudo ntfsfix /dev/sdb1修复完成后,安全拔出再重新插入即可正常使用移动硬盘。4 参考htt

2020-12-30 15:26:01 4271 1

原创 安装与Python 3.5适配的numba

文章目录1 环境2 安装numba3 Numba简介3.1 加速Python函数3.2 为科学计算而构建3.3 并行化你的算法3.4 可移植编译4 参考1 环境操作系统:Ubuntu 16.04Python版本:Python 3.52 安装numbapip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple numba但是报错,终端部分输出为:Looking in indexes: https://pypi.tuna.tsinghua.e

2020-12-30 13:42:25 1024 3

翻译 Bazel概述

什么是Bazel?Bazel是类似于Make,Maven和Gradle的开源构建和测试工具。它使用人类可读的高级构建语言。 Bazel支持多种语言的项目,并为多种平台构建输出。 Bazel支持跨多个存储库的大型代码库以及大量用户。为什么要使用Bazel?Bazel具有以下优点:高级构建语言。 Bazel使用一种抽象的,人类可读的语言以较高的语义级别描述了项目的构建属性。与其他工具不同,Bazel在库,二进制文件,脚本和数据集的概念上进行操作,从而使您免于编写对诸如编译器和链接器之类的工具的单独调用

2020-12-07 15:40:16 1613

翻译 在Ubuntu上安装Bazel

支持的Ubuntu Linux平台:18.04 (LTS)16.04 (LTS)Bazel可能会在其他Ubuntu版本和Debian stretch及以上版本上正常运行,但是我们目前尚未在Bazel的CI上对其进行测试,因此无法保证。使用以下方法之一在Ubuntu上安装Bazel:使用Bazelisk(推荐)使用我们的自定义APT存储库使用二进制安装程序从源代码编译BazelBazel带有两个补全脚本。安装Bazel之后,您可以:访问bash补全脚本安装zsh补全脚本文章

2020-12-07 15:36:26 2797 1

翻译 Bazel简介:常见的C++构建用例

在这里,您将找到一些使用Bazel构建C++项目的最常用用例。如果尚未执行此操作,请完成教程Bazel简介:构建C++项目,开始使用Bazel构建C++项目。目录1 在target中包含多个文件2 使用transitive includes3 添加include路径3 包括外部库4 编写和运行C++测试5 添加对预编译库的依赖1 在target中包含多个文件您可以在具有glob的单个target中包含多个文件。例如:cc_library( name = "build-all-the-file

2020-12-06 19:26:07 1347

翻译 使用Bazel构建C++项目

在本教程中,您将学习使用Bazel构建C++应用程序的基础知识。您将设置工作区并构建一个简单的C ++项目,该项目说明了Bazel的关键概念,例如targets和BUILD文件。完成本教程后,请查看Common C ++ Build Use Cases,以获取有关更高级概念(如编写和运行C++测试)的信息。预计完成时间:30分钟。文章目录1 您将学到什么2 在你开始之前3 使用Bazel构建3.1 设置workspace3.2 了解BUILD文件3.3 构建项目3.4 查看依赖关系图4 优化Bazel构

2020-12-03 20:56:49 1713

翻译 PyTorch到Tensorflow的模型转换

文章目录1 结果相同,使用ONNX的不同框架2 PyTorch模型转换pipeline3 转移模型结果在本文中,我们将学习如何将PyTorch模型转换为TensorFlow。如果您是深度学习的新手,那么使用哪种框架可能会让您不知所措。我们个人认为++PyTorch是您应该学习的第一个框架++,但它可能不是您想要学习的唯一框架。好消息是您不需要嫁给框架。您可以在PyTorch中训练模型,然后将其轻松转换为Tensorflow,只要使用标准图层即可。实现此转换的最佳方法是先将PyTorch模型转换为ONN

2020-10-30 17:29:43 15126

原创 Ubuntu16.04安装Java

1.下载Java安装包使用浏览器打开以下网址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html然后,下载jdk-8u261-linux-x64.tar.gz。2.解压jdk-8u261-linux-x64.tar.gzcd ~/Downloadstar -zxvf jdk-8u261-linux-x64.tar.gz3.将解压后的jdk1.8.0_261移动到/optsudo mv jd

2020-08-06 18:26:51 555

原创 使用小觅相机录制数据集

文章目录1 目的2 方法2.1 SDK2.2 ROS bag2.2.1 录制bag2.2.2 从bag文件中提取数据2.2.2.1 提取图像2.2.2.2 提取IMU数据3 相关核心代码3.1 record.cc3.2 dataset.h3.3 dataset.cc4 参考1 目的在不同场景录制不同条件的数据集,主要是为了方便进行系统的测试,相当于一个benchmark,给不同的算法提供一个相同的测试环境。2 方法2.1 SDK首先,安装好小觅相机的SDK。然后,使用SDK中提供的样例程序,录制

2020-08-06 14:31:27 1973 13

原创 激光雷达数学模型和运动畸变去除

文章目录1 概念介绍1.1 激光雷达传感器1.2 激光雷达数学模型1.3 运动畸变2 畸变去除2.1 纯估计方法2.2 里程计辅助方法2.3 融合方法3 实现一个激光雷达运动畸变去除模块3.1 自定义激光雷达消息3.2 编译激光雷达运动畸变去除包3.3 播放bag3.4 效果3.5 代码解析3.5.1 头文件3.5.2 主函数3.5.3 定义LidarMotionCalibrator类3.5.4 构造函数LidarMotionCalibrator3.5.5 回调函数ScanCallBack3.5.6 获取机

2020-08-04 11:07:37 3461 11

原创 里程计运动模型及标定

文章目录1 里程计运动模型1.1 两轮差分底盘的运动模型1.2 三轮全向底盘的运动学模型1.3 航迹推算(Dead Reckoning)2 里程计标定2.1 线性最小二乘的基本原理2.2 最小二乘的直线拟合2.3 最小二乘在里程计标定中的应用3 实现一个直接线性方法的里程计标定模块3.1 安装3.2 运行3.2.1 启动launch文件3.2.2 打开rviz3.2.3 播放bag3.2.4 矫正里程计3.2.5 结果3.3 解析3.3.1 构建超定方程组Ax=b3.3.2 求解超定方程组3.3.3 计算两

2020-08-03 15:12:06 6846 9

翻译 高效的图像加载

文章目录1 安装2 加载图像的方式2.1 Structure2.2 OpenCV2.3 Pillow2.4 Pillow-SIMD2.5 TurboJpeg2.6 LMDB2.7 TFRecords3 加载时间比较4 总结在编写优化代码时,图像加载在计算机视觉中起着重要作用。此过程可能是许多CV任务的瓶颈,并且通常可能是导致性能不佳的罪魁祸首。我们需要尽可能快地从磁盘获取图像。这项任务的重要性最明显的例子是在任何CNN训练框架中实现Dataloader类。快速加载图像至关重要。如果不是这样,训练过程将受

2020-06-24 10:53:10 924

原创 基于Cartographer的3D SLAM(Lidar+IMU)

1 系统要求虽然 Cartographer 可以在其他系统上运行,但已确认可以在满足以下要求的系统上运行:64-bit, modern CPU (e.g. 3rd generation i7)16 GB RAMUbuntu 14.04 (Trusty) and 16.04 (Xenial)gcc version 4.8.4 and 5.4.0目前支持以下ROS发行版:Indig...

2020-03-28 13:51:35 8176 8

原创 使用FlyMCU往STM32中烧写程序

0 软硬件环境1.操作系统:Windows2.软件:KeilFlyMcu3.硬件:PCSTM32最小系统开发板USB转TTL CH340G1 生成hex文件编写好要烧写的程序后,点击菜单栏的【Flash】,选择【Config Flash Tools】。首先,在【Device】页面中选择设备类型,这里是STM32F103C8。然后,切换到【Output】页面,勾选【C...

2020-03-28 10:28:27 35775 14

原创 使用AMCap调整相机参数

1 介绍AMCap捕获网络摄像头录制的视频源,并将其立即保存到硬盘驱动器中。使用AMCap,您可以将视频轻松地以MPEG2或AVI格式录制到硬盘中,前提是您具有必要的编解码器。它具有一些其他有趣的选项,例如拍摄屏幕快照或为图像添加特殊效果的功能(图形叠加,alpha混合,透明度等)。也就是说,我们发现AMCap有点欺骗。也许我们还期望有其他东西:网络摄像头监控工具或类似工具。但老实说,我们认...

2020-03-28 10:07:57 9326 3

原创 VSLAM(VINS)+EKF+MPC=停车场无限循环

1 背景很奇妙,从一个群里看到一个人的朋友圈,搞定了【VSLAM(VINS)+EKF+MPC=停车场无限循环】,挺感兴趣的,在这里简单分析一下。视频截图:2 分析2.1 VSLAM根据经验,电脑屏幕上显示的是rviz,VSLAM具体是VINS,但不确定是VINS-mono,还是VINS-fusion,也不确定是单目+IMU,还是双目+IMU。问题:VINS是用的在线的定位模式还是...

2020-03-28 09:51:20 1193

翻译 自动驾驶模拟器——CARLA

1 CARLA模拟器1.1 介绍CARLA是用于自动驾驶研究的开源模拟器。CARLA是从零开始开发的,旨在支持自动驾驶系统的开发,训练和验证。除了开源代码和协议,CARLA还提供了为此目的而创建且可以免费使用的开放数字资产(城市布局,建筑物,车辆)。该仿真平台支持传感器套件的灵活规范,环境条件,对所有静态和动态参与者的完全控制,地图生成等等。如果您希望在与我们的CoRL’17论文相同的条件下...

2020-03-28 09:05:37 4636 2

原创 Linux系统杀死进程

1 找到进程的ID(PID)显示所有进程信息ps -A部分输出如下:PID TTY TIME CMD 1 ? 00:00:12 systemd 2 ? 00:00:00 kthreadd 4 ? 00:00:00 kworker/0:0H 6 ? 00:00:00 mm_percpu_wq 7 ...

2019-12-17 19:46:36 1389

原创 安装并运行PyTorch-YOLOv3

1 安装1.0 环境不说环境,都是耍流氓。Ubuntu 16.04Python 3.5.2(强烈建议安装Python 3.6+)PyTorch 1.3.11.1 下载代码$ git clone https://github.com/eriklindernoren/PyTorch-YOLOv31.2 安装依赖$ cd PyTorch-YOLOv3/$ sudo pip3 i...

2019-12-16 22:56:46 3270 6

原创 在Ubuntu 16.04系统上安装PyTorch

1 安装1.1 环境软硬件环境很重要:操作系统:Ubuntu 16.04x86-64处理器,无GPU1.2 安装最权威的安装方式,当然是安装官网提供的教程。说明:PyTorch版本:稳定版和预览版本(未经全面测试和支持)操作系统:Linux,Mac,Windows包:Conda,Pip,LibTorch,Source,建议使用Conda编程语言:Python2.7, ...

2019-12-16 22:46:29 900

原创 在Ubuntu16.04系统上安装并配置PyCharm

1 安装1.1 下载首先,去官网下载Pycharm。Pycharm可以在Windows,Mac和Linux系统上使用,并且有专业版和社区版之分。专业版和社区版的定位和区别:专业版:适用于科学和Web Python开发;具有HTML,JS和SQL支持;收费(当然也可以通过某种方式激活,有经济条件的还是支持一下好软件吧~)社区版:适用于纯Python开发;免费,不需要激活,开箱即用...

2019-12-15 00:02:05 1171 1

原创 C++中substr函数的用法

1 substr函数/*** @brief Get a substring.* @param __pos Index of first character (default 0).* @param __n Number of characters in substring (default remainder).* @return The new string.* @...

2019-12-13 10:48:33 1306

原创 C++ string中find,find_first_of和find_last_of的用法

1 str.find(str1)size_t find (const string& str, size_t pos = 0)说明:从pos(默认是0,即从头开始查找)开始查找,找到第一个和str1相匹配的子串,返回该子串的起始索引位置;如果没有找到则返回string::npos。str1.find(str2); // 从串str1中查找时str2,返回str2中...

2019-12-13 10:42:04 9277

原创 用于串口通信的serial

1 介绍This is a cross-platform library for interfacing with rs-232 serial like ports written in C++. It provides a modern C++ interface with a workflow designed to look and feel like PySerial, but wit...

2019-12-13 10:36:14 2118 1

转载 c++中的c_str()用法

1.标准库中的string类提供了3个成员函数来从一个string得到c类型的字符数组:c_str()data()copy(p,n)2.c_str()是Borland封装的String类中的一个函数,它返回当前字符串的首字符地址。换种说法,c_str()函数返回一个指向正规C字符串的指针常量,内容与本string串相同。这是为了与C语言兼容,在C语言中没有string类型,故必须通过s...

2019-12-13 10:32:36 3035

原创 使用OpenCV实现透视变换

1 透视变换透视变换(Perspective Transformation)是将成像投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。如下图所示,通过透视变换ABC变换到A’B’C’。2 使用OpenCV实现透视变换2.1 getPerspectiveTransform由四对点计算透射变换,返回由源图像中矩形到目标图像矩形变换的矩...

2019-12-13 10:27:42 4677

翻译 使用OpenCV确定图像中物体的颜色

1 前言这是我们关于形状检测和分析的三部分系列的最后一篇文章。以前,我们学习了如何:计算轮廓的中心执行形状检测和识别今天,我们将对图像中的对象执行形状检测和颜色标记。在这一点上,我们理解图像的区域可以通过颜色直方图和基本颜色通道统计信息(例如均值和标准差)来表征。但是,尽管我们可以计算这些统计数据,但它们无法为我们提供实际的标签,例如将区域标记为包含特定颜色的“红色”,“绿色”...

2019-12-13 10:12:06 4930

翻译 使用OpenCV和Python实现图像的颜色检测

1 背景所以,我在这里。乘坐Amtrak 158火车,经过长途旅行后回家。很热。AC几乎无法工作。婴儿在我旁边尖叫,而陪伴的母亲却孤注一掷地看着窗外,清楚地质疑生孩子是否是正确的人生决定。最重要的是,Wi-Fi无法正常工作。幸运的是,我带来了Game Boy和Pokemon游戏系列。当我将可信赖的Blue版本滑入我的Game Boy时,我想:也许我可以做一点计算机视觉相关的工作,而不是...

2019-12-10 19:54:41 8186 3

原创 GPS坐标与UTM坐标的转换

需要注意的变化之一是,在Ubuntu 16.04中的libgps版本中,STATUS_DGPS_FIX标志已被删除,因此gpsd_client软件包将无法指示是否在修复程序中使用了DGPS。否则,API不变。参见:http://wiki.ros.org/gps_common 。CMake Error at /usr/share/cmake-3.5/Modules/FindPkgConfig....

2019-12-03 11:35:28 7927 16

原创 在ROS中创建自定义消息

1 问题在ROS中创建自定义消息,参考ros wiki的教程,但是没有成功。2 可行的方法1.创建工作空间mkdir -p ~/generate_my_msgs_ws/src2.创建packagecd ~/generate_my_msgs_ws/srccatkin_create_pkg generate_my_msgs roscpp nav_msgs std_msgs geomet...

2019-12-02 20:52:38 1235 2

原创 make[2]: 警告:检测到时钟错误。您的创建可能是不完整的

1 问题今天使用make编译程序时,提示以下信息:make[2]: Warning: File ‘1.txt’ has modification time 22152 s in the futuremake[2]: 警告:检测到时钟错误。您的创建可能是不完整的。虽然只是警告,但看着不爽,也不确定会有什么问题。2 寻找原因在当前目录下,运行以下命令:ll -lh输出:drw...

2019-12-02 19:42:39 2175

翻译 robot_localization(3):配置

将传感器数据合并到robot_localization的任何状态估计节点的位置估计中时,重要的是要提取尽可能多的信息。本教程详细介绍了传感器集成的最佳实践。有关更多信息,建议用户观看ROSCon 2015的演示文稿。1 传感器配置即使所讨论的消息类型在配置向量中不包含某些变量(例如,虽然<<MsgLink(geometry_msgs/TwistWithCovarianceStam...

2019-12-02 13:21:13 4425 7

翻译 robot_localization(2):准备数据

在使用robot_localization中的状态估计节点开始之前,用户必须确保其传感器数据格式正确,这一点很重要。每种类型的传感器数据都有各种注意事项,建议用户在尝试使用robot_localization之前完整阅读本教程。有关更多信息,建议用户观看ROSCon 2015的演示文稿。1 遵守ROS标准要考虑的两个最重要的ROS REP是:REP-103(标准计量单位和坐标约定)RE...

2019-12-02 12:30:56 2798 2

翻译 robot_localization(1):介绍,安装和状态估计节点

1 robot_localizationrobot_localization是状态估计节点的集合,每个节点都是非线性状态估计器的一种实现,用于在3D空间中移动的机器人。它包括两个状态估计节点ekf_localization_node和ukf_localization_node。另外,robot_localization提供navsat_transform_node,它有助于集成GPS数据。Gi...

2019-12-02 12:23:25 16148 6

原创 在NVIDIA Jetson TX2上安装CH341和CP210x驱动

1 前言NVIDIA Jetson TX2的Ubuntu 16.04系统上没有安装CH341和CP210x驱动,开始我并没有意识到这个问题。明明用lsusb识别到了设备,为什么没有ttyUSB*?为什么在x86的PC上就有?后来才发现原来没有驱动!经验就是不断踩坑积累的,都得经历这些,才能成长。虽然NVIDIA Jetson TX2对开发者已经很友好了,但还是希望将来系统能够预装CH341...

2019-11-29 21:14:40 1135 2

翻译 ROS中的标准计量单位和坐标约定

1 摘要该REP为ROS中使用的单位和坐标约定提供了参考。2 基本原理单位和约定不一致是开发人员常见的集成问题来源,也可能导致软件错误。由于数据转换,它还会创建不必要的计算。该REP记录了ROS的标准约定,以减少这些问题。3 例外情况潜在的机器人软件的范围太广,无法要求所有ROS软件都遵循本REP的准则。但是,选择不同的约定应该有充分的理由并有据可查。4 单位我们选择对国际单位制进行...

2019-11-28 17:56:58 1601

空空如也

空空如也

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

TA关注的人

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