目录
#include "tramcar_msgs/PerceptionObstacle.h"
冒号表示开始,逗号表示开始后的连接,直到下一个语句开始,可以把这个语句进行隔断
疑问
为什么一个工作空间下,有这么多msg,写一个msg不就可以了吗?为什么要存在这么多msg呢?
关于头文件斜杠的解释
Linux和Winodws不同,路径之间用“/”分隔而不是Win下的“\”。
比如Win下的c:\windows\a.txt在Linux就是c:/windows/a.txt
实际上URL地址也是用“/”分隔路径,比如现在的地址就是
#include <ros/ros.h>
运行ros所必须的头文件
#include "pcl/point_cloud.h"
表示文件夹下的头文件,但是这个文件夹不在我的功能包里,应该在linux的系统里,由作者写的头文件是在作者编写的对应的文件夹下
写文件夹的时候,要写到,头文件紧邻着对应的上一层文件夹,这样就够用了
如果越级写文件夹也可以,与这个文件夹的写法并不冲突
运行点云所必须的头文件,这个应该是二维点云吧
#include <pcl_conversions/pcl_conversions.h>
个有效文件,就是i include/pcl_conversions/pcl_conversions.h ,这个文件里定义了一些常用的 进行数据类型转换的函数。
这个头文件配置了数据类型转换所需要的环境,类似与MATLAB中的函数,有了这个可以直接进行数据转换,目的就是进行数据类型转换
有三个命名空间,分别为pcl_conversions,pcl,ros,常用的是前两个命名空间,可以解决大部分数据类型的转换。
#include <sensor_msgs/PointCloud2.h>
PointCloud2是一类点云数据结构,本质上是对三维表面物体的成像,有一系列的点的坐标组成
点云的概念:点云是在同一空间参考系下表达目标空间分布和目标表面特性的海量点集合,在获取物体表面每个采样点的空间坐标后,得到的是点的集合,称之为“点云”(Point Cloud)。
点云的获取设备:RGBD设备是获取点云的设备,比如PrimeSense公司的PrimeSensor、微软的Kinect、华硕的XTionPRO。
点云的内容:根据激光测量原理得到的点云,包括三维坐标(XYZ)和激光反射强度(Intensity),强度信息与目标的表面材质、粗糙度、入射角方向,以及仪器的发射能量,激光波长有关。
根据摄影测量原理得到的点云,包括三维坐标(XYZ)和颜色信息(RGB)。
结合激光测量和摄影测量原理得到点云,包括三维坐标(XYZ)、激光反射强度(Intensity)和颜色信息(RGB)。
点云的属性:空间分辨率、点位精度、表面法向量等。
#include "tramcar_msgs/PerceptionObstacle.h"
这个是发布者自己编写的头文件,且头文件可以套用其他的头文件,这是使用规则,大圆套小圆,使用大圆就可以满足小圆的功能了。
疑问:这样会不会造成时间的运算时间的浪费
冒号表示开始,逗号表示开始后的连接,直到下一个语句开始,可以把这个语句进行隔断
Object_()
: id(0)
, position()
, center()
, direction()
, theta(0.0)
, velocity()
, length(0.0)
, width(0.0)
, height(0.0)
, cloud()
, polygon_point()
, tracking_time(0.0)
, heading(0.0)
, speed(0.0)
, sec(0)
, offset_x(0.0)
, offset_y(0.0)
, motion_state(0)
, mode()
, traking_time(0.0)
, type(0)
, is_static(false)
, is_straddling(false) {
} #这个语法是什么意思?这是个函数吗?
msg 文件的作用
msg作用
msg是用来描述ROS message的简单文本,生成不同语言的消息源代码,可以看做是对ros内置数据类型的名称重命名
改了这些名称需要在CMAKELists和package中进行配置,以保证可以将msg中的重命名转化为c++,Python等语言
配置方法
详见如下网站
msg位置
msg文件夹可以在工作空间 功能包 文件夹(tramcar_msg) msg
msg的文件类型类似如下:
左边是文本的类型,右边是文本的名称
int32 id # track id
Point position # position
Point center # ground center of the object (cx, cy, z_min)
Point direction # direction
float64 theta # heading in the world coordinate system.
Point velocity # velocity