Rename serialization NodeData proto for consistency. (#540)
node_data should be a member of a node, not the other way around.master
parent
b1b0750e5b
commit
aaaf5ac546
|
@ -170,19 +170,21 @@ void MapBuilder::SerializeState(io::ProtoStreamWriter* const writer) {
|
||||||
}
|
}
|
||||||
// Next we serialize all node data.
|
// Next we serialize all node data.
|
||||||
{
|
{
|
||||||
const auto node_data = sparse_pose_graph_->GetTrajectoryNodes();
|
const auto trajectory_nodes = sparse_pose_graph_->GetTrajectoryNodes();
|
||||||
for (int trajectory_id = 0;
|
for (int trajectory_id = 0;
|
||||||
trajectory_id != static_cast<int>(node_data.size()); ++trajectory_id) {
|
trajectory_id != static_cast<int>(trajectory_nodes.size());
|
||||||
|
++trajectory_id) {
|
||||||
for (int node_index = 0;
|
for (int node_index = 0;
|
||||||
node_index != static_cast<int>(node_data[trajectory_id].size());
|
node_index !=
|
||||||
|
static_cast<int>(trajectory_nodes[trajectory_id].size());
|
||||||
++node_index) {
|
++node_index) {
|
||||||
proto::SerializedData proto;
|
proto::SerializedData proto;
|
||||||
auto* const node_data_proto = proto.mutable_node_data();
|
auto* const node_proto = proto.mutable_node();
|
||||||
// TODO(whess): Handle trimmed data.
|
// TODO(whess): Handle trimmed data.
|
||||||
node_data_proto->mutable_node_id()->set_trajectory_id(trajectory_id);
|
node_proto->mutable_node_id()->set_trajectory_id(trajectory_id);
|
||||||
node_data_proto->mutable_node_id()->set_node_index(node_index);
|
node_proto->mutable_node_id()->set_node_index(node_index);
|
||||||
*node_data_proto->mutable_trajectory_node() =
|
*node_proto->mutable_node_data() =
|
||||||
ToProto(*node_data[trajectory_id][node_index].constant_data);
|
ToProto(*trajectory_nodes[trajectory_id][node_index].constant_data);
|
||||||
// TODO(whess): Only enable optionally? Resulting pbstream files will be
|
// TODO(whess): Only enable optionally? Resulting pbstream files will be
|
||||||
// a lot larger now.
|
// a lot larger now.
|
||||||
writer->WriteProto(proto);
|
writer->WriteProto(proto);
|
||||||
|
|
|
@ -18,7 +18,7 @@ package cartographer.mapping.proto;
|
||||||
|
|
||||||
import "cartographer/mapping/proto/sparse_pose_graph.proto";
|
import "cartographer/mapping/proto/sparse_pose_graph.proto";
|
||||||
import "cartographer/mapping/proto/submap.proto";
|
import "cartographer/mapping/proto/submap.proto";
|
||||||
import "cartographer/mapping/proto/trajectory_node.proto";
|
import "cartographer/mapping/proto/trajectory_node_data.proto";
|
||||||
|
|
||||||
message Submap {
|
message Submap {
|
||||||
optional SubmapId submap_id = 1;
|
optional SubmapId submap_id = 1;
|
||||||
|
@ -26,13 +26,13 @@ message Submap {
|
||||||
optional Submap3D submap_3d = 3;
|
optional Submap3D submap_3d = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
message NodeData {
|
message Node {
|
||||||
optional NodeId node_id = 1;
|
optional NodeId node_id = 1;
|
||||||
optional TrajectoryNode trajectory_node = 5;
|
optional TrajectoryNodeData node_data = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
message SerializedData {
|
message SerializedData {
|
||||||
optional Submap submap = 1;
|
optional Submap submap = 1;
|
||||||
optional NodeData node_data = 2;
|
optional Node node = 2;
|
||||||
// TODO(whess): Add IMU data, odometry.
|
// TODO(whess): Add IMU data, odometry.
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,8 +19,8 @@ package cartographer.mapping.proto;
|
||||||
import "cartographer/sensor/proto/sensor.proto";
|
import "cartographer/sensor/proto/sensor.proto";
|
||||||
import "cartographer/transform/proto/transform.proto";
|
import "cartographer/transform/proto/transform.proto";
|
||||||
|
|
||||||
// Serialized state of a mapping::TrajectoryNode.
|
// Serialized state of a mapping::TrajectoryNode::Data.
|
||||||
message TrajectoryNode {
|
message TrajectoryNodeData {
|
||||||
optional int64 timestamp = 1;
|
optional int64 timestamp = 1;
|
||||||
optional transform.proto.Quaterniond gravity_alignment = 2;
|
optional transform.proto.Quaterniond gravity_alignment = 2;
|
||||||
optional sensor.proto.CompressedPointCloud
|
optional sensor.proto.CompressedPointCloud
|
|
@ -24,8 +24,8 @@
|
||||||
namespace cartographer {
|
namespace cartographer {
|
||||||
namespace mapping {
|
namespace mapping {
|
||||||
|
|
||||||
proto::TrajectoryNode ToProto(const TrajectoryNode::Data& constant_data) {
|
proto::TrajectoryNodeData ToProto(const TrajectoryNode::Data& constant_data) {
|
||||||
proto::TrajectoryNode proto;
|
proto::TrajectoryNodeData proto;
|
||||||
proto.set_timestamp(common::ToUniversal(constant_data.time));
|
proto.set_timestamp(common::ToUniversal(constant_data.time));
|
||||||
*proto.mutable_gravity_alignment() =
|
*proto.mutable_gravity_alignment() =
|
||||||
transform::ToProto(constant_data.gravity_alignment);
|
transform::ToProto(constant_data.gravity_alignment);
|
||||||
|
@ -47,7 +47,7 @@ proto::TrajectoryNode ToProto(const TrajectoryNode::Data& constant_data) {
|
||||||
return proto;
|
return proto;
|
||||||
}
|
}
|
||||||
|
|
||||||
TrajectoryNode::Data FromProto(const proto::TrajectoryNode& proto) {
|
TrajectoryNode::Data FromProto(const proto::TrajectoryNodeData& proto) {
|
||||||
Eigen::VectorXf rotational_scan_matcher_histogram(
|
Eigen::VectorXf rotational_scan_matcher_histogram(
|
||||||
proto.rotational_scan_matcher_histogram_size());
|
proto.rotational_scan_matcher_histogram_size());
|
||||||
for (int i = 0; i != proto.rotational_scan_matcher_histogram_size(); ++i) {
|
for (int i = 0; i != proto.rotational_scan_matcher_histogram_size(); ++i) {
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
#include "Eigen/Core"
|
#include "Eigen/Core"
|
||||||
#include "cartographer/common/time.h"
|
#include "cartographer/common/time.h"
|
||||||
#include "cartographer/mapping/proto/trajectory_node.pb.h"
|
#include "cartographer/mapping/proto/trajectory_node_data.pb.h"
|
||||||
#include "cartographer/sensor/range_data.h"
|
#include "cartographer/sensor/range_data.h"
|
||||||
#include "cartographer/transform/rigid_transform.h"
|
#include "cartographer/transform/rigid_transform.h"
|
||||||
|
|
||||||
|
@ -57,8 +57,8 @@ struct TrajectoryNode {
|
||||||
transform::Rigid3d pose;
|
transform::Rigid3d pose;
|
||||||
};
|
};
|
||||||
|
|
||||||
proto::TrajectoryNode ToProto(const TrajectoryNode::Data& constant_data);
|
proto::TrajectoryNodeData ToProto(const TrajectoryNode::Data& constant_data);
|
||||||
TrajectoryNode::Data FromProto(const proto::TrajectoryNode& proto);
|
TrajectoryNode::Data FromProto(const proto::TrajectoryNodeData& proto);
|
||||||
|
|
||||||
} // namespace mapping
|
} // namespace mapping
|
||||||
} // namespace cartographer
|
} // namespace cartographer
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
#include "Eigen/Core"
|
#include "Eigen/Core"
|
||||||
#include "cartographer/common/time.h"
|
#include "cartographer/common/time.h"
|
||||||
#include "cartographer/mapping/proto/trajectory_node.pb.h"
|
#include "cartographer/mapping/proto/trajectory_node_data.pb.h"
|
||||||
#include "gtest/gtest.h"
|
#include "gtest/gtest.h"
|
||||||
|
|
||||||
namespace cartographer {
|
namespace cartographer {
|
||||||
|
@ -37,7 +37,7 @@ TEST(TrajectoryNodeTest, ToAndFromProto) {
|
||||||
sensor::CompressedPointCloud({{-1.f, 2.f, 0.f}}).Decompress(),
|
sensor::CompressedPointCloud({{-1.f, 2.f, 0.f}}).Decompress(),
|
||||||
Eigen::VectorXf::Unit(20, 4),
|
Eigen::VectorXf::Unit(20, 4),
|
||||||
};
|
};
|
||||||
const proto::TrajectoryNode proto = ToProto(expected);
|
const proto::TrajectoryNodeData proto = ToProto(expected);
|
||||||
const TrajectoryNode::Data actual = FromProto(proto);
|
const TrajectoryNode::Data actual = FromProto(proto);
|
||||||
EXPECT_EQ(expected.time, actual.time);
|
EXPECT_EQ(expected.time, actual.time);
|
||||||
EXPECT_TRUE(actual.gravity_alignment.isApprox(expected.gravity_alignment));
|
EXPECT_TRUE(actual.gravity_alignment.isApprox(expected.gravity_alignment));
|
||||||
|
|
Loading…
Reference in New Issue