星辰和大海都需要门票
山不在高,有仙则名。有问题,欢迎小伙伴私聊哦
展开
-
导航中的常用坐标系解析
1 坐标系定义及转换1.1 坐标系定义(1) ECEF坐标系 也叫地心地固直角坐标系。其原点为地球的质心,x轴延伸通过本初子午线(0度经度)和赤道(0deglatitude)的交点。 z轴延伸通过的北极(即,与地球旋转轴重合)。 y轴完成右手坐标系,穿过赤道和90度经度。(2) WGS-84坐标也就是也叫经纬高坐标系(经度(longitude),纬度(latitude)和高度(altitude)LLA坐标系)一句话解释就是:把前面提到的ECEF坐标系用在GPS中,就是WGS-84坐标系(原创 2021-11-22 17:29:55 · 1557 阅读 · 0 评论 -
PCL点云库必备知识点8——四元素转方向余弦矩阵C的三种方法
四元素转方向余弦矩阵C的完整代码如下:#include"ros/ros.h"#include"std_msgs/String.h"#include<pcl/common/transforms.h>#include"nav_msgs/Odometry.h"#include <tf/tf.h>#include <tf_conversions/tf_eigen.h>#include<Eigen/Eigen>// 可用于geometry_msgs与E原创 2021-11-16 16:51:36 · 796 阅读 · 0 评论 -
PCL点云库动手实践知识点5——实时订阅ros下点云话题并对其进行处理
1 实时读取ros下点云,并对点云数据进行处理实现步骤如下:1)订阅话题/sensing/lidar/top/points_raw(sensor_msgs/PointCloud2),将其转换为pcl::PointXYZI格式 pcl::PointCloud<pcl::PointXYZI> tmp;pcl::fromROSMsg(*input,tmp);void points_callback(const sensor_msgs::PointCloud2::ConstPtr &a原创 2021-11-11 21:11:10 · 1989 阅读 · 0 评论 -
PCL点云库动手实践知识点3.1——ndt matching点云配准
ndt点云配准程序如下:原理解析:1)通过对输入的点云滤波生成filtered_cloud,2)再将filtered_cloud基于ndt与target_cloud进行对比,求出最优的旋转变换矩阵ndt.getFinalTransformation()3)对iput_cloud基于ndt.getFinalTransformation()求出output_cloud4)对比output_cloud与target_cloud#include "ros/ros.h"#include<pcl/p原创 2021-11-11 20:54:00 · 1336 阅读 · 0 评论 -
PCL点云库动手实践知识点1.5——点云分割——未完成
// 学习将点云数据写入pcd文件// 包含pcd的输入输出头文件——pcd文件IO操作定义的头文件#include <pcl/io/pcd_io.h>// 包含点类型、结构的数据定义——包含若干PointT数据结构定义的头文件#include <pcl/point_types.h>// 直通滤波的头文件// #include<pcl/filters/passthrough.h>// 下采样的头文件#include <pcl/filters/voxe原创 2021-11-10 17:30:06 · 204 阅读 · 0 评论 -
PCL点云库动手实践知识点1.4——使用参数化模型投影点云
程序:将点云投影到z轴// 学习将点云数据写入pcd文件// 包含pcd的输入输出头文件——pcd文件IO操作定义的头文件#include <pcl/io/pcd_io.h>// 包含点类型、结构的数据定义——包含若干PointT数据结构定义的头文件#include <pcl/point_types.h>// 直通滤波的头文件// #include<pcl/filters/passthrough.h>// 下采样的头文件// #include <原创 2021-11-10 15:38:50 · 527 阅读 · 0 评论 -
PCL点云库必备知识点7——pcd点云地图的读取、保存与旋转变换
方法1// 包含pcd的输入输出头文件——pcd文件IO操作定义的头文件#include <pcl/io/pcd_io.h>// 包含点类型、结构的数据定义——包含若干PointT数据结构定义的头文件#include <pcl/point_types.h> pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); // // //读取点云文件夹中原创 2021-11-10 14:35:04 · 2613 阅读 · 0 评论 -
PCL点云库必备知识点6——pcd点云地图的实时可视化显示
可视化显示方法1:// 可视化显示的头文件#include<pcl/visualization/cloud_viewer.h>// 包含点类型、结构的数据定义——包含若干PointT数据结构定义的头文件#include <pcl/point_types.h>//点云初始化 pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); pcl::Po原创 2021-11-10 14:30:45 · 1053 阅读 · 0 评论 -
PCL点云库动手实践知识点1.3——基于StatisticalOutlierRemoval滤波器(移除离群点)对点云进行处理
主要程序如下:// 学习将点云数据写入pcd文件// 包含pcd的输入输出头文件——pcd文件IO操作定义的头文件#include <pcl/io/pcd_io.h>// 包含点类型、结构的数据定义——包含若干PointT数据结构定义的头文件#include <pcl/point_types.h>// 直通滤波的头文件// #include<pcl/filters/passthrough.h>// 下采样的头文件// #include <pcl/f原创 2021-11-10 11:24:26 · 645 阅读 · 0 评论 -
PCL点云库动手实践知识点1.2——基于voxelGrid下采样对点云进行处理
对点云进行下采样与可视化显示使用体素化网格方法进行下采样,即通过减少点的数量减少点云数据,并同时保持点云的形状特征,在提高配准、曲面重建、形状识别等算法速度中非常实用。下采样滤波原理:通过输入的点云数据创建一个三维体素栅格(可把体素栅格想象为微小的空间三维立方体的集合),然后在每个体素(即,三维立方体)内用体素中所有点的重心来近似显示体素中其他点,这样该体素内所有点就用一个重点最终表示。// 学习将点云数据写入pcd文件// 包含pcd的输入输出头文件——pcd文件IO操作定义的头文件#incl原创 2021-11-10 10:12:42 · 571 阅读 · 0 评论 -
PCL点云库动手实践知识点1.1——基于PassThrough直通滤波器对点云进行处理
// 学习将点云数据写入pcd文件// 包含pcd的输入输出头文件——pcd文件IO操作定义的头文件#include <pcl/io/pcd_io.h>// 包含点类型、结构的数据定义——包含若干PointT数据结构定义的头文件#include <pcl/point_types.h>//直通滤波的头文件#include<pcl/filters/passthrough.h>int main (int argc, char** argv){ // 我们将原创 2021-11-09 17:09:27 · 318 阅读 · 0 评论 -
PCL点云库动手实践知识点4——将点云坐标转换到gps坐标系下
#include"ros/ros.h"#include"std_msgs/String.h"#include<pcl/common/transforms.h>#include"nav_msgs/Odometry.h"#include <tf/tf.h>#include <tf_conversions/tf_eigen.h>#include<Eigen/Eigen>// 可用于geometry_msgs与Eigen相关数据类型之间的转换。#in原创 2021-11-05 13:59:27 · 2039 阅读 · 0 评论 -
PCL点云库必备知识点2.1——点云旋转变化pcl::transformPointCloud的使用
matrix_transform02.cpp#include "ros/ros.h"#include<iostream>#include<pcl/io/pcd_io.h>#include<pcl/point_cloud.h>#include<pcl/common/transforms.h>#include<pcl/visualization/pcl_visualizer.h>using namespace std;int main原创 2021-11-04 10:02:56 · 7515 阅读 · 1 评论 -
PCL点云库必备知识点5——ROS-Eigen消息转换
1. 头文件ROS与Eigen的消息转换相关函数定义在eigen_msg.h中,可用于geometry_msgs与Eigen相关数据类型之间的转换。在源文件中需要包含:#include <eigen_conversions/eigen_msg.h>2 在CMakeList.txt中需要在find_package()中添加eigen_conversions的包依赖:find_package(catkin REQUIRED COMPONENTS geometry_msgs eig原创 2021-11-03 11:07:44 · 540 阅读 · 0 评论 -
PCL点云库必备知识点4——pointcloud2消息格式的转换
1 sensor_msgs::PointCloud2ConstPtr与sensor_msgs::PointCloud2的转换参考链接sensor_msgs::PointCloud2ConstPtr是一个指针,*sensor_msgs::PointCloud2ConstPtr=sensor_msgs::PointCloud2;2 convertPointCloud2ToPointCloud参考链接2#include <sensor_msgs/PointCloud.h>#include原创 2021-11-03 10:29:36 · 4600 阅读 · 0 评论 -
PCL点云库必备知识点3——pcl程序写作中的必备知识_点云对象与点云指针对象的创建
1 点云对象的声明(1)点云对象// 我们将创建的模板化 PointCloud 结构——创建的点云模板类,模板类型为PointXYZ pcl::PointCloud<pcl::PointXYZ> cloud;(2)点云指针对象pcl::PointCloudpcl::PointXYZ::Ptr cloud_in(new pcl::PointCloudpcl::PointXYZ);...原创 2021-11-01 10:46:34 · 996 阅读 · 0 评论 -
PCL点云库必备知识点2——pcd点云地图格式的解析
1 gedit test_pcd.pcd# .PCD v0.7 - Point Cloud Data file formatVERSION 0.7FIELDS x y zSIZE 4 4 4TYPE F F FCOUNT 1 1 1WIDTH 5HEIGHT 1VIEWPOINT 0 0 0 1 0 0 0POINTS 5DATA ascii10 20 3010 20 3010 20 3010 20 3010 20 302 格式说明格式说明...原创 2021-10-27 11:18:09 · 502 阅读 · 0 评论 -
PCL点云库专栏目录
PCL点云库知识点0——pcd点云读取中的常用指令PCL点云库知识点1——在项目中使用pcl点云文件PCL点云库知识点2——原始点云的读取,旋转变换与显示原创 2021-10-27 09:26:12 · 272 阅读 · 0 评论 -
PCL点云库必备知识点1——pcd点云读取中的常用指令
1 pcd点云地图的读取pcd点云地图格式有三种——ascii/binary/binary_compressedgedit xxxxxx.pcd1.1 pcl_viewer命令的使用sudo apt install pcl-toolspcl_viewer xxxxxx.pcd #xxxxx.pcd为文件名修改背景色——-bc r,g,b = background colorpcl_viewer ism_test_cat.pcd -bc 0,255,0修改前景色,可用10进制和16进制原创 2021-10-27 09:22:23 · 1300 阅读 · 0 评论 -
PCL点云库动手实践知识点2——原始点云的读取,旋转变换与显示
matrix_transform02.cpprosrun snitch_pointcloud matrix_transform ism_test_cat.pcd程序介绍:(1)原始点云的读取(2)分别采用欧拉角和eigen两种旋转变换矩阵方法对点云进行处理(3) 用pcl::visualization分别显示原始点云与转换后的点云#include<iostream>#include <pcl/io/pcd_io.h>#include <pcl/io/ply_i原创 2021-10-26 15:25:07 · 712 阅读 · 0 评论 -
PCL点云库动手实践知识点1——pcd点云地图数据填充与保存
1 创建文件夹mkdir pcd_writecd pcd_write2 创建pcd_write.cpp与CMakeLists.txt,并写入对应内容mkdir pcd_write.cppmkdir CMakeLists.txtgedit pcd_write.cpp// 包含pcd的输入输出头文件#include <pcl/io/pcd_io.h>// 包含点类型、结构的数据定义#include <pcl/point_types.h>int main (in原创 2021-10-26 09:55:09 · 975 阅读 · 0 评论