LIO-SAM输入

LIO-SAM传感器输入

mapOptmization.cpp

GPS数据输入
nav_msgs::Odometry 里程计消息类型

GPS信息可以通过ros开源的robot_localization节点对gps信号进行处理得到。

会用到其中的header.stamp、pose.pose、pose.covariance

imuPreintegration.cpp

IMU数据输入
sensor_msgs::Imu IMU消息类型

IMU消息可以通过直接读取串口数据,保存为对应的消息类型。

会用到其中除了协方差矩阵信息之外的其他信息。

imageProjection.cpp

IMU数据输入
sensor_msgs::Imu IMU消息类型

在该进程中也没有用到协方差矩阵信息。

雷达点云数据输入
sensor_msgs::PointCloud2 雷达点云消息类型

接收到的点云消息会被转换为pcl::PointCloud<T>类型,因此点云中的消息含义与pcl::PointCloud<T>相同或相似。

雷达消息列数是由角度求得得,且在程序中没有用到width、height信息,因此认为所使用点云数据是无序点云。

点云有效消息包含在字节流格式的data数据当中,每个点都是一个struct,其格式由fields给出。fields中的每一个元素都对应点格式struct当中的一个成员。在使用雷达点云数据时,需要对其进行反序列化,PointCloud(PCL)库定义了自动执行此操作的方法,可以根据fields中的内容对data数据进行反序列化,得到相应的点列表。参考文章

字节流表示的优点是它是一种传输数据的紧凑方式,非常灵活,允许将任意结构用于点。 缺点是没有反序列化的消息不可读。

基本消息格式

std_msgs::Header 消息头
uint32 seq # 序列号
time stamp # 时间戳
string frame_id # 信息所在的坐标系
geometry_msgs::Point 三维位置
float64 x
float64 y
float64 z
geometry_msgs::Quaternion 姿态信息(旋转四元数)
float64 x
float64 y
float64 z
float64 w
geometry_msgs::Pose 位姿信息
geometry_msgs/Point position # 三维位置
geometry_msgs/Quaternion orientation # 旋转四元数
geometry_msgs::Vector3 三维向量
float64 x
float64 y
float64 z
geometry_msgs::Twist 速度信息
geometry_msgs/Vector3 linear 
geometry_msgs/Vector3 angular 
geometry_msgs::PoseWithCovariance 带协方差的位姿类型
geometry_msgs/Pose pose # 6自由度位姿信息(xyzrpy)
float64[36] covariance # 6x6位姿的协方差矩阵
geometry_msgs/TwistWithCovariance 带协方差的速度类型
geometry_msgs/Twist twist # 线速度和角速度信息
float64[36] covariance # 6x6协方差矩阵
nav_msgs::Odometry 里程计消息类型
std_msgs/Header header # 消息头
string child_frame_id # 供速度参考的坐标系
geometry_msgs/PoseWithCovariance pose # 相对于header中frame_id的位姿信息
geometry_msgs/TwistWithCovariance twist # 相对于frame_id的速度信息
sensor_msgs::Imu IMU消息类型
std_msgs/Header header # 消息头
geometry_msgs/Quaternion orientation # 姿态信息
float64[9] orientation_covariance # 3x3姿态协方差矩阵
geometry_msgs/Vector3 angular_velocity # 角速度信息
float64[9] angular_velocity_covariance # 3x3角速度协方差矩阵
geometry_msgs/Vector3 linear_acceleration # 线加速度信息
float64[9] linear_acceleration_covariance # 3x3线加速度协方差矩阵
sensor_msgs::PointField 字段消息类型
uint8 INT8=1
uint8 UINT8=2
uint8 INT16=3
uint8 UINT16=4
uint8 INT32=5
uint8 UINT32=6
uint8 FLOAT32=7
uint8 FLOAT64=8
string name
uint32 offset
uint8 datatype
uint32 count
sensor_msgs::PointCloud2 雷达点云消息类型
std_msgs/Header header # 消息头
uint32 height # 对于有序点云,为点云2D图像(将3D点云展开为2D平面形式)的高度(行数);对于无序点云,该值为1
uint32 width # 对于有序点云,为点云2D图像(将3D点云展开为2D平面形式)的宽度(列数);对于无序点云,为点云总数
sensor_msgs/PointField[] fields # 用于反序列化data字节流的数据格式说明
bool is_bigendian # 数据是否为大端格式
uint32 point_step # 一个点占的比特数
uint32 row_step # 一行的长度占用的比特数
uint8[] data # 编码为字节流的点列表
bool is_dense # 如果包含Inf/NaN值,则为false,否则为true
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值