<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[try_again_later的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/try_again_later</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; try_again_later]]></copyright><item><title><![CDATA[进程和线程主要区别与定义]]></title><link>https://blog.youkuaiyun.com/try_again_later/article/details/107003728</link><guid>https://blog.youkuaiyun.com/try_again_later/article/details/107003728</guid><author>try_again_later</author><pubDate>Sun, 28 Jun 2020 17:33:51 +0800</pubDate><description><![CDATA[抽象理解

直接上图，CPU是工厂、电力资源是cpu 时间片、进程是车间、线程是车间工人。
操作系统的资源分配与调度逻辑

以多进程形式，允许多个任务同时运行；
以多线程形式，允许单个任务分成不同的部分运行；
提供协调机制，一方面防止进程之间和线程之间产生冲突，另一方面允许进程之间和线程之间共享资源。

科学理解
进程
进程是程序的一次执行过程，是一个动态概念，是程序在执行过程中分配和管理资源的基本单位，每一个进程都有一个自己的地址空间，至少有 5 种基本状态，它们是：初始态，执行态，等待状态，就绪状态，终]]></description><category></category></item><item><title><![CDATA[《wiki官网教程》2 编写简单的服务器service和客户端 client(C++)]]></title><link>https://blog.youkuaiyun.com/try_again_later/article/details/106980418</link><guid>https://blog.youkuaiyun.com/try_again_later/article/details/106980418</guid><author>try_again_later</author><pubDate>Sat, 27 Jun 2020 12:49:14 +0800</pubDate><description><![CDATA[服务（services）是节点之间通讯的另一种方式。服务允许节点发送请求（request） 并获得一个响应（response）。
之前讲的是两个节点如果要通信需要经过话题topic，一个节点需要订阅话题并sub消息，另一个节点订阅话题并发布pub消息。
使用方式：
rosservice list         输出可用服务的信息
rosservice call         调用带参数的服务
rosservice type         输出服务类型
rosservice find         依]]></description><category></category></item><item><title><![CDATA[VS Code创建、调试ROS项目]]></title><link>https://blog.youkuaiyun.com/try_again_later/article/details/106916282</link><guid>https://blog.youkuaiyun.com/try_again_later/article/details/106916282</guid><author>try_again_later</author><pubDate>Tue, 23 Jun 2020 19:03:54 +0800</pubDate><description><![CDATA[前言：
在vs code下配置ROS项目开发的环境
包括catkin创建编译工作空间，创建ROS项目，调试ROS节点
一、创建工作空间
首先创建一个cMake工作空间，用到了catkin_make其实就是
cmake …
make
两个步骤的缩写。
$ mkdir -p ~/ros_test/src
$ cd ~/ros_test/
$ catkin_make

注意：每次打开工作空间ros_test文件要source一下
cd ~/ros_test
source devel/setup.bash

除此之]]></description><category></category></item><item><title><![CDATA[Ubuntu18.04配置VS Code+CMake的C++开发环境]]></title><link>https://blog.youkuaiyun.com/try_again_later/article/details/106770319</link><guid>https://blog.youkuaiyun.com/try_again_later/article/details/106770319</guid><author>try_again_later</author><pubDate>Tue, 16 Jun 2020 16:03:37 +0800</pubDate><description><![CDATA[2020-06-14
首先，介绍自己电脑：Ubuntu18.04、VS Code 1.46版
本文目的：为VS Code配置好C++ 开发环境，以及VS Code +CMake的配置
对于C++ 工程，有四个必要的json配置文件，先ctrl+shift+p打开输入指令分别是：

c_cpp_properties.json ：配置项目结构，自动生成和更新，输入C/C++:Edit configuration
task.json: 构建和编译运行项目，输入Task:Configure Task，模板，Othe]]></description><category></category></item><item><title><![CDATA[从头到尾配置最好用的Ubuntu18.04]]></title><link>https://blog.youkuaiyun.com/try_again_later/article/details/106683224</link><guid>https://blog.youkuaiyun.com/try_again_later/article/details/106683224</guid><author>try_again_later</author><pubDate>Fri, 12 Jun 2020 15:07:06 +0800</pubDate><description><![CDATA[​​
一、重装Ubuntu系统
ubuntu18.04镜像
直接上图


接下来到了分区界面
我的120G固态硬盘模板为：选择点击“+ - Change”中的“+”：

/boot：主分区，300M
/：主分区，20G
swap:逻辑分区，2G
/home：逻辑分区，97G

除了swap的文件格式为交换空间，其余都是EXT4.

大功告成。
二、禁用集成显卡，只用独显
我们用software-properties-gtk这个程序来安装专有的Nvidia显卡驱动。在终端里输入下面的命令打开
software]]></description><category></category></item><item><title><![CDATA[多传感器融合定位2（封装KF和EKF）]]></title><link>https://blog.youkuaiyun.com/try_again_later/article/details/105164066</link><guid>https://blog.youkuaiyun.com/try_again_later/article/details/105164066</guid><author>try_again_later</author><pubDate>Sat, 16 May 2020 11:32:14 +0800</pubDate><description><![CDATA[有了上一节分别对激光雷达做KF、对毫米波雷达做EKF两种流程之后，我们合并KF和EKF的跟踪算法的代码，将他们封装在一个名为KalmanFilter的类中，方便后续调用。下面做一个多传感器融合定位实验，采集到的数据为两种交替出现的数据。
代码整体框架如图所示：

前言
无论是KF处理线性问题还是EKF处理非线性问题，它都只涉及单一传感器的障碍物跟踪。激光雷达测量位置精度更高但是无法测量速度，毫米波...]]></description><category></category></item><item><title><![CDATA[多传感器融合定位1（激光雷达+毫米波雷达）]]></title><link>https://blog.youkuaiyun.com/try_again_later/article/details/105155586</link><guid>https://blog.youkuaiyun.com/try_again_later/article/details/105155586</guid><author>try_again_later</author><pubDate>Sat, 16 May 2020 11:30:28 +0800</pubDate><description><![CDATA[前言
LZ最近在看Udacity的无人驾驶课程，该课程主要分为三部分，第一部分的课程主要使用Python实现的车道线识别、车牌识别等计算机视觉项目。由于我对定位、建图等方面有些知识储备，所以先从第二部分课程开始。
本节将用最简洁的话讲解卡尔曼滤波KF、非线性卡尔曼滤波EKF等知识点，并就此实现一个多传感器融合定位的小demo，后面会就粒子滤波PF专门开一个章节讲解。
一、卡尔曼滤波 KF
1、引子...]]></description><category></category></item><item><title><![CDATA[粒子滤波定位]]></title><link>https://blog.youkuaiyun.com/try_again_later/article/details/105179722</link><guid>https://blog.youkuaiyun.com/try_again_later/article/details/105179722</guid><author>try_again_later</author><pubDate>Sat, 16 May 2020 11:29:24 +0800</pubDate><description><![CDATA[理论知识
除了线性状态估计的KF和非线性状态估计的EKF，还有一种可以解决非线性、非高斯问题的粒子滤波算法，粒子滤波主要基于蒙特卡洛方法，使用粒子集来表示概率。
粒子滤波主要分为四部分：初始化、预测、粒子权重更新、重采样，之后在重复的预测、更新、重采样，使得粒子逐渐向真实位置聚集。


1、初始化
粒子滤波初始化需要初始的位置（x,y），航向(yaw)，以及高斯噪声。

单纯用GPS的结果是有很大...]]></description><category></category></item><item><title><![CDATA[激光雷达点云预处理：传感器时间同步、点云去畸变]]></title><link>https://blog.youkuaiyun.com/try_again_later/article/details/105809478</link><guid>https://blog.youkuaiyun.com/try_again_later/article/details/105809478</guid><author>try_again_later</author><pubDate>Thu, 14 May 2020 12:27:34 +0800</pubDate><description><![CDATA[一、传感器时间同步
多传感器融合过程中由于传感器之间的采集频率不同，导致无法保证传感器数据同步。这里以激光雷达为核心传感器，每次收到一次雷达数据，便以当前雷达数据采集时刻作为要插入的时间点，该时刻另一传感器IMU的数据通过插值获得。这里同样可以参考VINS里相机和IMU时间同步的函数代码getMeasurements（）。
主程序在front_end_flow.cpp文件中的ReadData()函...]]></description><category></category></item><item><title><![CDATA[基于NDT的前端里程计框架优化]]></title><link>https://blog.youkuaiyun.com/try_again_later/article/details/105752750</link><guid>https://blog.youkuaiyun.com/try_again_later/article/details/105752750</guid><author>try_again_later</author><pubDate>Sat, 25 Apr 2020 23:17:29 +0800</pubDate><description><![CDATA[本文旨在对上一讲基于NDT的前端里程计代码解析
进行框架上的优化，主要参考知乎上专栏文章《从零开始做自动驾驶定位
》，在此基础上进行更加清晰的代码框架解读。
首先上一篇文章有以下缺点：
1、没有专门的参数配置文件.yaml
2、点云滤波、匹配作为常用的操作，应该专门设置模块。
3、没有内存管理：每个关键帧都存了点云，所有关键帧在内存中随着时间推移严重影响运行速度。这里考虑除了滑动窗局部地图涉及的关...]]></description><category></category></item><item><title><![CDATA[基于NDT的前端里程计代码解析]]></title><link>https://blog.youkuaiyun.com/try_again_later/article/details/105689579</link><guid>https://blog.youkuaiyun.com/try_again_later/article/details/105689579</guid><author>try_again_later</author><pubDate>Thu, 23 Apr 2020 13:47:53 +0800</pubDate><description><![CDATA[本文主要对Lidar_Localization文件中的三个源文件，front_end_node.cpp、front_end.h/cpp进行详细代码解读。
前端激光雷达点云里程计主要分为：点云下采样滤波、点云匹配、位姿估计、关键帧选取等步骤。具体流程为：
1）第一帧点云数据设置为地图
2）提取关键帧点云，拼接成地图，保证稀疏点云数据。
3）除了全局地图，还需要在当前帧附近形成滑动窗局部地图，减小计算...]]></description><category></category></item><item><title><![CDATA[LOAM源码解析4——transformMaintenance]]></title><link>https://blog.youkuaiyun.com/try_again_later/article/details/105632285</link><guid>https://blog.youkuaiyun.com/try_again_later/article/details/105632285</guid><author>try_again_later</author><pubDate>Mon, 20 Apr 2020 12:47:38 +0800</pubDate><description><![CDATA[这一部分主要为了：融合后的Lidar轨迹（里程计位姿+地图优化的位姿）

main函数
订阅的两个消息节点：
1、laserOdometry节点发布的/laser_odom_to_init消息（Lidar里程计估计位姿到初始坐标系的变换）
2、laserMapping节点发布的/aft_mapped_to_init消息（laserMapping节点优化后的位姿到初始坐标系的变换）
发布的节点：发布...]]></description><category></category></item><item><title><![CDATA[LOAM源码解析3——laserMapping]]></title><link>https://blog.youkuaiyun.com/try_again_later/article/details/105628584</link><guid>https://blog.youkuaiyun.com/try_again_later/article/details/105628584</guid><author>try_again_later</author><pubDate>Mon, 20 Apr 2020 12:11:31 +0800</pubDate><description><![CDATA[SLAM系统前面大多是先估计相邻两帧之间相对位姿估计，接下来开始建图，然后根据建图结果对现有姿态进行优化，最后把当前这特征点填充进地图，且估计当前帧相对于世界坐标系下的位姿。
在扫描周期末尾激光雷达里程计输出畸变矫正过的点云Pk+1^\widehat{P_{k+1}}Pk+1​​，同时还有整个周期内每个点的姿态Tk+1LT_{k+1}^{L}Tk+1L​。雷达建图过程是为了把Pk+1^\wideh...]]></description><category></category></item><item><title><![CDATA[LOAM源码解析2——laserOdometry]]></title><link>https://blog.youkuaiyun.com/try_again_later/article/details/105596239</link><guid>https://blog.youkuaiyun.com/try_again_later/article/details/105596239</guid><author>try_again_later</author><pubDate>Sat, 18 Apr 2020 22:22:38 +0800</pubDate><description><![CDATA[这是LOAM第二部分Lidar laserOdometry雷达里程计。
在第一章提取完特征点后，需要对特征点云进行关联匹配，之后估计姿态。
主要分为两部分：

特征点关联使用scan-to-scan方式t和t+1时刻相邻两帧的点云数据进行配准，分为边缘点匹配和平面点匹配两部分。计算点到直线的距离和点到平面的距离。
姿态解算根据匹配的特征点云使用LM算法估计接收端位姿。

这部分代码完全是放在mai...]]></description><category></category></item><item><title><![CDATA[LOAM源码解析——scanRegistration]]></title><link>https://blog.youkuaiyun.com/try_again_later/article/details/105466169</link><guid>https://blog.youkuaiyun.com/try_again_later/article/details/105466169</guid><author>try_again_later</author><pubDate>Sun, 12 Apr 2020 20:04:47 +0800</pubDate><description><![CDATA[入手激光雷达SLAM，从最经典的LOAM源码开始，之后会对秦通在此基础上改进的A-LOAM源码进行观看，应该就会很简单了，第三步是把LEGO-LOAM的源码进行解读。之前对LOAM的论文进行了详细解读。
LOAM的源码主要分为scanRegistration提取特征点、laserOdometry 10HZ估计位姿、laserMapping 1HZ构建三维地图、transforMaintenance...]]></description><category></category></item><item><title><![CDATA[激光雷达坐标系、方向角和仰角]]></title><link>https://blog.youkuaiyun.com/try_again_later/article/details/105456252</link><guid>https://blog.youkuaiyun.com/try_again_later/article/details/105456252</guid><author>try_again_later</author><pubDate>Sat, 11 Apr 2020 18:47:39 +0800</pubDate><description><![CDATA[激光雷达介绍
单线的激光雷达Lidar，通过发射和接收激光束来计算与观测物体精确距离。
光速测距：通过飞行时间TOF，首先激光发射器发射激光脉冲，计时器记录发射时间；脉冲经物体反射后由接收器接受，计时器记录接受时间；时间差乘上光速即得到距离的两倍。

三维扫描点云：通过TOF时间差获得距离，通过水平旋转扫描测角度，并根据这两个参数建立二维的极坐标系，再通过获取不同俯仰角度获得三维的高度信息。
下图...]]></description><category></category></item><item><title><![CDATA[如何通过Git将本地项目上传到Github]]></title><link>https://blog.youkuaiyun.com/try_again_later/article/details/105408358</link><guid>https://blog.youkuaiyun.com/try_again_later/article/details/105408358</guid><author>try_again_later</author><pubDate>Thu, 09 Apr 2020 13:16:37 +0800</pubDate><description><![CDATA[一、Git下载安装

先说下Git官网下载太慢的问题，通过下述链接，阿里的镜像可以实现快速下载。

https://npm.taobao.org/mirrors/git-for-windows/

一直下拉，找到如图所示这些链接(不同的安装方式与不同的系统)。

二、将本地项目通过Git上传到Github上

重点参考下面两个博客即可

https://blog.youkuaiyun.com/Lucky_LX...]]></description><category></category></item><item><title><![CDATA[LeGO-LOAM:轻量级地面优化的建图]]></title><link>https://blog.youkuaiyun.com/try_again_later/article/details/105367531</link><guid>https://blog.youkuaiyun.com/try_again_later/article/details/105367531</guid><author>try_again_later</author><pubDate>Tue, 07 Apr 2020 22:37:19 +0800</pubDate><description><![CDATA[LEGO-LOAM 是基于LOAM优化的系统，相比之下，有以下优点：
1）LeGO-LOAM是轻量级的，因为可以在嵌入式系统上实现实时姿态估计和建图。
2）去除失真数据，在地面分离之后，执行点云分割以丢弃可能表示不可靠特征的点。
3）LeGO-LOAM引入地面优化，因为我们引入了两步优化姿势估计。从地面提取的平面特征用于在第一步中获得[tz,θroll,θpitch][t_{z},\theta_{...]]></description><category></category></item><item><title><![CDATA[LOAM：实时的雷达里程计和建图]]></title><link>https://blog.youkuaiyun.com/try_again_later/article/details/105341390</link><guid>https://blog.youkuaiyun.com/try_again_later/article/details/105341390</guid><author>try_again_later</author><pubDate>Tue, 07 Apr 2020 12:19:03 +0800</pubDate><description><![CDATA[之前对视觉SLAM主要的开源框架，ORB-SLAM2、SVO等进行了介绍，然后疫情期间对VINS-Mono进行了详细的源码解析，接下来考虑到工作原因需要用到激光雷达、GNSS、IMU等多传感器融合，所以接下来会对最经典的激光SLAM框架LOAM和LeGo-LOAM两个开源系统进行总结。
之前对激光SLAM的印象就是激光雷达采集到点云数据，然后用ICP对准就可获得接收端位姿估计。
第一篇经典的激光S...]]></description><category></category></item><item><title><![CDATA[SLAM秋招知识点总结——自动驾驶算法、3D视觉岗位（附有解答）]]></title><link>https://blog.youkuaiyun.com/try_again_later/article/details/104975633</link><guid>https://blog.youkuaiyun.com/try_again_later/article/details/104975633</guid><author>try_again_later</author><pubDate>Tue, 07 Apr 2020 12:18:14 +0800</pubDate><description><![CDATA[前言

本文为楼主在学习SLAM过程中相关知识点总结，包含多视图几何、常见SLAM系统源码解析、相关数学知识、图像处理问题、机器视觉知识点、《十四讲》精品总结、基本库安装等系列。这些知识点帮助我在2020年秋招面试自动驾驶岗位过程中有了系统认知。2020年新冠疫情影响滞留在家，把之前学习的知识点做了系统总结，所有问题都有解答，并附有链接，希望可以帮助到之后寻找相关岗位的同学。

目录

一、多视图...]]></description><category></category></item></channel></rss>