- 博客(20)
- 收藏
- 关注
原创 Airsim雷达相机融合生成彩色点云
链接: https://pan.baidu.com/s/14hWBDnRZC41xkqAk6FirtA 提取码: 1een--来自百度网盘超级会员v4的分享3D激光雷达和相机的融合指的是将激光雷达获得的3D点,投影到相机图像上,从而给图像每个像素点添加深度信息或者为雷达获取到的3D点添加RGB信息。效果如图:可以知道,要将3D点投影到图像需要知道相机和雷达的坐标系的变换矩阵以及相机的内参理论简单来说就算一句话:通过雷达相机的变换矩阵将雷达系/世界坐标系的3D点投影到相机外参包括旋转和平移,将世界/雷达坐标
2022-06-28 17:42:43
3110
10
原创 Aloam+deeplabv3+ 构建语义地图+行人车辆检测(kitti数据集)
本文用了一种非常简单粗暴的方法生成语义地图;只是先看看效果,在之后会继续完善。主要用到的两个github链接(感谢大佬)融合相机的aloamhttps://github.com/TianXiaoRui/color_map_loamdeeplabv3+GitHub - VainF/DeepLabV3Plus-Pytorch: DeepLabv3 and DeepLabv3+ with pretrained weights for Pascal VOC & Cityscapes
2022-04-15 18:54:53
7405
66
原创 c++学习(6)继承和多态
1、继承1.1、概述继承与派生是同一过程从不同的角度看– 保持已有类的特性而构造新类的过程称为继承(inherit)– 在已有类的基础上新增自己的特性而产生新类的过程称为派生(derive) 。– 子类继承了父类,父类派生了子类#include <iostream>using namespace std;#define PI 3.14159class Point // 定义"点"类{ int x, y;public: Point(int
2022-03-21 15:03:05
1015
原创 c++学习(5):数据的共享与保护
面向对象中类是程序基本单元,分为类内和类外数据共享和保护1、类的静态成员1.1、类静态成员概述有时我们可能希望有某一个或几个数据成员为同一个类的所有对象共有,也就是实现数据共享静态成员提供一种同类对象对数据的共享机制静态成员分为:– 静态数据成员– 静态成员函数静态数据成员是类的属性,这个属性不属于类的任何对象,但所有的对象都可以访问和使用它如果将类的一个成员定义成静态型的,则该类的所有对象的该成员共用同一存储空间。1.2、静态数据成员的初始化1...
2022-03-20 17:37:36
2212
原创 c++学习(4):面向对象编程
注:课程学习笔记:均参考自老师的课件基本概念:采用函数(或过程)来描述对数据结构的操作,数据之间通过全局变量或参数传递进行联系面向对象程序设计的特征是封装性、继承性和多态性面向对象的程序主要由类和对象组成。类的构成类(class)是面向对象系统中最基本的组成元素,是一种自定义数据类型类定义格式class 类名{ public: //公有数据成员和公有成员函数; private: //私有数据成员和私有成员函数; protec.
2022-03-19 20:14:17
1449
翻译 pcl学习
在LIO-SAM中用到的点云类型为PointXYZIRPYT;包括最基本的x,y,z和强度I;以及rol,pitch,yaw三个旋转角和时间T(time);在PCL的库中没有这样的点云类型,但是PCL给我们提供了创建自己类型点云的方法。完整代码#include <pcl/point_types.h>#include <pcl/point_cloud.h>#include <pcl/io/pcd_io.h>struct MyPointType /
2022-03-17 15:55:06
2175
1
原创 ros学习 tf;参数;话题;std_msgs
tf是一个让用户随时间跟踪多个参考系的功能包,它使用一种树型数据结构,根据时间缓冲并维护多个参考系之间的坐标变换关系,可以帮助用户在任意时间,将点、向量等数据的坐标,在两个参考系中完成坐标变换。简单来说,我们知道在机器人工作过程中,机器人自身处于世界坐标系下,同时其自身又具备了一个局部坐标系,这两个坐标系的存在确保了我们能够计算得出机器人的位姿。基本数据类型分别对应四元数,向量,点坐标,位姿和转换模板tf::Stamped <T> 1 template <
2022-03-16 16:26:23
2209
原创 c++学习:多线程;顺序容器;智能指针
多线程的创建创建线程比较简单,C++提供头文件thread,使用std的thread实例化一个线程对象创建。std::thread 在 #include 头文件中声明,因此使用 std::thread 时需要包含 #include 头文件。#include <iostream>#include <thread>#include <stdlib.h> //sleep using namespace std; void t1() //普通的函数,用
2022-03-15 19:29:14
836
原创 pytorch学习(小土堆)
b站小土堆的pytorch教学视频,实在是太好了。不光教代码的语法功能,更重要的是教你看pytorch官网。本文作为学习笔记,将小土堆提供的GPU训练代码进行详解分析,(因为这个案例基本上综合了小土堆前面讲过的所有内容)防止自己忘了。可以随时查看。代码import torchimport torchvisionfrom torch.utils.tensorboard import SummaryWriter# from model import *# 准备数据集from torch
2022-03-01 10:54:33
3379
原创 基于滤波的融合2(在IMU与雷达的基础上融合运动约束)/深蓝学院多传感器融合第八章作业
1、融合流程1.1、状态方程(求F和B)状态方程一般形式如下(是一个微分方程)x服从一个高斯分布状态量由预测给出(本例中是由IMU预测)其中状态量的误差状态量误差的微分形式为所以他们的转换矩阵F为IMU自身误差加速度误差,角速度误差,bias误差除加速度误差与状态量相差一个旋转矩阵外i,其他均无关,所以B为1.2、观测方程(求G和C)观测方程一般形式y为观测,包括位置和失准角观测量与状态量的一三项...
2022-02-23 10:49:08
1014
原创 Airsim+Lego-Loam
本文主要介绍,利用Airsim中自己的场景跑通Lego-Loam;并且画出Lego-Loam的里程计轨迹,与真值轨迹(待完善,坐标系搞得有些蒙)1、设置setting文件{ "SeeDocsAt": "https://github.com/Microsoft/AirSim/blob/master/docs/settings.md", "SettingsVersion": 1.2, "SimMode": "Multirotor", "ViewMode": "SpringArmChas
2022-02-15 10:32:39
2739
3
原创 基于卡尔曼滤波器的融合IMU与雷达/深蓝多传感器融合第七章作业
1、更新里程计信息void ErrorStateKalmanFilter::UpdateOdomEstimation( Eigen::Vector3d &linear_acc_mid, Eigen::Vector3d &angular_vel_mid) { // // TODO: this is one possible solution to previous chapter, IMU Na
2022-02-13 20:31:11
3264
3
原创 手写ICP-SVD
ICP简介Iterative Closest Point迭代最近点算法;分别在待匹配的目标点云P和源点云Q中,按照一定的约束条件,找到最邻近点(pi,qi),然后计算出最优匹配参数R和t,使得误差函数最小。误差函数为E(R,t)为其中R和t分别为两帧点云的旋转与平移矩阵;通过不断的迭代求解出两帧点云相对平移与旋转流程如下:ICP求解过程1、构造误差函数2、化简将误差函数拆解成两部分,一部分是只与旋转有关,另一部分与旋转和平移有关,所以可以先求旋转再求平移.
2022-02-10 14:30:00
593
原创 惯性传感器导航解算/多传感器融合6
主要目的:利用IMU测量的角速度、加速度,根据上一时刻导航信息,推算出当前时刻导航信息,包括姿态解算、速度解算、位置解算。1、调用各个函数接口更新 (及格部分)bool Activity::UpdatePose(void) { if (!initialized_) { // use the latest measurement for initialization: OdomData &odom_data = odom_data_buff_.ba
2022-01-30 16:32:06
806
原创 g2o入门(一)曲线拟合
简介g2o是一个通用的图优化库,可以应用到任何能够表示成图优化的最小二乘问题。例如BA,icp,曲线拟合等。但它不像Ceres一样有丰富详细的学习资料。图优化,是把优化问题表现成图(Graph)(指图论中的图)的一种方式,一组优化变量和变量之间的误差项,使用图来图来描述,使它们之间的关系更加直观化;三角形和圆圈,都是顶点,待优化的变量; 红色与蓝色的线,都是边,描述相连顶点优化变量关系,也就是误差项;g2o使用步骤如下:定义顶点和边的类型; 构建图; 选择优化算法; 调
2022-01-28 10:39:32
4044
1
原创 Ceres入门(二)曲线拟合与BA求解
在一篇博客中,通过分析helloword的自动求导和节写求导简单例子,了解了Ceres的基本流程。本片博客在上一片基础之上,以高博十四讲内容为基础,分析Ceres两个使用案例一、曲线拟合1、问题描述其中a,b,c为待估计的参数,w为噪声。在程序里利用模型生成x,y的数据,在给数据添加服从高斯分布的噪声。之后用ceres优化求解参数a,b,c。2、求解代码代码部分仍然与上一篇博客类似,分为三个部分(1)、第一部分:构建cost fuction,即代价函数struct CURV
2022-01-26 21:06:59
1289
原创 Cerse入门(一)Helloword解析与自动求导
简介:Ceres是谷歌开发的广泛使用的最小二乘问题求解库。用户只需要按照一定的步骤定义待解的优化问题然后交给求解器计算。最小二乘问题一般格式如下:使用Ceres求解非线性优化问题,一共分为三个部分:1、 第一部分:构建cost fuction,即代价函数,也就是寻优的目标式。这个部分需要使用仿函数(functor)这一技巧来实现,做法是定义一个cost function的结构体,在结构体内重载()运算符,具体实现方法后续介绍。2、 第二部分:通过代价函数构建待求解的优化问题。3、 第三部分
2022-01-24 21:21:28
1274
原创 惯性器件加速度计不基于转台的内参标定/多传感器融合第五章作业
加速度计内参模型1、零偏概念:加速度计输出中的常值偏移,及bias2、刻度系数误差概念:器件的输出往往为脉冲值或模数转换得到的值,需要乘以一个刻度系数才能转换成角速度或加速度值,若该系数不准,便存在刻度系数误差3、安装误差概念:如右图所示,b坐标系是正交的imu坐标系,g坐标系的三个轴是分别对应三个陀螺仪。由于加工工艺原因,陀螺仪的三个轴并不正交,而且和b坐标系的轴不重合,二者之间的偏差即为安装误差。4、不需要转台的标定内参模型上下三角模型转换:构造函数中进行
2022-01-22 19:52:24
1280
原创 A-LOAM线/面特征雅可比解析求导
雅可比矩阵推导线特征:核心思想:点到直线距离最小。通过平行四边形面积除以对角线长度面特征核心思想:使得点到面距离最短线/面特征雅可比矩阵解析求导实现需要修改的代码为include/lidar_localization/models/loam/aloam_factor.hpp源代码利用直接求导的方式定义面特征与线特征自动求导结构体struct LidarEdgeFactorstruct LidarPlaneFactor...
2022-01-04 15:42:25
1995
原创 视觉slam开源方案对比(ORB-SLAM2,ORB-SLAM3,VINS)
ORB-SLAM2: GitHub - raulmur/ORB_SLAM2: Real-Time SLAM for Monocular, Stereo and RGB-D Cameras, with Loop Detection and Relocalization CapabilitiesORB-SLAM3: GitHub - JKTao/ORB_SLAM3: ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial
2021-12-20 15:15:46
9770
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人