自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 项目实训 - 智能车系统 - 第十二周记录

项目实训 - 智能车系统 - 第十二周记录日期:5.9 – 5.15项目进度本周工作进展:修改信号量销毁(如果不是第一次创建,不赋值 修改lastnumber+nownumber) 与可视化对接信号量的一系列问题测试雷达+雷达驱动测试总体测试1、信号量版本修改在与可视化对接的时候,由于可视化的编写原因,需要将信号量销毁之后才能退出程序。所以需要添加销毁函数:int destory_sem(int semid){ if (semctl(semid, 0, IPC_RMID

2022-05-23 10:50:49 297

原创 项目实训 - 智能车系统 - 第十一周记录

项目实训 - 智能车系统 - 第十一周记录日期:5.2 – 5.8项目进度本周工作进展:信号量版本测试tcp版本的可视化1、信号量版本通信机制通信机制-新:一写一读当一个话题对应多个订阅者时,拆分成多个话题(针对项目来说,最多两个订阅者)分别为读者和写者分配一个信号量,用来互相阻塞增加了两个变量,用来存储两个信号量的标识符。struct MemoryDefinition{ int fd; void* point; int pub_sem_

2022-05-22 20:39:08 318

原创 项目实训 - 智能车系统 - 第十周记录

项目实训 - 智能车系统 - 第十周记录日期:4.25 – 5.1项目进度本周工作进展:把相关项目移植到板子上,配置环境发现有性能问题,查性能瓶颈尝试配置交叉编译环境(太复杂了,失败了)1、配置板子环境+移植项目板子相关参数nvidia tx2arm架构4个cpu核心(比之前开发环境差很多)移植到新环境后,直接编译失败,根据报错信息进行修改cmakelist需要显式的查找Boost中的timer组件find_package(Boost REQUIRED COMPONE

2022-05-22 20:15:43 324

原创 项目实训 - 智能车系统 - 第九周记录

项目实训 - 智能车系统 - 第九周记录日期:4.18 – 4.24项目进度本周工作进展:删除项目中保留的ros相关的部分代码学习cmake编写重新编写项目中的CMakeLists.txt文件1、删除ros代码之前为了方便测试,在修改代码的时候并没有删除ros相关的函数、变量。现在要完全脱离ros的环境,需要先将相关的代码删除,确保与ros完全无关。2、学习CMakeLists.txt学习过程记录在一下的博客https://blog.csdn.net/qq_38170211/ar

2022-05-22 19:14:58 182

原创 cmake学习(二)引用外部库(find_package分析)

案例:lio-sam-linux项目的CMakeLists.txt通过这个例子学习一下引用外部库的相关内容。(貌似项目本身的构建结构不太符合规范,这个后面再修改。,。)项目路径:CMakeLists.txtcmake_minimum_required(VERSION 2.8.3)project(lio_sam_linux)#set命令可以设置普通变量、缓存条目、环境变量三种变量的值。set(CMAKE_BUILD_TYPE "Release")set(CMAKE_CXX_FLAGS "

2022-04-22 20:42:17 1434

原创 cmake学习(一)基础内容学习

cmake学习(一)为了编写项目的cmake文件,简单学习一下。一、cmake主要介绍编写项目时,需要决定代码的组织方式以及编译方式,需要工具来构建、维护代码cmake首先是makefile的上层工具,目的是为了产生可移植的makefile,不需要自己手写makefile。另外,makefile在不同的环境下,可能有不同的写法,cmake也可以来规避这个问题,让我们不需要关心环境。cmake的几个特点:开放源代码,使用类 BSD 许可发布。跨平台管理大型项目简化编译构建过程和编译过程

2022-04-22 18:51:00 510

原创 项目实训 - 智能车系统 - 第八周记录

项目实训 - 智能车系统 - 第八周记录日期:4.11 – 4.17项目进度本周工作进展:完成了雷达驱动的编写(未测试)完成imu驱动的编写(未测试)与可视化部分进行对接1、速腾rslidar驱动编写(二次开发)通过阅读ROS二次开发的rslidar驱动后,决定延用之前移植项目的做法,在ros二次开发的版本的基础上进行修改,将发布的数据修改我们自定义的类型,并且发布数据。另一个节点rs_to_velodyne订阅上面发布的消息,将数据转换成velodyne的点云格式,然后进行发布,被项

2022-04-22 17:56:06 913 1

原创 项目实训 - 智能车系统 - 第七周记录

项目实训 - 智能车系统 - 第七周记录日期:4.04 – 4.10项目进度本周工作进展:更换了底层的通信框架(shm)熟悉速腾雷达驱动,以及ros相关驱动,为二次开发驱动做准备1、更换底层通信框架上周解决的utility读写问题,本周运行之后又出现了之前的错误:进程在初始化后会随机崩溃掉,然后重启,有时候会稳定,有时候会移植崩溃。暂时查不出原因来,于是回到程序本身,在多线程std::thread、mmap的通信框架里找问题。然后让师兄看了一下代码,师兄发现了代码的一个大问题。我们本

2022-04-19 09:20:13 712

原创 项目实训 - 智能车系统 - 第六周记录

项目实训 - 智能车系统 - 第六周记录日期:3.28 – 4.03项目进度本周工作进展:完成了所有中间话题的移植将参数服务器改成读取文件的形式(这周状态不太好,工作进展不是很大。,。)1、剩余话题的移植上周完成了TF框架的搭建,这周开始着手其他话题的移植。先不管数据包发布的原始数据、以及发布给rviz的话题,剩余的节点之间的话题还有3个/odometry/imu_Incrementalimu节点发布;imu节点、image节点接收(imu节点中维护了两个类,是一个类发布的话

2022-04-05 16:34:41 1440

原创 项目实训 - 智能车系统 - 第五周记录

项目实训 - 智能车系统 - 第五周记录日期:3.21 – 3.27项目进度本周工作进展:完成TF部分的移植(本周主要完成了TF消息发送、转换、发布的功能)1、修改imu和map节点中与tf相关的类、函数首先根据上周摘出来的tf相关代码,配合tf代码文档,进行初步的分析:tf::TransformListener:此类从Transformer继承并自动订阅ROS转换消息tf::Transfromer:提供系统中任意两个帧之间的坐标转换的类。一个成员变量:tf2_buffer_ptr

2022-04-05 00:07:08 877

原创 项目实训 - 智能车系统 - 第四周记录

项目实训 - 智能车系统 - 第四周记录日期:3.14 – 3.20项目进度本周工作进展:进行TF部分的部分移植(本周主要完成了TF相关类型,函数的处理)1、针对项目进行TF总体分析本周本来打算继续按照之前的思路进行话题的移植,但是在移植的过程中发现,需要移植的几个话题(lio_sam/mapping/odometry_Incrememt lio_sam/mapping/odometry等),内部实现使用了ros的TF,包括TF相关类型,TF坐标系转换关系的发布和订阅,没有办法进行简单的话题

2022-04-04 12:49:29 433

原创 项目实训 - 智能车系统 - 第三周记录

项目实训 - 智能车系统 - 第三周记录日期:3.07 – 3.13项目进度本周工作进展:继续进行话题的移植工作给可视化部分提供了测试用的接口1、imageProjection中发布的lio_sam/feature/cloud_info话题的移植上周将featureExtraction中发布的话题移植完(发布了三个话题,但是只有一个被用到)。本周考虑移植image Projection中的话题。imageProjection中发布话题如下:lio_sam/deskew/cloud_i

2022-03-18 22:19:38 276 1

原创 项目实训 - 智能车系统 - 第二周记录

项目实训 - 智能车系统 - 第二周记录日期:2.28 – 3.06项目进度本周工作进展:通信框架的完善及完成完成了第一个话题的移植1、通信框架选择lio-sam项目自身是基于ros的项目,进程间使用的通信机制主要是ros中的topic话题通信机制。该机制基于socket网络通信,与ros系统紧密结合,无法在原生linux系统中使用。所以制定一套新的通信机制是移植工作的一项重要内容。在寒假的时候,经过我和组内罗源同学的学习交流后,最终决定使用mmap通信框架来指定通信机制。mmap通信框

2022-03-18 20:55:39 299

原创 项目实训 - 智能车系统 - 第一周记录

2022-03-06 18:59:43 1279

原创 ROS-3DSLAM(十六)lvi-sam项目总结

2021SC@SDUSC学习内容概览本次的项目lvi-sam主要分为两个大的模块:lidar模块和visual模块。我们小组学习先进行了lidar模块的学习,然后进行的visual模块。每个模块都分成了若干小的部分,分给每个组员主要负责,学习完成后进行组内交流。我在lidar模块负责的部分是imuPreintegration(imu预积分)和mapOptmization(图优化);visual模块主要负责的是visual_loop(回环检测)。imuPreintegrationimyPreinte

2021-12-27 22:36:26 2975 11

原创 ROS-3DSLAM(十五)lvi-sam源代码阅读13 —— visual_loop阅读6 - 回调函数 + process分析

2021SC@SDUSC(十五)lvi-sam源代码阅读13 —— visual_loop阅读6 - 回调函数 + process分析本次将主要分析loop_detection_node文件中的4个回调函数以及一个并行执行的函数visual_loopmain函数中的订阅话题 以及开启新线程ros::Subscriber sub_image = n.subscribe(IMAGE_TOPIC, 30, image_callback);//以下三个话题在visual_estimator/ut

2021-12-25 15:06:53 856

原创 ROS-3DSLAM(十四)lvi-sam源代码阅读12 —— visual_loop阅读5

2021SC@SDUSC(十四)lvi-sam源代码阅读12 —— visual_loop阅读5visual_looploop_detection_node 1继续上次的分析,回到loop_detection_node文件中,loopDetector将项目中预置的二进制字典集加载了进来并进行了初始化。之后的部分,继续读取了另一个文件brief_pattern.yml,里面存储了若干个int数(暂时不知道干啥的)// initialize brief extractorstring brief_

2021-12-19 15:48:01 548

原创 ROS-3DSLAM(十三)lvi-sam源代码阅读11 —— visual_loop阅读4 + ORB-SLAM初探

2021SC@SDUSC(十三)lvi-sam源代码阅读11 —— visual_loop阅读4 + ORB-SLAM初探visual_loopDBoW文件夹DBoW内的内容主要跟词袋模型的部分相关,是回环检测中用于匹配回环点的重要步骤。项目中DBoW节点,应用的一个SLAM的模型——ORB-SLAM。所以决定先学习一下ORB-SLAM。对本项目中该部分的分析,考虑后决定按照算法流程来进行分析。楼下是本次博客中分析的内容:在loop_detection_node.cpp中,有读取一个二进制

2021-12-12 18:49:33 3474

原创 ROS-3DSLAM(十二)lvi-sam源代码阅读10 —— visual_loop阅读3 + ORB学习

2021SC@SDUSC(十二)lvi-sam源代码阅读10 —— visual_loop阅读3 + ORB学习visual_loopDUtils文件夹DException定义异常信息Timestamp//成员变量 /// Seconds unsigned long m_secs; // seconds /// Microseconds unsigned long m_usecs; // microseconds//主要方法 setTime //设置

2021-12-05 01:35:25 1301

原创 ROS-3DSLAM(十一)lvi-sam源代码阅读9

2021SC@SDUSC(十一)lvi-sam源代码阅读9前置知识vins-monolvi-sam的视觉部分是基于vins-mono算法的。所以在阅读开始之前学习以下这个算法是很有必要的。vins-mono github地址:https://github.com/HKUST-Aerial-Robotics/VINS-Mono先对整个项目做一个大致的了解,然后重点关注其中的重定位部分Vins-mono是香港科技大学开源的一个VIO算法,用紧耦合的方法,通过单目+IMU恢复出尺度。单纯视觉:

2021-11-28 19:13:29 628

原创 pthread共享内存编程学习(1) -- 基本语法学习

pthread共享内存编程学习(1) – 基本语法学习文章目录pthread共享内存编程学习(1) -- 基本语法学习1.hello pthread(基础小例子)例子pthtread基本知识小问题记录2.互斥量 mutex例子互斥量基本知识互斥量 vs 忙等待参考博客本次学习以课本《并行程序设计导论》第四章为主,并且学习其他dl们的博客,做一些学习记录。1.hello pthread(基础小例子)例子注释里有对程序的解释,和我对不懂的地方的注解编译语句:gcc -g -Wall -o test

2021-11-23 20:22:45 687 1

原创 ROS-3DSLAM(十)lvi-sam源代码阅读8

2021SC@SDUSC(十)lvi-sam源代码阅读8写在前面本周开始阅读lvi-sam项目中的视觉部分。我主要负责visual_loop,也就是回环检测的部分。前几周一直在阅读lidar部分mapOptmization.cpp,代码量较大所以多花了一些时间,其他队友已经开始了visual部分的进度。mapOptmization部分还有一小部分没有阅读完,为了补齐跟队友的进度,所以先开始了visual部分的阅读,没有阅读完的代码将在之后穿插阅读。作为铺垫,我在上周学习了回环检测的一些前置知识(m

2021-11-21 19:23:36 1523

原创 ROS-3DSLAM(九)lvi-sam源代码阅读7

(九)lvi-sam源代码阅读7lidar_odometrymapOptmization.cpplaserInfoHandler对该回调函数的一些零散的分析:关键成员变量历史关键帧位姿:cloudKeyPoses3D cloudKeyPoses6D当前帧位姿:transformTobeMapped前三位是旋转信息 后三位是位置信息当前帧角点、平面点集合:laserCloudCornerLast laserCloudSurfaceLast步骤2中筛选出来的角点、平面点集

2021-11-14 21:49:01 1538

原创 ROS-3DSLAM(八)lvi-sam源代码阅读6

(八)lvi-sam源代码阅读6lidar_odometrymapOptmization.cpplaserCloudInfoHandler订阅激光帧点云信息接上篇:4 scan2MapOptimization()scan-to-map优化当前帧位姿void scan2MapOptimization(){ // 如果没有关键帧点云数据 if (cloudKeyPoses3D->points.empty()) return; // 关键点数量大于阈

2021-11-07 16:22:53 920

原创 ROS-3DSLAM(七)lvi-sam源代码阅读5

(七)lvi-sam源代码阅读5lidar_odometrymapOptmization.cpp在构造函数中,主要订阅了三个话题;下面主要分析这三个话题的回调函数://订阅当前激光帧点云信息,来自featureExtractionsubLaserCloudInfo = nh.subscribe<lvi_sam::cloud_info>(PROJECT_NAME + "/lidar/feature/cloud_info", 5, &mapOptimization::laserCl

2021-11-07 16:21:26 1005 2

原创 ROS-3DSLAM(六)lvi-sam源代码阅读4

2021SC@SDUSC(六)lvi-sam源代码阅读4lidar_odometrymapOptmization.cpp6D位姿点云结构定义:/* * A point cloud type that has 6D pose info ([x,y,z,roll,pitch,yaw] intensity is time stamp) * 具有 6D 姿态信息的点云类型([x,y,z,roll,pitch,yaw] 强度是时间戳) */struct PointXYZIRPYT

2021-10-31 01:41:32 835 2

原创 ROS-3DSLAM(五)lvi-sam源代码阅读3

2021SC@SDUSC(五)lvi-sam源代码阅读3lidar_odometryimuPreintegration.cpp本次分析主要是对imuHandler函数的分析。里程计的回调函数 odometryHandler/*然后是里程计回调函数。每隔100帧激光里程计,重置ISAM2优化器,添加里程计、速度、偏置先验因子,执行优化。计算前一帧激光里程计与当前帧激光里程计之间的imu预积分量,用前一帧状态施加预积分量得到当前帧初始状态估计,添加来自mapOptimization的当前帧

2021-10-22 22:31:46 745

原创 ROS-3DSLAM(四)lvi-sam源代码阅读2

2021SC@SDUSC(四)lvi-sam源代码阅读2lidar_odometryimuPreintegration.cpp本次分析主要是对imuHandler函数的分析。imu的回调函数 imuHandler根据上一次的odom和偏差,用gtsam来估计当下的odom作为imu的位姿,通过静态TF变换求得雷达的位姿,将其逐个发布。如图所示,由于 IMU 的频率比雷达高得多,因此在下一帧点云即时间戳到来之前,会有大量的IMU数据读入,如上图中紫色线条所示,则可以利用这段时间间隔内的IMU测

2021-10-17 13:44:25 747

原创 ROS-3DSLAM(三)lvi-sam源代码阅读1

2021SC@SDUSC(三)lvi-sam源代码阅读1lvi-sam项目的代码主要分为两大部分:lidar_odometry(雷达里程计系统)和visual_odometry(视觉历程计系统)。lidar_odometry雷达里程计文件夹下包含4个.cpp文件和1个.h头文件imuPreintegration.cpp头文件部分引用了gtsam库中的很多头文件,首先分析gtsam库。#include <gtsam/geometry/Rot3.h>...#include &

2021-10-10 17:04:47 1228

原创 ROS-3DSLAM(二)lvi-sam项目认识

2021SC@SDUSC(二)lvi-sam项目认识一、SLAM简介SLAM是Simultaneous Localization and Mapping(同时定位 + 建图)。独立的定位问题是建立在地图已知的情况下的,单独的建图问题也是建立在定位已知的情况下的。当机器人不能得到环境地图,也不知道自身位姿的时候,SLAM问题就出现了。也就是说SLAM要同时的进行机器人定位和建图,这个问题比单独的定位和单独的建图都要难得多。SLAM算法分为在线SLAM和全SLAM问题。在线SLAM的代表是EFK S

2021-10-10 16:52:51 2951 11

原创 ROS-3DSLAM --开篇:综述

2021SC@SDUSCROS-3DSLAM --开篇:综述文章目录ROS-3DSLAM --开篇:综述一、项目简介二、项目目录三、目标规划和分工四、部分项目的核心代码分析3-geometry-noetic-devel4-geometry2-noetic-devel7-robot_pose_ekf-master8-map_store-hydro-devel9-rivz-noetic-devel11-moveit_msgs五、参考资料六、环境配置和代码下载一、项目简介​ ROS是一个开源的元操作

2021-09-29 19:16:15 742

原创 ubuntu安装ros系统及遇到的问题总结

2021SC@SDUSCubuntu安装ros系统及遇到的问题总结本次安装以ubuntu18.04安装ros melodic版本为例一、在虚拟机ubuntu18.04系统直接在官网上下载对应的镜像文件即可。二、安装ros具体流程在网站http://wiki.ros.org/melodic/Installation/Ubuntu,本文主要介绍安装过程中遇到的一系列问题以及解决方法。1、添加source.list设置你的电脑以从 packages.ros.org 接收软件。sudo sh -c

2021-09-27 13:23:55 1433

空空如也

空空如也

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

TA关注的人

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