自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(106)
  • 资源 (7)
  • 收藏
  • 关注

原创 Ubuntu在Docker环境中使用ROS并使用GPU的启动命令

bashrc 文件。

2024-04-22 14:17:32 85

原创 Docker基础使用

三要素:镜像image 容器container 仓库repository。容器:软件安装后的状态,每个环境运行都是独立的。容器是用镜像创建的运行实例。镜像:类似软件安装包。docker常用命令。

2024-04-03 11:11:35 98

原创 在Docker中使用ROS的rviz时出现错误“libGL error: No matching fbConfigs or visuals found;“的解决方法

【代码】在Docker中使用ROS的rviz时出现错误"libGL error: No matching fbConfigs or visuals found;"的解决方法。

2023-12-14 20:45:57 437

原创 在Docker中使用ROS的rviz时出现错误“D-Bus library appears to be incorrectly set up;“的解决方法

【代码】在Docker中使用ROS的rviz时出现错误 "D-Bus library appears to be incorrectly set up;" 的解决方法。

2023-12-14 20:36:05 246

原创 ICP算法和优化问题详细公式推导

ICP(Iterative Closest Point):求一组平移和旋转使得两个点云之间重合度尽可能高。

2023-07-22 16:43:13 359

原创 Ubuntu修改文件夹下面所有文件权限的方法

ubuntu修改文件夹下所有文件权限方法

2022-10-23 11:57:06 23405 1

原创 使用CamLaserCalibraTool联合标定D455与思岚A3外参

使用MegviiRobot / CamLaserCalibraTool外参标定工具实现单线激光雷达和单目相机的外参联合标定。

2022-07-11 11:30:02 739 3

原创 使用OpenMVG获取相机位姿的方法

使用开源三维重建库OpenMVG,提取相机位姿

2022-07-11 10:38:33 1027

原创 matlab循环读取文件

一般情况下,假如我要读取一个名为a.txt的文件,只需要利用下面的语句:a=load('a.txt');现在假如我需要循环读取saif_1.txt,saif_2.txt,,,一直到saif_10.txt,可以利用下面的语句:for N=1:10a=load(['saif_',num2str(N),'.txt']);end其中,[‘a’,‘.txt’ ]可以实现对于字符串的连接,结果为a.txt,配合for循环和num2str函数,可以轻松地实现循环读取文件。ref:https://blog

2022-05-08 10:00:46 4047

原创 提取rosbag中的图像话题存为本地图像

新建存放图片文件夹在目标文件夹目录下运行$ rosrun image_view extract_images _sec_per_frame:=0.05 image:=<ROSIMAGESTOPIC>其中<ROSIMAGESTOPIC>为rosbag中的图像话题名称打开另一个终端播放rosbag$ rosbag play <BAGFILE>其中<BAGFILE>为rosbag文件路径...

2022-04-21 19:57:15 822

原创 cmake相关:sudo make install后的卸载

sudo make install后的卸载 我们知道linux中一般的编译一个package的顺序是 git clone package.gitcd packagemkdir build && cd buildcmake ..makesudo ...

2022-04-04 16:22:07 1668

原创 C++基础:第八章 深入IO

第八章 深入IO第1节 序第2节 IOStream概述流式IO而非记录IO处理的主要问题表示形式的变化:使用格式化/解析在数据的内部表示与字符序列之间切换与外部设备的通信:针对不同的外部设备引入不同的处理逻辑涉及到的操作格式化/解析缓存编码转换传输采用模板来封装字符特性,采用继承来封装设备特性常用类型实际上是类模板实例化的结果第3节 输入和输出分为格式化和非格式化两类非格式化:不涉及数据表示形式的变化常用输入函数:get/read/getline/gcount

2022-03-24 20:51:56 758

原创 C++基础:第七章 函数

第七章 函数第1节 函数基础栈帧结构函数的外部链接第2节 函数详解传值、传址、传引用传参数时的类型退化,传数组时函数形参退化成指针,所以形参不要写数组个数多维数组作为函数参数时void fun(int (*par)[4])int a[3][4] = {0};fun(a);避免退化的写法void fun(int (&par)[3]) int a[3];fun(a);变长参数initializer_list ,变量类型必须相同#include &l

2022-03-24 20:48:35 758

原创 C++基础:第六章 语句

第六章 语句第1节 语句基础常见类别:表达式语句,求值后丢弃 2+3;空语句复合语句,用大括号,形成独立的域顺序语句按先后顺序执行实际执行顺序可能产生变换(编译器优化)与硬件流水线紧密结合执行效率较高非顺序语句跳转一般情况效率较低第2节 分支语句if语句else 会与最近的if匹配C++17 常量表达式if constexpr (常量表达式) //编译器优化,避免不会被执行的分支{ //.....}else{ }带初始化语句的i

2022-03-24 20:43:22 700

原创 C++基础:第五章 表达式基础与详述

第五章 表达式基础与详述第1节 基础:引入表达式由一到多个操作数组成,可以求值并(通常会)返回求值结果(函数的调用是一种表达式,有时函数不会返回求值结果)最基本的表达式:变量、字面值通常包含操作符(运算符)操作符的特性接收操作数个数:一元、二元、三元操作数的类型操作数是左值还是右值结果的类型结果是左值还是右值优先级和结合性 Operator precedence and associativity(C++ reference)可以通过小括号来改变

2022-03-24 15:53:00 1060

原创 C++基础:第四章 数组、vector和字符串

文章目录第4章 数组、vector和字符串第1节 数组注意事项数组的复杂声明数组中元素的访问数组到指针的隐式转换获得s指向数组开头和结尾的指针数组的其他操作C字符串多维数组第2节 vector构造和初始化元素的索引和遍历迭代器iteratorvector相关其他内容第3节 string第4章 数组、vector和字符串第1节 数组将一个到多个相同类型的对象串联到一起,所组成的类型int a ; int b[10]; 区分类型,b的类型为int[10]初始化方式缺省初始化int a[3] =

2022-03-16 21:52:14 1257

原创 C++基础:第三章 对象与基本类型

第3章 对象与基本类型第1节 初始化/赋值语句初始化的基本操作:在内存中开辟空间(堆或栈),保存相应的数值在编译器中构造符号表,将标识符与相关内存空间关联值与对象都有类型第2节 类型详述类型是编译期概念,可执行文件中没有数据类型的概念C++是强类型语言引入类型是为了更好的描述程序,防止误用类型描述存储需要的尺寸(sizeof ,标准并没有严格限制)(一种类型对应的是汇编语言中一条简单的易处理的语句,汇编语句与程序的硬件相关)取值空间(std::numeric_limits ,超

2022-03-16 21:48:57 1126

原创 SLAM会议笔记(五)LLOAM

LLOAM: LiDAR Odometry and Mapping with Loop-closure Detection Based CorrectionAbstract在LOAM的基础上加入了回环检测,实现了雷达SLAM的前端、回环检测、后端全局优化的完整框架。Introduction提出了一种基于点云分割匹配的回环检测模块和一种基于全因子图的三维激光雷达SLAM优化后端。前端分为两个部分,第一部分为特征点提取和帧间匹配,以至于可以得到两帧之间的位姿变换关系。如果IMU数据可用,可以通过线性插值

2022-01-03 16:26:22 1624

原创 SLAM会议笔记(四)Lego-LOAM

LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable TerrainAbstract提出一种轻量级的ground-optimized雷达定位与建图方法。首先用点云分割滤除噪声点,然后提取特征边界和平面点。Introduction轻量级算法在小型嵌入式系统中实现。LOAM应用于本项目时,由于计算资源受限,特征提取的频率无法保证与传感器采集一致。此外在噪声环境下,LOAM的表现同样较差。首先

2021-12-30 13:23:21 1635 1

原创 SLAM会议笔记(三)V-LOAM

Visual-lidar Odometry and Mapping: Low-drift, Robust, and FastAbstract提出了一种新的使用激光雷达里程计和视觉里程计的框架,提升了表现,特别是在剧烈运动和短暂缺失视觉特征的情况。提出使用视觉里程计高频低精度在线估计帧间运动并且匹配校准高频雷达采集的点云,然后基于激光雷达里程计同时修正运动估计和点云配准。(结合DEMO和LOAM两种方法)SYSTEM OVERVIEW视觉里程计特征点的运动描述如下:对有深度信息的特征点,将等式

2021-12-30 13:19:13 1244

原创 SLAM会议笔记(二)Real-time DEMO

Real-time Depth Enhanced Monocular OdometryAbstract利用图像和稀疏的深度图做运动估计,同时利用三角量测和运动估计得到位置深度的突出图像特征点的深度,使用光束平差法(BA)对运动估计做修正。SYSTEM OVERVIEW帧间运动估计:对于有深度信息的图像特征点,运动描述如下,只使用两帧中的前一帧的深度信息,无深度信息的点归一化表示为 ,其中Z轴坐标为1。联立三行等式消去深度值得到等式对于无深度信息的特征点表示如下,联立得到等式:根

2021-12-30 13:16:07 712

原创 SLAM会议笔记(一)LOAM

LOAM: Lidar Odometry and Mapping in Real-timeABSTRACT将复杂的SLAM问题分离为两个算法,一个高频低精度的运动估计,另一个低一个数量级的点云匹配和配准算法。RELATED WORK雷达扫描速度相对于外部运动较高时,运动的失真常被忽略,标准的ICP方法可以被用于匹配两帧之间的激光。可以进一步使用两段式方法去消除失真:一个基于运动估计的ICP方法,接着使用计算速度的运动补偿。当雷达三秒速度相对较慢时失真变得非常严重,常使用其他传感器(IMU/GPS/I

2021-12-30 13:09:39 1136

原创 cartographer环境配置及运行

系统:Ubuntu 18.04首先安装ROS在无网络限制的情况下参考官网安装ref:http://wiki.ros.org/cn/melodic/Installation/Ubuntu安装eigen3官网:https://gitlab.com/libeigen/eigen/-/releases/3.3.9标准操作: cd eigen mkdir build cd build cmake .. make -j8 sudo make install安装版本:3.3.9安

2021-11-15 16:59:05 1366

转载 常见数学符号及其读法

大写    小写   英文注音      国际音标注音      中文注音  Α           α       alpha...

2021-11-08 16:45:11 1166

转载 矩阵的QR分解

Gram-Schmidt正交化        在提到矩阵的QR分解前,必须要提到Gram–Schmidt方法,理论上QR分解是由Gram–Schmidt正交化推出来的。那么Gram–Schmidt正交化究竟是什么。        在三维空间存在直角坐标系,其中任意一点都可以由(x,y,z)坐标...

2021-11-04 10:34:35 3234

原创 矩阵论第二章总结:范数理论及应用(脑图)

2021-11-03 19:46:23 297

原创 2021-10-14 矩阵求导相关

对矩阵转置求导等ref:https://wenku.baidu.com/view/f7fa307a580216fc700afdb9.html

2021-10-14 21:50:10 68

原创 矩阵论第一章总结(思维导图)

高清PDF格式在资源中,有需要可以下载。

2021-10-14 15:33:46 1196 1

原创 C++基础学习笔记:第一章、第二章

文章目录第1章第2节 C++开发环境与相关工具第3节 C++的编译/链接模型预处理编译链接第2章第1节 HelloWorld第2节 系统IO输入输出流 iostream命名空间 namespace第3节 猜数字与控制流第4节 结构体与自定义数据类型第3节 猜数字与控制流第4节 结构体与自定义数据类型第1章第2节 C++开发环境与相关工具C++开发工具:/usr/bin/time +运行程序 打印花费的时间和CPU占用率等(Linux)valgrindcppreference.com

2021-10-03 11:23:11 129

原创 Error opening Velodyne socket dump file 的一种可能解决方法

在使用Velodyne功能包读取pcap点云数据并发布时运行roslaunch velodyne_pointcloud 32e_points.launch报错如下:搜索原因发现可能是pcap文件路径不完全导致的于是在launch文件中做如下修改:修改前:修改后:这里的home路径不能用~代替,记录下。REF:https://github.com/ros-drivers/velodyne/issues/118记录使用velodyne的参考:http://wiki.ros.org/v

2021-07-29 15:53:16 403 1

原创 读取csv文件中的IMU数据并以sensor_msgs/Imu格式发送

读取csv文件中的IMU数据并以sensor_msgs/Imu格式发送 20210724项目需要将所给的csv表格中IMU数据读取并转化为sensor_msgs/Imu格式,以便于后续使用数据跑定位算法。csv表格:读取csv文件code:ifstream inFile("(csv文件绝对路径)", ios::in); //vector<string> stamp,Yaw,Pitch,Roll,Ve,Vn,Vu;if (!inFile){ cout <&l

2021-07-24 10:55:13 1626 2

转载 PX4 SITL Gazebo 仿真时 libgazebo_multirotor_base_plugin 插件运行时出错

正在ubuntu18.04编译PX4的代码,解决ignition-math库报错后,重新运行make px4_sitl gazebo,出现新的报错。 ...[250/812] Generating romfs_extract.stampFAILED: ROMFS/romfs_e...

2021-07-18 13:50:04 363

转载 fatal: Not a git repository (or any parent up to mount point /home) Stopping at filesystem boundary

Git遇到一个问题: fatal: Not a git repository (or any parent up to mount point /home) Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTE...

2021-07-18 11:00:27 1644

转载 【已解决】Could not get lock /var/lib/dpkg/lock-frontend

使用apt安装时报错: E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)E: Unable to acquire the dpkg fro...

2021-07-18 09:57:47 497 1

原创 使用PX4+mavros+gazebo实现无人机offboard控制仿真

使用PX4+mavros+gazebo实现无人机offboard控制仿真首先需要安装好ROS,gazebo,PX4,mavros,QGroundControl等工具,安装过程参考链接:操作系统:Ubuntu18.04ROS:http://wiki.ros.org/cn/melodic/Installation/Ubuntu(官网教程链接)​ 安装其中桌面完整版(ros-melodic-desktop-full)自带gazeboPX4:https://www.cnblogs.com

2021-07-17 10:21:25 7476 5

原创 conflicting declaration ‘typedef struct LZ4_stream_t LZ4_stream_t’解决

问题参考及解决:https://github.com/ethz-asl/lidar_align/issues/16终端输入:sudo mv /usr/include/flann/ext/lz4.h /usr/include/flann/ext/lz4.h.baksudo mv /usr/include/flann/ext/lz4hc.h /usr/include/flann/ext/lz4.h.baksudo ln -s /usr/include/lz4.h /usr/include/flann/

2021-05-16 20:48:01 645

原创 cmake错误:Could not find a package configuration file provided by 的一种解决方法

错误截图如下:解决方法:我工程中CMakeLists.txt文件的find_package函数截图如下:将后三个非官方的包单独分离出,重新写在find_package函数里面:再次cmake,问题解决。

2021-05-16 11:00:19 10553 4

原创 Eigen按行或列求和的使用

文章目录1.矩阵求和2.按行、按列求和3.查找最大值的位置1.矩阵求和先构造一个简单的矩阵求和:#include<Eigen/Core>int main(int argc,char** argv){ //申明一个4x4的int矩阵 Eigen::Matrix<int,4,4> warped_eigen; //赋值 warped_eigen<<1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16; //打印出来看看 s

2021-05-15 09:42:22 3226

原创 使用std:sort和Eigen根据矩阵某一行/列元素对矩阵的行/列排序

1.对向量排序2.根据行列元素对行列排序

2021-05-14 10:09:45 2070

原创 如何在Ubuntu系统中使用github

目的托管项目代码基本概念:Repository(仓库)Star(收藏)Fork(复制/克隆)Pull Request(发起请求,在Fork的库中更改后发起请求,可以由原库主人合并到原来的库)Watch(关注,项目更新收到通知)使用终端操作在Github主页上新建库使用 git clone 将库克隆到本地在本地库文件中修改使用git status查看更改使用 git add <filename.xxx>添加单个文件或者使用git add *添加

2021-05-11 08:44:01 492

范数理论及应用.emmx

矩阵论第二章脑图,mindmaster打开

2021-11-03

Setup_JLink_V540.exe

兼容HW版本V7.0.0,debug不报错

2021-10-19

线性空间与线性变化.pdf

线性空间与线性变化.pdf

2021-10-14

STM32实现的乒乓球游戏.7z

使用STM32单片机实现的乒乓球游戏,有需要单片机实战项目或课程设计的同学可以参考一下实现的思路以及资源的配置。

2020-03-09

使用STM32实现的贪吃蛇游戏.7z

使用STM32单片机为硬件平台,程序基于FreeRTOS操作系统,实现了贪吃蛇的基本功能,并使用了PS2手柄控制贪吃蛇。使用的开发板为正点原子战舰。

2020-03-09

Masm for Windows 集成实验环境

一个轻量化汇编学习软件,基本可以实现不需要外设的所有汇编程序的运行和调试,并提供调试通过的35个WINDOWS汇编程序实例源代码,具有错误信息自动定位、关键字实时帮助并且在帮助中动画演示汇编指令的执行过程、语法着色、无限次撤消与恢复、WORD式的查找、替换、定位、支持中文、长文件名等功能。很适合刚开始学习汇编语言的朋友。

2019-03-29

点阵取模软件

很好用的一个取模软件,可以满足所有情况的点阵显示图像取模。

2019-03-18

空空如也

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

TA关注的人

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