- 博客(93)
- 资源 (2)
- 收藏
- 关注
原创 从零入门激光SLAM(二)——Ubuntu基础
我们一般学习激光SLAM都需要在Ubuntu上搭建工程,用ROS传输数据。ROS是基于Ubuntu操作系统的,因此在安装使用ROS之前,需要对Ubuntu系统进行一定的学习。我们从使用习惯的win一下子转到ubuntu系统是会有很大的不适应性,耐心学习Ubuntu系统将会在未来提高很多效率和少走很多弯路。Linux是一种自由、开放、免费的系统软件,是一种多任务和多用户的网络操作系统。它具有良好的可移植性,广泛运行于PC、服务器、工作站到大型机,以及包括嵌入式系统在内的各种硬件设备,适用平台非常广泛。
2023-03-22 15:45:06
218
原创 从零入门激光SLAM(一)——什么是SLAM
SLAM的全称是Simultaneous Localization and Mapping即时定位与地图构建,为解决机器人自主导航的问题。人在一个未知的环境下也不知如何行进,我们闭着眼睛也不知道怎么走路,机器人如人一样,也需要一个“眼睛”与环境之间交互知道自己的位置,并且能够建立一个地图来让机器人自主导航。如下图所是,相机相当于我们的眼睛,激光雷达像是成千上万个很长的拐棍去勘测障碍物,地图相当于我们日常用的导航地图。机器人有了这些东西就可以进行走路(决策、规划、控制)。
2023-03-21 22:11:01
210
原创 工程(十一)——NUC11+D435i+VINS-FUSION+ESDF建图(github代码)
P:投影矩阵,左边3*3矩阵是相机的内参矩阵,将相机坐标中的3D点投影到2D像素坐标,可能与相机内参K不同。K:相机内参矩阵,使用焦距(fx, fy)和主点坐标(cx, cy),单位为像素,内参矩阵可以将相机坐标中的3D点投影到2D像素坐标,数据顺序(fx,cx,fy,cy,1)height:图像尺寸,height代表高度,(height*width)相机的分辨率,以像素为单位。R:旋转矩阵,将相机坐标系统对准理想的立体图像平面,使两张立体图像中的极线平行,仅对双目相机有效。
2023-03-07 22:27:44
373
原创 Jetson配置realsense D435i SDK以及realsense-ros
命令安装比较方便简单,但对于版本的选择有局限性,有时候直接用命令安装会出现问题。普遍问题是realsense-viewer显示不出来图像,以及imu数据有topic但发布空数据,主要因素是SDK与realsense-ros的版本不匹配,这时我们需要源码安装。rs_camera.launch无imu话题的问题,检查launch文件,默认是不开启的。realsense-ros采用源码安装,realsenseSDK采用指定版本的命令安装。SDK与ros_realsense的版本不匹配,与电脑的接口也有关系。
2023-03-03 17:46:51
538
3
原创 Jetson xavier nx的扩容及安装cuda经验
首先将jetson拆下来,看里面带不带固态硬盘,如果带将它重新插拔以下以激活,不带就自己买一个。在准备扩容之前要确保JETSON空间还有1G空间,因为在固态载入时候需要空间,否则会失败。一般为了加快下载速度,我们会更换镜像源,但Jetson是arm架构的,很多镜像源的arm包是缺失的。当一直黑屏进不去图形化界面时,不要慌等两分钟,等屏幕再次亮起时进入tty格式登入系统,然后以命令行模式去删除一些代码。当Jetson内存空间不够的时候,会出现开机黑屏,一直进不去图形化界面的问题。将根目录构建到 SSD 上。
2023-02-22 18:03:41
265
原创 看这篇就够了——opencv与libopencv与cv_bridge的安装与使用
一般情况如果自动安装opencv3,那就手动安装一个opencv4.自动安装opencv4,就手动安装opencv3.同系的opencv一般虽然会显示冲突,但是能够编译通过的。现在opencv解决了,但由于你手动安装的opencv版本和cv_bridge是不一样,cv_bridge版本默认和libopencv配对,这两个依然还是会冲突,所以应该下载官网的opencv_vision包。A1:并不是,如果libopencv是4.2,版本你手动安装的是opencv4.1,是可以通过编译的,但会显示冲突警告。
2023-02-20 22:40:15
503
原创 ubunut启动会话失败+侧边栏消失
注意:这一步如果提示setsid无法执行unity,则需要重装unity:sudo apt install unity。某次开机后,ubunut图形界面能够显示,但不能登陆,出现启动会话失败。调整到tty界面也无法登陆。重置 compiz:dconf reset -f /org/compiz。重启unity:setsid unity。首先开机进入ubuntu高级选项模式。重新启动进入tty模式登陆。之后重启unity就可以啦。重启电脑后,侧边栏恢复。重启后发现侧边栏消失。
2023-02-18 17:17:38
74
原创 工程(十)——github代码ubuntu20.04在ROS环境运行单目和RGBD相机ORB-SLAM3稠密
orb-slam3的整个环境配置还是比较麻烦的,先将一些坑写在前面,供大家参考和避开这些坑。
2023-02-16 01:44:23
575
2
原创 看这篇就够了——ubuntu系统中的cuda cudnn cudatookit及pytorch使用
通常情况如果先安装了显卡驱动,nvidia-smi显示的版本要比nvcc-V的高,在选择runtime CUDA时需要查看显卡的型号和pytorch的需要版本确定,并没有特别严格必须一个版本的限制,也就是说一个电脑上conda每个环境都可以拥有不同版本的cuda。答案是可以,只需要安装完整版的CUDAtookit(nvidia)一次性安装,就是把CUDA Toolkit安装时Driver前面的X加上,在这之前如果安装过nvidia驱动需要将它卸载,否则会安装失败,失败原因是两个driver CUDA冲突。
2023-02-03 17:41:51
703
2
原创 看这篇就够了——ubuntu扩展屏幕及装显卡驱动后黑屏问题
总之,整个过程与自己电脑显卡型号,驱动包型号和ubuntu版本都有关系。如果顺利选择一个好的驱动包,什么不需要调整就可以双屏幕显示。一个不适合的显卡驱动,需要花费很大力气才能实现双屏显示。但是针对只需要电脑内置屏的朋友,只需要把xorg.conf文件覆盖即可。根据我个人的情况推荐使用ubuntu自带的全自动显卡驱动安装,比较方便,如果一个包不合适,再多试几个其他版本的。博主本人也是是了第三个才成功。
2023-02-01 20:13:02
1795
1
原创 无线通信技术
首先介绍一下通讯协议,在计算机通信中,通信协议用于实现计算机与网络连接之间的标准,网络如果没有统一的通信协议,电脑之间的信息传递就无法识别。通信协议是指通信各方事前约定的通信规则,可以简单地理解为各计算机之间进行相互会话所使用的共同语言。两台计算机在进行通信时,必须使用的通信协议。是基于串口使得通信双方能够相互沟通信息的一种约定,其定义了双方遵循的协议数据帧格式和其传输方式。在串口通信中,常用的协议包括RS-232、RS-422和RS-485。系统间协议(串口协议):用于通信两个不同设备的系统间协议。
2022-12-06 22:56:56
702
原创 YOLOv7学习笔记(一)——概述+环境+训练
原文链接:https://blog.csdn.net/HUASHUDEYANJING/article/details/126045094。训练和yolov5步骤一样见其他笔记:YOLOV5学习笔记(七)——训练自己数据集。这里主要介绍一下训练参数。
2022-11-03 19:38:33
986
3
原创 YOLOV5学习笔记(十)——GradCAM热力图可视化
将yolo,py文件的class Detect(nn.Module)的def forward(self, x)替换成如下代码。注意在网络训练时候需要改回原来,因为多返回了一个值影响到loss函数,会报错。针对双模态网络,我对代码做了如下修改。在yolo.py同目录下添加两个文件。
2022-11-02 17:19:25
2254
35
原创 YOLOV5学习笔记(九)——损失函数
目标置信度损失由正样本匹配得到的样本对计算,一是预测框中的目标置信度分数 p0,二是预测框和与之对应的目标框的 iou 值piou,其作为 ground-truth。两者计算二进制交叉熵得到最终的目标置信度损失。别损失与置信度损失类似,通过预测框的类别分数和目标框类别的 one-hot 表现来计算类别损失,目标置信度损失和类别损失使用的是带 sigmoid 的二进制交叉熵函数BCEWithLogitsLoss。v5 使用的是 CIoU Loss,后续又优化出EIOU Loss如下所示。
2022-10-22 00:11:43
1253
原创 Pytorch速成教程(二) 常用函数
所有神经网络模块的基类,自己定义的模型也成为这个类的子类。在对子类赋值之前,必须对父类进行__init__()调用。
2022-09-18 20:37:19
459
原创 关于ssh的使用及github上传
SSH是一种网络协议,用于计算机之间的加密登录,目前已经成为Linux系统的标准配置。使用ssh可以在win上访问ubuntu系统,能够更快的上传github代码。
2022-09-05 22:35:16
928
原创 ubuntu终端代码上传github最简方法
这一步是为了之后的上传,提交代码遇到的问题remote: Support for password authentication was removed on August 13, 2021.
2022-08-25 12:29:28
629
原创 C++技巧 —— for(auto &c:s)与for(auto c:s)
2、形如 for(auto c:s) 的格式,auto可以是别的数据类型比如char,int,const char*等等各类数据类型,可以是自定义的数据类型。c是一个变量名称,可以按变量名规则任意定义;s是一个容器名称,可以是一个数组,可以是string等等。for(auto c:s)中b为一个容器,效果是利用c遍历并获得s容器中的每一个值,但是c无法影响到s容器中的元素。for(auto &c:s)中加了引用符号,可以对容器中的内容进行赋值,即可通过对c赋值来做到容器s的内容填充。
2022-08-23 16:11:59
1072
原创 Pytorch速成教程(一)整体流程
跟numpy功能一样,但可以GPU加速,和numpy可以相互转化。# 汉字均为我个人理解,英文为原文标注。#1、初始化定义# 继承原有模型# kernel# 定义了两个卷积层# 第一层是输入1维的(说明是单通道,灰色的图片)图片,输出6维的的卷积层(说明用到了6个卷积核,而每个卷积核是5*5的)。# 第一层是输入1维的(说明是单通道,灰色的图片)图片,输出6维的的卷积层(说明用到了6个卷积核,而每个卷积核是5*5的)。
2022-08-21 17:47:21
894
3
原创 工程(八)——yolov5可见光+红外双模态融合(代码)
目前,多模态数据融合主要有三种融合方式:前端融合(early-fusion)或数据水平融合(data-level fusion)、后端融合(late-fusion)或决策水平融合(decision-level fusion)和中间融合(intermediate-fusion)。前端融合将多个独立的融合成一个单一的特征向量,然后输入到机器学习分类器中。由于多模态数据的前端融合往往无法充分利用多个模态数据间的互补性,且前端融合的原始数据通常包含大量的冗余信息。......
2022-08-10 22:42:41
1194
29
原创 YOLOV5学习笔记(七)——训练自己数据集
根据YOLOV5学习笔记六所设计的轻量化小目标检测网络,本节将用tibnet制作的数据集进行训练测试,该数据集是用来检测空中无人机的,可以看到无人机十分的小。该数据集的labels文件是用labelme软件进行标注的xml形式。.........
2022-08-09 20:14:08
1273
1
原创 工程 (六) ——PointNet点云分类
首先打开model/pointnet2_cls_ssg.py的一个分类网络模型的文件,代码解析如下,可以看到分类网络主要通过三个特征提取层PointNetSetAbstraction之后再通过全链接来达到分类的目的。分类官方使用的是ModelNet数据集,将下载好的 ModelNet40数据集放在./data/路径下。语义分割与分类的不同是除了将点云下采样得到特征向量后,还需要将点集上采样回原始点集数量,网络结构如下。--log_dir 后面跟的是网络模型的名称,也就是model文件夹下的文件。......
2022-08-08 17:40:27
1011
2
原创 YOLOV5学习笔记(六)——优化网络架构
利用多个小卷积核替代一个大卷积核,先将channel 数减小再扩大(默认减小到一半),具体做法是先进行1×1卷积将channel减小一半,再通过3×3卷积将通道数加倍,并获取特征(共使用两个标准卷积模块),其输入与输出的通道数是不发生改变的。Focus模块的作用是对图片进行切片,类似于下采样,先将图片变为320×320×12的特征图,再经过3×3的卷积操作,输出。32,最终变为320×320×32的特征图,是一般卷积计算量的4倍,如此做下采样将无信息丢失。2. yolo.py文件修改:在yolo.py的。.
2022-08-05 20:28:13
1829
原创 YOLOV5学习笔记(四)——项目目录及代码讲解
yolov5采用Mosaic方法,把几个图拼接一个大图,小图在拼接时候还会进行随机的处理。随机变换的yaml文件在data/hyps/hyp.scratch-high.yaml。通过图片处理方法,人为增加图片数据。(a)剪裁、旋转、色调、比例、亮度。utils/activations.py激活函数。它的激活区域不光是方形,还可以是斜边和带弧形的。mish函数比较复杂,为了简单表达,使用分段函数。yolo采用保持原图像宽高比。Hardswish函数。.........
2022-08-01 00:10:56
2101
原创 YOLOV5学习笔记(二)——环境安装+运行+训练
每个Epoch第二行是各参数的损失值,在整个Epoch训练结束后,给出精确度等总体信息,并将这个Epoch的过程文件保存在./runs/train/exp文件夹中。train_batch.jpg是一组batch的训练结果图,我们设置一个batch是16,所以16个图片。例如VOC.yaml,文件中给出了训练集和验证集的路径,种类数量为20以及名称。修改【utils】中的【loss.py】里面的两处内容。1.打开你的【utils】文件下的【loss.py】opt.yaml是整个训练过程的配置文件。......
2022-07-29 00:18:49
2020
原创 pip镜像下载
对于Python开发用户来讲,PIP安装软件包是家常便饭。但国外的源下载速度实在太慢,浪费时间。而且经常出现下载后安装出错问题。所以把PIP安装源替换成国内镜像,可以大幅提升下载速度,还可以提高安装成功率。......
2022-07-28 20:23:09
292
原创 YOLOV5学习笔记(一)——原理概述
先经过卷积神经网络得到特征图像,之后对图像进行网格划分,每个网格单独进行画框检测和类别的概率图,最终得到结果。经过卷积神经网络可以得到不同大小的特征图,对不同大小的特征图进行融合利于小目标的检测。一个网络往往有主干网络(Backbone)+颈部(Neck)+头部(Head)组成。图片卷积经过32倍下采样得到19*19的图片,每个网格都会单独预测和画锚框。mAP是衡量学习出来的模型在所有类别上的好坏是AP的平均值。每个小框内包含了边界框坐标、目标得分和类别得分。AP是衡量学习出来的模型在每个类别上的好坏。..
2022-07-27 22:41:29
2604
原创 多传感器融合定位(一)——3D激光里程计
httpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttps。
2022-07-26 17:34:51
1657
代码资源——激光雷达定点建图
2022-08-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人