分析子文件夹transform的内容
proto
首先打开.proto去查看依赖的数据结构,可以发现google就是爱造轮子,连基本的vector和四元数也自定义。
主要分为三种数据
变量 | 用途 |
---|---|
Vector | 表示移动 |
Quaternion | 表示旋转 |
Rigid | 封装了移动和旋转 |
所有坐标系都是右手坐标系,x前,y左,z上。和ros一样。
eigen库和这个刚好相反(这个不太了解,需要去测试一些eigen的函数,学习学习)
syntax = "proto2";
package cartographer.transform.proto;
// All coordinates are expressed in the right-handed Cartesian coordinate system
// used by Cartographer (x forward, y left, z up). Message names are chosen to
// mirror those used in the Eigen library.
message Vector2d {
optional double x = 1;
optional double y = 2;
}
message Vector2f {
optional float x = 1;
optional float y = 2;
}
message Vector3d {
optional double x = 1;
optional double y = 2;
optional double z = 3;
}
message Vector3f {
optional float x = 1;
optional float y = 2;
optional float z = 3;
}
message Quaterniond {
optional double x = 1;
optional double y = 2;
optional double z = 3;
optional double w = 4;
}
message Quaternionf {
optional float x = 1;
optional float y = 2;
optional float z = 3;
optional float w = 4;
}
message Rigid2d {
optional Vector2d translation = 1;
optional doub