自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据包格式设计

自定义的数据包格式

2022-06-11 21:59:52 605

原创 项目实训第十一周记录

目录2022.5.92022.5.102022.5.9对原生数据的录制加入了相关信号量,能够录制和播放原生数据。完整的录制下了rosbag播放的400s原生数据,且数据包大小和rosbag数据包大小几乎一样。2022.5.10

2022-05-16 17:56:35 268

原创 项目实训第十周记录

目录2022.5.22022.5.32022.5.2经过大量的测试,找到了引起TCP缓冲区不足的原因,当数据出错时接收者会按照固定形式接收数据,这导致接收者出现错误,卡在了一个步骤上,无法继续往下执行,因此发送者迟迟收不到确认,消息一直保留在缓冲区中,从而无法发送其他消息。并对此进行了修正,成功在板子和服务器上通过TCP连接实现了数据传输和可视化。2022.5.3...

2022-05-08 21:26:23 857

原创 项目实训第九周记录

目录2022.4.252022.4.262022.4.25给可视化部分增加了导出pcd的功能,但由于点云数据庞大,导出和读取时都需要几十秒的时间。(打算研究一下pcd文件的格式,从而自己实现一个动态写入的方法,达到获取一个点云数据便将其写入到文件,最终再回写文件头部分,从而省去导出时间)。关于读取的优化暂时没有思路。2022.4.26修正了数据包终止时间错误的bug,添加了自动终止录制的功能(2.5s没有收到消息则自动终止录制)。...

2022-05-01 18:24:05 1075

原创 项目实训第八周记录

目录2022.4.182022.4.18经过大量测试,记录的消息数和播放的消息数并无差异,下一步打算通过自建内存池,替代new和delete的使用,从而避免大量进行系统调用,节约CPU资源。

2022-04-24 22:51:59 911

原创 C++ linux系统下的键盘回调

可行方案使用/(由于需要root权限才能打开文件,因此抛弃了这个方案)使用输入的方式获取键盘内容。使用方案使用输入方式获取键盘内容。最初打算使用getch()这个函数来获取输入,因为该函数没有缓冲区,键入即响应,无需回车键刷新缓冲区。但不巧的是,linux下没有相关的头文件,也就无法使用这个函数,只能使用getchar()while(1){ char c = getchar(); // 根据按键进行相应的反应或回调}getchar()问题及解决getchar()的问题getc

2022-04-20 20:13:09 1458

原创 利用strace追踪程序系统调用情况

利用strace分析程序系统调用情况,间接分析程序性能。

2022-04-18 21:07:15 931

原创 项目实训第七周记录

目录2022.4.112022.4.122022.4.11又花费了不少时间调试,找到了bug产生的原因,解决了内存释放和数据出错的问题。并结合原有的话题发布者进行测试,完成了接收者的调试。构建数据包类的架构,使用boost的文件设备和过滤器流,方便后面添加压缩功能。2022.4.12...

2022-04-17 21:16:14 260

原创 项目实训第六周记录

目录2022.4.42022.4.4今天尝试的写了一个demo,模拟含有指针的结构体作为要保存的数据,尝试了数据包中数据部分单个消息的写入和读取,发现了一些指针相关的问题,并对数据包格式作了修正。...

2022-04-10 22:00:13 458

原创 c++ boost库流处理

前言c++原生的流处理并不支持流的压缩处理,因此需要使用boost库的流处理。boost流处理即boost.iostreams库,我需要用到的组成部分如下:device(设备) - 流的起点source(源设备),流的终点sink(目标设备)filter(过滤器) - 读取数据时的输入过滤器,写入数据时的输出过滤器stream(流) - 用来连接设备和过滤器,实现类似标准流的功能前置编译iostreams库是一个由头文件组成的库,位于<boost/iostreams/>下,

2022-04-06 20:42:25 1325

原创 项目实训第五周记录

目录2022.3.282022.3.28沿着之前的想法,终于完成了对相机模拟小车运动,实现第一人称视角的模式。过程记录在了文档中,这里不多赘述。但仍存在抖动严重的问题,后期有时间的话再来解决这个问题。现在可视化部分初步完工,接下来要进行数据包的设计和存储,模型的存储。...

2022-04-03 21:27:20 1791

原创 PCL-利用相机移动模拟小车移动

前言项目需要视角跟随小车运动,如果只是小车数据 //点的位置 struct geometry_msgs_Point { double x; double y; double z; }; //四元数 struct geometry_msgs_Quaternion { double x; double y; double z; double w; };

2022-03-28 21:27:22 1098

原创 项目实训第四周记录

目录2022.3.212022.3.222022.3.21暂停一天2022.3.22从路径信息中去除重复来获取小车最新位置不太现实,重新回去分析LIO-SAM源码以及数据格式,看一看是否漏掉了一些重要的话题,这还需要明天去实验室验证一下。由于相机移动以及小车位置渲染暂时无法进行,遂决定尝试对点云进行渲染,经过相关内容的学习,发现颜色的渲染可以从多个角度切入,比如反射强度、坐标信息、曲率等,都可以实现颜色的渲染。由于我最开始的想法就是用点云中多出的一维反射强度来对点云进行渲染,因此就先尝试了使用反射

2022-03-27 21:54:03 540

原创 PCL-渲染小车路径

PCL利用线条、圆柱体绘制小车路径

2022-03-27 19:36:18 925

原创 PCL-以坐标轴形式渲染小车

使用pcl以坐标轴的形式将小车的位姿可视化展示

2022-03-24 20:04:55 1279

原创 项目实训第三周记录

目录2022.3.142022.3.14今天进行数据格式的转换,主要是将自定义的PointCloud2类型转换为PCL的PointXYZI类型(在此基础上实现了泛型转换,支持了全部的PCL点云类型)。这里是初步测试,用原生的PCLPointXYZI类型输出的点云大小,表明转换正常,明天尝试初步渲染,进一步测试转换效果。...

2022-03-20 22:05:56 1171

原创 项目实训第二周记录

目录前言工作内容2022.3.72022.3.82022.3.92022.3.102022.3.112022.3.122022.3.13前言经过第一周的铺垫工作,大致明确了我要做的内容和大体思路,这周主要是处理一下数据和通信部分,为接下来的可视化建立数据基础。工作内容2022.3.7今天去了实验室,运行了lio-sam和rviz,根据运行情况以及lio-sam的源码分析,绘制出了下面这张图:rviz中用于实时建模的主要有这么几个话题中的数据,我将结合lio-sam的源码捡主要的说明一下。i

2022-03-13 19:58:19 494 4

原创 项目实训第一周记录

目录前言工作内容2022.2.272022.2.282022.3.12022.3.22022.3.32022.3.42022.3.52022.3.6前言项目立项后,我们小组进行了分工,我负责我负责项目的点云图可视化开发部分,最终目标能够实现脱离ROS平台的、高速的可视化渲染,并能够整合到我们团队开发的智能车系统上。(这部分原本是由RVIZ实现的,但由于要脱离ros,只能自己实现一个可视化框架)。工作内容2022.2.27决定将这个项目定为一个C++的工程项目,在Ubuntu上进行开发。于是在git

2022-03-06 20:08:01 525 3

原创 Ubuntu20.04 ROS的安装和配置

ubuntu20.04 进行ROS的安装和配置

2022-02-23 19:29:33 1310 5

原创 PostgreSQL源码分析-存储管理总结

2021SC@SDUSC目录概述外存管理内存管理概述这几个月的时间,分析了postgreSQL源码中的存储管理部分,我也是按照外存管理内存管理

2021-12-27 07:35:43 1209

原创 postgreSQL源码分析——存储管理——内存管理(7)

2021SC@SDUSC目录概述源码分析总结概述这次来分析一下postgreSQL对表的一些操作。源码分析总结

2021-12-26 10:28:21 703

原创 postgreSQL源码分析——存储管理——内存管理(6)

2021SC@SDUSC目录概述源码分析总结概述上篇博客分析完了缓冲池的相关内容,这次来分析一下postgreSQL共享内存相关的内容。这涉及到IPC(Inter-Process Communication)即进程间通信。源码分析总结

2021-12-20 08:13:38 1030 1

原创 postgreSQL源码分析——存储管理——内存管理(5)

2021SC@SDUSC目录概述源码分析总结概述上两篇博客分析完了关于Cache的相关内容,这篇博客就来分析一下postgreSQL关于缓冲池的管理。如果需要访问的系统表元组在Cache中无法找到或者需要访问普通表的元组,就需要对缓冲池进行访问。任何对于表、元组、索引表等的操作都在缓冲池进行,缓冲池的数据调度都以磁盘块为单位,需要访问的数据以磁盘块为单位,需要访问的数据以磁盘块为单位写入缓冲池,也有将缓冲池数据写回磁盘的操作。调入缓冲池中的磁盘块成为缓冲区、缓冲块或者页面,多个缓冲区组成缓冲池。P

2021-12-13 09:20:59 1132

原创 postgreSQL源码分析——存储管理——内存管理(4)

2021SC@SDUSC目录概述源码分析表模式信息缓存——RelCacheRelationData结构体——RelCache中存放的内容总结概述上次分析了postgreSQL中的SysCache。这次来分析另一个缓存,RelCache。而RelCache的管理就比SysCache简单很多,这是因为RelCache中存储的RelationData的结构大部分时间时不会改变的,因此postgreSQL只用一个Hash表来维持这样一个结构。源码分析表模式信息缓存——RelCacheRelCache用于

2021-12-06 09:23:00 1602

原创 postgreSQL源码分析——存储管理——内存管理(3)

2021SC@SDUSC概述源码分析总结

2021-11-29 08:13:53 1858 2

原创 postgreSQL源码分析——存储管理——内存管理(2)

2021SC@SDUSC目录概述源码分析总结概述上篇博客分析了内存上下文的各种结构,以及实现内存上下文的结构。这次就继续上一篇的内容,来分析一下内存上下文的相关操作(即函数部分)。源码分析总结...

2021-11-22 10:21:01 2028

原创 postgreSQL源码分析——存储管理——内存管理(1)

2021SC@SDUSC目录概述源码分析总结概述源码分析总结

2021-11-15 08:39:54 2855

原创 postgreSQL源码分析——存储管理——外存管理(7)

2021SC@SDUSC目录概述源码分析总结概述上次分析了postgreSQL的TOAST机制,而TOAST机制属于postgreSQL对于变长变量(大数据)的自动处理机制,并不能处理blob、clob这种用户主动使用的大对象。处理这种大对象,就需要用到postgreSQL处理大数据的另一种机制——源码分析总结...

2021-11-08 09:38:13 1414

原创 postgreSQL源码分析——存储管理——外存管理(6)

2021SC@SDUSC目录概述源码分析总结概述源码分析总结

2021-11-01 13:44:19 1249

原创 postgreSQL源码分析——存储管理——外存管理(5)

2021SC@SDUSC目录概述源码分析总结概述源码分析总结

2021-10-28 11:26:15 668

原创 postgreSQL源码分析——存储管理——外存管理(4)

2021SC@SDUSC目录概述源码分析fsm文件总结概述这次来分析一下磁盘管理的FSM(free space map)机制,也就是空闲空间映射。前面我有提到过,它是以表文件的附属文件的形式存在的。这个机制类似于在学习操作系统的文件系统时,关于空闲空间的查找和管理这一部分的知识。简而言之,如果通过遍历所有文件块来查找空闲空间会付出很高的时间代价,FSM机制就是为了优化空闲空间的管理,降低时间复杂度。源码分析fsm文件总结...

2021-10-25 07:58:55 903

原创 postgreSQL源码分析——存储管理——外存管理(3)

2021SC@SDUSC目录概述源码分析总结概述源码分析总结

2021-10-18 08:20:10 969

原创 postgreSQL源码分析——存储管理——外存管理(2)

2021SC@SDUSC目录概述源码分析总结概述源码分析总结

2021-10-11 08:23:54 1058

原创 postgreSQL源码分析——存储管理——外存管理(1)

2021SC@SDUSC概述源码分析总结

2021-10-03 20:02:07 1673

原创 postgreSQL源码分析综述

2021SC@SDUSC目录分工情况我负责的部分主要源码分析方式分工情况由官方的文档,可以知道postgreSQL的主要架构和上面的图片描述的一样。所以我们组将核心源码的分析工作分成两部分,一部分负责postmaster,也就是守护进程;另一部分负责postgres,也就是服务进程。我负责的部分我和另一名组员负责postmaster部分。postmaster对于postgresql来说就像一个总控制台,一旦开启一个数据库实例(pg_ctl start),postmaster进程就开始运行。它的

2021-09-26 20:55:29 2263 1

原创 PostgreSQL源码文件的获取以及编译安装

获取文件官网下载链接点击上面网页后,可以看到如下界面由于我们需要源代码,因此注意Source code部分,看到file browser这个超链接,点击之后可以进入版本选择界面。如下图可以选择自己想要的版本,我是选择了最新版本的v14beta3。点进去后可以看到如下的界面可以看到有很多文件,但其实可以分为两个部分,后缀名为tar.bz2.*的和后缀名为tar.gz.*的两个部分。我们只需要选择一个部分即可——因为bz2和gz都是unix系统下的压缩文件,区别就是前者压缩率更高。其实md5和s

2021-09-20 10:46:19 2297 7

空空如也

空空如也

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

TA关注的人

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