自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 hdl环境编译

目录1. 前提2. hdl_graph_slam2.1 安装依赖2.2 安装hdl_graph_slam3. hdl_localization4. hdl_people_tracking5. interactive_slam5.1 安装依赖5.2 编译interactive_slam1. 前提在Ubuntu18.04上安装ROS开发环境,版本为melodic。具体安装详见: ROS学习01.初识ROS2. hdl_graph_slamGithub地址:hdl_graph_slam2.1 安装依赖

2020-10-15 16:06:47 59 1

原创 hdl代码注释02:启动文件的参数含义

目录1. 建图的启动文件hdl_graph_slam_imu.launch参考文献1. 建图的启动文件hdl_graph_slam_imu.launch根据GitHub上的hdl_graph_slam/launch/hdl_graph_slam_imu.launch文件修改而来,添加了imu消息(存疑,不知道有没有起作用,后期需要排查)。修改后,自定义文件hdl_graph_slam_sx.launch的路径如下:hdl_graph_slam/launch/hdl_graph_slam_sx.laun

2020-10-09 16:38:21 97 2

转载 hdl代码注释01:hdl_graph_slam节点文件功能总览

目录1. prefiltering_nodelet.cpp:点云滤波2. floor_detection_nodelet.cpp:地面平面检测3. scan_matching_odometry_nodelet.cpp:前端里程计4. hdl_graph_slam_nodelet.cpp:后端概率图构建4.1 cloud_callback(const nav_msgs::OdometryConstPtr& odom_msg,constsensor_msgs::PointCloud2::ConstPtr

2020-10-09 10:54:49 52

转载 hdl_graph_slam源码解读(八):后端优化

目录1. 整体介绍2. 代码详解2.1 前端里程计消息处理2.2 gps消息2.3 imu消息2.4 地面拟合参数2.5 执行图优化2.6 生成地图并定时发送3. 整体思考参考文献1. 整体介绍这部分是整个系统的核心,因为这个系统就是建图的呀,建图的核心就是综合所有信息进行优化呀。我们前面几节介绍的所有的信息都会发送到这个节点中来供它使用。这部分的代码在文件apps/hdl_graph_slam_nodelet.cpp中。这部分的代码看着挺多,如果我们能够对它所有的函数分类,就很容易梳理它的内容了。

2020-09-30 16:16:10 33

转载 hdl_graph_slam源码解读(七):闭环检测

目录1. 整体流程1.1 函数detect的输入输出1.2 函数detect的功能2. 检测满足条件的关键帧3. 闭环匹配4. 一点思考参考文献做slam怎么能少得了闭环。闭环检测的代码在文件include/hdl_graph_slam/loop_detector.hpp中,整个流程分布的很清晰,我们直接进入看代码的环节了1. 整体流程1.1 函数detect的输入输出在调用闭环检测功能时,实际是调用的函数detect,所以我们直接看这个函数,就可以看出它的流程:std::vector<L

2020-09-30 10:30:13 37

转载 hdl_graph_slam源码解读(六):地面检测

目录1. 概述2. 分割地面3. 去掉法向量异常的点4. 拟合平面参数参考文献1. 概述地面检测的作用我们在第一节就讲过了,它为建图提供一个约束,可以提高建图精度。地面检测的代码全都在apps/floor_detection_nodelet.cpp文件中,这是一个节点文件,里面关于订阅和发布数据的内容我们不讲了,只介绍关于检测的核心算法。地面检测共分为三个步骤:根据高度参数把地面分割出来,由函数plane_clip完成把地面点云中,把法向量和地面实际法向量差别较大的点去掉,这一步由函数norm

2020-09-29 18:32:22 84

原创 工作笔记05:imu、底盘车轮、单激光雷达外参校准(基于hdl_graph_slam建图和定位)

目录1. imu 校准1.1 IMU型号1.2 坐标定义1.2.1 大地坐标系(WGS84)1.2.2 当地地理坐标系(ENU)1.2.3 传感器坐标轴定义1.3 传感器校准2. 底盘车辆参数配置3. 单激光雷达校准参考文献1. imu 校准1.1 IMU型号阅读IMU产品说明书,获得如下信息:Yesense YIS300 系列惯性传感系统YIS300 系列包含:YIS300-U 惯性测量单元(IMU):输出经过校准的加速度和角速度值,同时也能够输出磁场强度信息。YIS300-V 垂直参考系

2020-09-29 16:26:46 71

原创 工作笔记04 安装绍兴车环境(使用hdl进行建图和定位)

目录1. 在Ubuntu18.04上安装ROS开发环境2. 编译程序包2.1 提取程序包2.2 安装ros依赖2.3 安装g2o2.4 编译程序包1. 在Ubuntu18.04上安装ROS开发环境见 工作笔记01.绍兴车环境编译(笔记本模拟编译)中的:0.准备工作1.ubuntu18.04安装ROS运行环境**注意:用户名必须设为 lxr,在后期的程序中涉及文件路径。**否则,自行修改。2. 编译程序包2.1 提取程序包在Ubuntu主文件夹下提取程序包sx_ws.zip,提取出文件夹sx

2020-09-28 16:28:39 57 2

原创 工作笔记03:pcd地图转换成png图片格式(带有XY顶点坐标)

目录1. pcd转ply2. ply转换成xyz3. xyz转rcs4. rcs转png1. pcd转ply安装pcl-toolssudo apt-get install pcl-tools使用如下命令,转成ply文件:pcl_pcd2ply jh_out.pcd jh_in.ply2. ply转换成xyz安装 meshlabsudo apt-get install meshlab打开meshlab,将.ply文件拖入,在软件界面左上角选择导出,保存为.xyz格式。

2020-09-28 09:44:57 47

转载 hdl_graph_slam源码解读(五):前端里程计

目录1. 选择匹配方法2. 点云匹配3. 一点思考参考文献前端里程计的主要代码在apps/scan_matching_odometry_nodelet.cpp中,它的主要作用是订阅点云、匹配得到位姿,并以odom形式发布位姿。对于订阅发布数据之类的,属于ros的基础内容,我们不在这里介绍了,我们介绍核心内容,即点云配准这部分。点云匹配包括两方面内容:一是根据配置文件选择点云匹配方法二是根据订阅得到的点云去匹配得到位姿。我们把这两方面内容分别介绍。1. 选择匹配方法这个函数在文件src/h

2020-09-24 16:33:24 33

转载 hdl_graph_slam源码解读(四):关键帧

目录1. 整体介绍2. 详细介绍2.1 KeyFrame类2.2 KeyFrameSnapshot类2.3 KeyFrameUpdater类参考文献1. 整体介绍在图优化中,关键帧的作用是不言而喻的,一个关键帧就对应一个顶点。在这个系统中,关键帧对应的文件有两类:src/hdl_graph_slam/keyframe.cpp 和include/hdl_graph_slam/keyframe.hpp它包含KeyFrame和KeyFrameSnapshot两个类。KeyFrame类:对应所有优化

2020-09-24 15:38:31 17

转载 hdl_graph_slam源码解读(三):点云滤波

目录1. 降采样滤波1.1 VOXELGRID1.2 APPROX_VOXELGRID1.3 NONE2. 滤除离群点2.1 StatisticalOutlierRemoval2.2 RadiusOutlierRemoval参考文献点云滤波的内容主要在apps/prefiltering_nodelet.cpp中,主要包括两步滤波,一是降采样,而是滤除离群点,我们分别介绍。1. 降采样滤波代码如下:// select a downsample method (VOXELGRID, APPROX_VOX

2020-09-24 14:48:57 33

转载 hdl_graph_slam源码解读(二):g2o顶点和边的管理

转载自知乎专栏:hdl_graph_slam源码解读(二):g2o顶点和边的管理https://zhuanlan.zhihu.com/p/89056230目录1. 整体分析2. 详解顶点和边2.1 帧间匹配的位姿2.2 闭环检测的位姿2.3 gps的经纬高2.4 imu的角度和加速度2.5 平面检测的信息3. 信息矩阵3.1 帧间匹配的位姿3.2 闭环检测的位姿3.3 gps的经纬高3.4 imu的角度和加速度4. 鲁棒核参考文献先看各个模块的代码,等了解得差不多了,再去看主流程。所以就先分析g2o顶

2020-09-22 16:41:31 60

转载 从零开始做自动驾驶定位(三): 软件框架

本文章配套源代码地址:https://github.com/Little-Potato-1990/localization_in_auto_driving测试数据:https://pan.baidu.com/s/1TyXbifoTHubu3zt4jZ90Wg提取码: n9ys本篇文章对应的代码Tag为 3.0目录1. 概述1. 概述

2020-09-22 14:22:57 85

转载 hdl_graph_slam源码解读(一):整体介绍

目录hdl_graph_slam是一套激光slam系统,可融合gps、imu、lidar三种传感器,同时具有闭环检测功能。开源代码地址为:https://github.com/koide3/hdl_graph_slam

2020-09-21 16:42:44 68

转载 从零开始做自动驾驶定位(二): 数据集

目录1. 数据集介绍1.1 整体介绍1.2 采集平台1.3 选择和使用2. KITTI数据转成ROS的bag文件3. bag文件测试参考文献本文章配套源代码地址:https://github.com/Little-Potato-1990/localization_in_auto_driving测试数据:https://pan.baidu.com/s/1TyXbifoTHubu3zt4jZ90Wg 提取码: n9ys本篇对应代码Tag为 2.01. 数据集介绍1.1 整体介绍做算法,首先要先搞数据

2020-09-21 16:01:16 100

转载 从零开始做自动驾驶定位(一): 开篇

目录11

2020-09-21 15:23:18 858

原创 前言——激光SLAM简述

目录1. 地图2. 前端3. 闭环4. 后端5. 信息融合6. 定位7. 初始定位参考文献1. 地图对激光slam进行分类,我觉得最好的分类方式就是根据地图的种类来分,地图的表示形式直接联系了其他模块的可选项,甚至直接决定了整个系统的程序架构。目前主流的地图表示形式有以下几种:直接的点云地图占据栅格地图概率地图surfel地图三维网格地图Multi-level surface 地图appearance-based 地图2. 前端前端是一个slam系统最基础的部分,它提供每一帧点云

2020-09-21 14:44:36 26

原创 ROS学习04.ROS中的常用组件

目录4.1 launch启动文件4.1 launch启动文件启动文件(Launch File)是ROS中一种同时启动多个节点的途径,它还可以自动启动ROS Master节点管理器,并且可以实现每个节点的各种配置,为多个节点的操作提供很大便利。...

2020-09-21 14:22:10 132

原创 工作笔记02.编译功能包并配置传感器

目录1.1.

2020-09-12 09:35:27 111

转载 备忘01.Ubuntu屏幕旋转(转载)

用命令旋转屏幕:xrandr |grep "\<connected\>"会找到我的screen:eDP-1-1xrandr --output "eDP-1-1" --rotate normal恢复正常显示。xrandr --output "eDP-1-1" --rotate left向左旋转90度xrandr --output "eDP-1-1" --rotate right向右旋转90度xrandr --output "eDP-1-1" --rotate inverted

2020-09-10 18:33:48 22

原创 工作笔记01.ROS环境安装并编译cartographer

目录1. ubuntu18.041. ubuntu18.04

2020-09-09 18:27:12 133

原创 ROS学习03.ROS基础

目录3.1 第一个ROS例程——小乌龟仿真3.1.1 turtlesim功能包3.1 第一个ROS例程——小乌龟仿真3.1.1 turtlesim功能包该功能包的核心是turtlesim_node节点,提供一个可视化的乌龟仿真器,可以实现很多ROS基础功能的测试。每一个ROS功能包都是一个独立的功能,其中可能包含一个或多个节点,这些功能对外使用话题、服务、参数等作为接口。话题与服务:即功能包中的话题与服务接口参数:功能包中的参数,开发者可以通过命令、程序等方式来获取这些参数并进行修改。tur

2020-09-04 16:47:00 133

原创 ROS学习02.ROS架构

目录2.1 ROS架构设计2.1 ROS架构设计可将其分成3个层次:OS层、中间层、应用层OS层ROS不是一个传统意义上的操作系统,不能直接运行在计算机硬件之上,而是需要依托于Linux系统。在OS层,可以直接使用ROS官方支持度最好的Ubuntu操作系统,也可以使用其它Linux操作系统。中间层由于Linux并没有针对机器人开发提供特殊的中间件,所以ROS在中间层做了大量工作。最重要的是基于TCPROS/UDPROS的通信系统。ROS在基础的TCP/UDP网络之上,进行了再次封装,构成了T

2020-09-04 11:57:46 49

原创 ROS学习01.初识ROS

目录1.1 ROS是什么1.1.1 ROS的起源1.1.2 ROS的设计目标1.1.3 ROS的特点1.2 如何安装ROS1.2.1 操作系统和ROS版本选择1.2.2 配置系统软件源(Ubuntu 软件仓库)参考文献1.1 ROS是什么1.1.1 ROS的起源ROS(Robot Operating System)是一种应用于机器人开发的通用软件框架。它集成了大量的工具、库、协议,提供了类似操作系统所提供的功能。ROS最初应用于斯坦福大学人工智能实验室与机器人技术公Willow Garage合作的个

2020-09-03 14:35:37 234

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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