[ABSL] Purge common::optional. (#1339)
parent
dafb4149ed
commit
4990d4d5e9
|
@ -95,12 +95,12 @@ cc_library(
|
||||||
deps = [
|
deps = [
|
||||||
":cc_protos",
|
":cc_protos",
|
||||||
"@boost//:iostreams",
|
"@boost//:iostreams",
|
||||||
|
"@com_google_absl//absl/types:optional",
|
||||||
"@com_google_glog//:glog",
|
"@com_google_glog//:glog",
|
||||||
"@org_cairographics_cairo//:cairo",
|
"@org_cairographics_cairo//:cairo",
|
||||||
"@org_ceres_solver_ceres_solver//:ceres",
|
"@org_ceres_solver_ceres_solver//:ceres",
|
||||||
"@org_lua_lua//:lua",
|
"@org_lua_lua//:lua",
|
||||||
"@org_tuxfamily_eigen//:eigen",
|
"@org_tuxfamily_eigen//:eigen",
|
||||||
"@com_google_absl//absl/strings",
|
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -93,7 +93,7 @@ PoseGraphStub::GetTrajectoryNodePoses() const {
|
||||||
CHECK(client.Write(request));
|
CHECK(client.Write(request));
|
||||||
mapping::MapById<mapping::NodeId, mapping::TrajectoryNodePose> node_poses;
|
mapping::MapById<mapping::NodeId, mapping::TrajectoryNodePose> node_poses;
|
||||||
for (const auto& node_pose : client.response().node_poses()) {
|
for (const auto& node_pose : client.response().node_poses()) {
|
||||||
common::optional<mapping::TrajectoryNodePose::ConstantPoseData>
|
absl::optional<mapping::TrajectoryNodePose::ConstantPoseData>
|
||||||
constant_pose_data;
|
constant_pose_data;
|
||||||
if (node_pose.has_constant_pose_data()) {
|
if (node_pose.has_constant_pose_data()) {
|
||||||
constant_pose_data = mapping::TrajectoryNodePose::ConstantPoseData{
|
constant_pose_data = mapping::TrajectoryNodePose::ConstantPoseData{
|
||||||
|
|
|
@ -39,7 +39,7 @@ class ReceiveGlobalSlamOptimizationsHandler
|
||||||
void OnFinish() override;
|
void OnFinish() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
common::optional<int> subscription_index_;
|
absl::optional<int> subscription_index_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace handlers
|
} // namespace handlers
|
||||||
|
|
|
@ -1,69 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright 2017 The Cartographer Authors
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef CARTOGRAPHER_COMMON_OPTIONAL_H_
|
|
||||||
#define CARTOGRAPHER_COMMON_OPTIONAL_H_
|
|
||||||
|
|
||||||
#include <memory>
|
|
||||||
|
|
||||||
#include "cartographer/common/make_unique.h"
|
|
||||||
#include "glog/logging.h"
|
|
||||||
|
|
||||||
namespace cartographer {
|
|
||||||
namespace common {
|
|
||||||
|
|
||||||
template <class T>
|
|
||||||
class optional {
|
|
||||||
public:
|
|
||||||
optional() {}
|
|
||||||
|
|
||||||
optional(const optional& other) {
|
|
||||||
if (other.has_value()) {
|
|
||||||
value_ = common::make_unique<T>(other.value());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
explicit optional(const T& value) { value_ = common::make_unique<T>(value); }
|
|
||||||
|
|
||||||
bool has_value() const { return value_ != nullptr; }
|
|
||||||
|
|
||||||
const T& value() const {
|
|
||||||
CHECK(value_ != nullptr);
|
|
||||||
return *value_;
|
|
||||||
}
|
|
||||||
|
|
||||||
optional<T>& operator=(const T& other_value) {
|
|
||||||
this->value_ = common::make_unique<T>(other_value);
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
optional<T>& operator=(const optional<T>& other) {
|
|
||||||
if (!other.has_value()) {
|
|
||||||
this->value_ = nullptr;
|
|
||||||
} else {
|
|
||||||
this->value_ = common::make_unique<T>(other.value());
|
|
||||||
}
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
std::unique_ptr<T> value_;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace common
|
|
||||||
} // namespace cartographer
|
|
||||||
|
|
||||||
#endif // CARTOGRAPHER_COMMON_OPTIONAL_H_
|
|
|
@ -1,63 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright 2017 The Cartographer Authors
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "cartographer/common/optional.h"
|
|
||||||
|
|
||||||
#include "gtest/gtest.h"
|
|
||||||
|
|
||||||
namespace cartographer {
|
|
||||||
namespace common {
|
|
||||||
namespace {
|
|
||||||
|
|
||||||
TEST(OptionalTest, CreateDisengagedObject) {
|
|
||||||
const optional<int> o;
|
|
||||||
EXPECT_FALSE(o.has_value());
|
|
||||||
const optional<float> x;
|
|
||||||
EXPECT_FALSE(x.has_value());
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(OptionalTest, CreateWithValue) {
|
|
||||||
const optional<int> a(5);
|
|
||||||
EXPECT_TRUE(a.has_value());
|
|
||||||
EXPECT_EQ(5, a.value());
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(OptionalTest, CreateFromOtherOptional) {
|
|
||||||
const optional<int> a(5);
|
|
||||||
const optional<int> b = a;
|
|
||||||
EXPECT_TRUE(a.has_value());
|
|
||||||
EXPECT_TRUE(b.has_value());
|
|
||||||
EXPECT_EQ(5, a.value());
|
|
||||||
EXPECT_EQ(5, b.value());
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(OptionalTest, AssignmentOperator) {
|
|
||||||
optional<int> a(5);
|
|
||||||
optional<int> b(4);
|
|
||||||
optional<int> c;
|
|
||||||
a = b;
|
|
||||||
EXPECT_TRUE(a.has_value());
|
|
||||||
EXPECT_EQ(4, a.value());
|
|
||||||
a = c;
|
|
||||||
EXPECT_FALSE(a.has_value());
|
|
||||||
a = 3;
|
|
||||||
EXPECT_TRUE(a.has_value());
|
|
||||||
EXPECT_EQ(3, a.value());
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace
|
|
||||||
} // namespace common
|
|
||||||
} // namespace cartographer
|
|
|
@ -16,6 +16,8 @@
|
||||||
|
|
||||||
#include "cartographer/mapping/2d/tsdf_2d.h"
|
#include "cartographer/mapping/2d/tsdf_2d.h"
|
||||||
|
|
||||||
|
#include "cartographer/common/make_unique.h"
|
||||||
|
|
||||||
namespace cartographer {
|
namespace cartographer {
|
||||||
namespace mapping {
|
namespace mapping {
|
||||||
|
|
||||||
|
|
|
@ -187,7 +187,7 @@ LocalTrajectoryBuilder2D::AddRangeData(
|
||||||
|
|
||||||
if (num_accumulated_ >= options_.num_accumulated_range_data()) {
|
if (num_accumulated_ >= options_.num_accumulated_range_data()) {
|
||||||
const common::Time current_sensor_time = synchronized_data.time;
|
const common::Time current_sensor_time = synchronized_data.time;
|
||||||
common::optional<common::Duration> sensor_duration;
|
absl::optional<common::Duration> sensor_duration;
|
||||||
if (last_sensor_time_.has_value()) {
|
if (last_sensor_time_.has_value()) {
|
||||||
sensor_duration = current_sensor_time - last_sensor_time_.value();
|
sensor_duration = current_sensor_time - last_sensor_time_.value();
|
||||||
}
|
}
|
||||||
|
@ -213,7 +213,7 @@ LocalTrajectoryBuilder2D::AddAccumulatedRangeData(
|
||||||
const common::Time time,
|
const common::Time time,
|
||||||
const sensor::RangeData& gravity_aligned_range_data,
|
const sensor::RangeData& gravity_aligned_range_data,
|
||||||
const transform::Rigid3d& gravity_alignment,
|
const transform::Rigid3d& gravity_alignment,
|
||||||
const common::optional<common::Duration>& sensor_duration) {
|
const absl::optional<common::Duration>& sensor_duration) {
|
||||||
if (gravity_aligned_range_data.returns.empty()) {
|
if (gravity_aligned_range_data.returns.empty()) {
|
||||||
LOG(WARNING) << "Dropped empty horizontal range data.";
|
LOG(WARNING) << "Dropped empty horizontal range data.";
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
|
@ -80,7 +80,7 @@ class LocalTrajectoryBuilder2D {
|
||||||
std::unique_ptr<MatchingResult> AddAccumulatedRangeData(
|
std::unique_ptr<MatchingResult> AddAccumulatedRangeData(
|
||||||
common::Time time, const sensor::RangeData& gravity_aligned_range_data,
|
common::Time time, const sensor::RangeData& gravity_aligned_range_data,
|
||||||
const transform::Rigid3d& gravity_alignment,
|
const transform::Rigid3d& gravity_alignment,
|
||||||
const common::optional<common::Duration>& sensor_duration);
|
const absl::optional<common::Duration>& sensor_duration);
|
||||||
sensor::RangeData TransformToGravityAlignedFrameAndFilter(
|
sensor::RangeData TransformToGravityAlignedFrameAndFilter(
|
||||||
const transform::Rigid3f& transform_to_gravity_aligned_frame,
|
const transform::Rigid3f& transform_to_gravity_aligned_frame,
|
||||||
const sensor::RangeData& range_data) const;
|
const sensor::RangeData& range_data) const;
|
||||||
|
@ -112,9 +112,9 @@ class LocalTrajectoryBuilder2D {
|
||||||
int num_accumulated_ = 0;
|
int num_accumulated_ = 0;
|
||||||
sensor::RangeData accumulated_range_data_;
|
sensor::RangeData accumulated_range_data_;
|
||||||
|
|
||||||
common::optional<std::chrono::steady_clock::time_point> last_wall_time_;
|
absl::optional<std::chrono::steady_clock::time_point> last_wall_time_;
|
||||||
common::optional<double> last_thread_cpu_time_seconds_;
|
absl::optional<double> last_thread_cpu_time_seconds_;
|
||||||
common::optional<common::Time> last_sensor_time_;
|
absl::optional<common::Time> last_sensor_time_;
|
||||||
|
|
||||||
RangeDataCollator range_data_collator_;
|
RangeDataCollator range_data_collator_;
|
||||||
};
|
};
|
||||||
|
|
|
@ -845,7 +845,7 @@ MapById<NodeId, TrajectoryNodePose> PoseGraph2D::GetTrajectoryNodePoses()
|
||||||
MapById<NodeId, TrajectoryNodePose> node_poses;
|
MapById<NodeId, TrajectoryNodePose> node_poses;
|
||||||
common::MutexLocker locker(&mutex_);
|
common::MutexLocker locker(&mutex_);
|
||||||
for (const auto& node_id_data : data_.trajectory_nodes) {
|
for (const auto& node_id_data : data_.trajectory_nodes) {
|
||||||
common::optional<TrajectoryNodePose::ConstantPoseData> constant_pose_data;
|
absl::optional<TrajectoryNodePose::ConstantPoseData> constant_pose_data;
|
||||||
if (node_id_data.data.constant_data != nullptr) {
|
if (node_id_data.data.constant_data != nullptr) {
|
||||||
constant_pose_data = TrajectoryNodePose::ConstantPoseData{
|
constant_pose_data = TrajectoryNodePose::ConstantPoseData{
|
||||||
node_id_data.data.constant_data->time,
|
node_id_data.data.constant_data->time,
|
||||||
|
|
|
@ -198,7 +198,7 @@ LocalTrajectoryBuilder3D::AddRangeData(
|
||||||
++num_accumulated_;
|
++num_accumulated_;
|
||||||
|
|
||||||
if (num_accumulated_ >= options_.num_accumulated_range_data()) {
|
if (num_accumulated_ >= options_.num_accumulated_range_data()) {
|
||||||
common::optional<common::Duration> sensor_duration;
|
absl::optional<common::Duration> sensor_duration;
|
||||||
if (last_sensor_time_.has_value()) {
|
if (last_sensor_time_.has_value()) {
|
||||||
sensor_duration = current_sensor_time - last_sensor_time_.value();
|
sensor_duration = current_sensor_time - last_sensor_time_.value();
|
||||||
}
|
}
|
||||||
|
@ -237,7 +237,7 @@ std::unique_ptr<LocalTrajectoryBuilder3D::MatchingResult>
|
||||||
LocalTrajectoryBuilder3D::AddAccumulatedRangeData(
|
LocalTrajectoryBuilder3D::AddAccumulatedRangeData(
|
||||||
const common::Time time,
|
const common::Time time,
|
||||||
const sensor::RangeData& filtered_range_data_in_tracking,
|
const sensor::RangeData& filtered_range_data_in_tracking,
|
||||||
const common::optional<common::Duration>& sensor_duration) {
|
const absl::optional<common::Duration>& sensor_duration) {
|
||||||
if (filtered_range_data_in_tracking.returns.empty()) {
|
if (filtered_range_data_in_tracking.returns.empty()) {
|
||||||
LOG(WARNING) << "Dropped empty range data.";
|
LOG(WARNING) << "Dropped empty range data.";
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
|
@ -78,7 +78,7 @@ class LocalTrajectoryBuilder3D {
|
||||||
std::unique_ptr<MatchingResult> AddAccumulatedRangeData(
|
std::unique_ptr<MatchingResult> AddAccumulatedRangeData(
|
||||||
common::Time time,
|
common::Time time,
|
||||||
const sensor::RangeData& filtered_range_data_in_tracking,
|
const sensor::RangeData& filtered_range_data_in_tracking,
|
||||||
const common::optional<common::Duration>& sensor_duration);
|
const absl::optional<common::Duration>& sensor_duration);
|
||||||
|
|
||||||
std::unique_ptr<InsertionResult> InsertIntoSubmap(
|
std::unique_ptr<InsertionResult> InsertIntoSubmap(
|
||||||
common::Time time, const sensor::RangeData& filtered_range_data_in_local,
|
common::Time time, const sensor::RangeData& filtered_range_data_in_local,
|
||||||
|
@ -107,13 +107,13 @@ class LocalTrajectoryBuilder3D {
|
||||||
|
|
||||||
int num_accumulated_ = 0;
|
int num_accumulated_ = 0;
|
||||||
sensor::RangeData accumulated_range_data_;
|
sensor::RangeData accumulated_range_data_;
|
||||||
common::optional<std::chrono::steady_clock::time_point> last_wall_time_;
|
absl::optional<std::chrono::steady_clock::time_point> last_wall_time_;
|
||||||
|
|
||||||
common::optional<double> last_thread_cpu_time_seconds_;
|
absl::optional<double> last_thread_cpu_time_seconds_;
|
||||||
|
|
||||||
RangeDataCollator range_data_collator_;
|
RangeDataCollator range_data_collator_;
|
||||||
|
|
||||||
common::optional<common::Time> last_sensor_time_;
|
absl::optional<common::Time> last_sensor_time_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace mapping
|
} // namespace mapping
|
||||||
|
|
|
@ -888,7 +888,7 @@ MapById<NodeId, TrajectoryNodePose> PoseGraph3D::GetTrajectoryNodePoses()
|
||||||
MapById<NodeId, TrajectoryNodePose> node_poses;
|
MapById<NodeId, TrajectoryNodePose> node_poses;
|
||||||
common::MutexLocker locker(&mutex_);
|
common::MutexLocker locker(&mutex_);
|
||||||
for (const auto& node_id_data : data_.trajectory_nodes) {
|
for (const auto& node_id_data : data_.trajectory_nodes) {
|
||||||
common::optional<TrajectoryNodePose::ConstantPoseData> constant_pose_data;
|
absl::optional<TrajectoryNodePose::ConstantPoseData> constant_pose_data;
|
||||||
if (node_id_data.data.constant_data != nullptr) {
|
if (node_id_data.data.constant_data != nullptr) {
|
||||||
constant_pose_data = TrajectoryNodePose::ConstantPoseData{
|
constant_pose_data = TrajectoryNodePose::ConstantPoseData{
|
||||||
node_id_data.data.constant_data->time,
|
node_id_data.data.constant_data->time,
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
|
|
||||||
#include "Eigen/Core"
|
#include "Eigen/Core"
|
||||||
#include "Eigen/Geometry"
|
#include "Eigen/Geometry"
|
||||||
#include "cartographer/common/optional.h"
|
#include "absl/types/optional.h"
|
||||||
#include "cartographer/common/port.h"
|
#include "cartographer/common/port.h"
|
||||||
#include "cartographer/common/time.h"
|
#include "cartographer/common/time.h"
|
||||||
#include "cartographer/mapping/id.h"
|
#include "cartographer/mapping/id.h"
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "cartographer/common/optional.h"
|
#include "absl/types/optional.h"
|
||||||
#include "cartographer/mapping/id.h"
|
#include "cartographer/mapping/id.h"
|
||||||
#include "cartographer/mapping/submaps.h"
|
#include "cartographer/mapping/submaps.h"
|
||||||
#include "cartographer/transform/rigid_transform.h"
|
#include "cartographer/transform/rigid_transform.h"
|
||||||
|
@ -61,7 +61,7 @@ class PoseGraphInterface {
|
||||||
double rotation_weight;
|
double rotation_weight;
|
||||||
};
|
};
|
||||||
std::vector<LandmarkObservation> landmark_observations;
|
std::vector<LandmarkObservation> landmark_observations;
|
||||||
common::optional<transform::Rigid3d> global_landmark_pose;
|
absl::optional<transform::Rigid3d> global_landmark_pose;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct SubmapPose {
|
struct SubmapPose {
|
||||||
|
@ -77,7 +77,7 @@ class PoseGraphInterface {
|
||||||
struct TrajectoryData {
|
struct TrajectoryData {
|
||||||
double gravity_constant = 9.8;
|
double gravity_constant = 9.8;
|
||||||
std::array<double, 4> imu_calibration{{1., 0., 0., 0.}};
|
std::array<double, 4> imu_calibration{{1., 0., 0., 0.}};
|
||||||
common::optional<transform::Rigid3d> fixed_frame_origin_in_map;
|
absl::optional<transform::Rigid3d> fixed_frame_origin_in_map;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class TrajectoryState { ACTIVE, FINISHED, FROZEN, DELETED };
|
enum class TrajectoryState { ACTIVE, FINISHED, FROZEN, DELETED };
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "Eigen/Core"
|
#include "Eigen/Core"
|
||||||
#include "cartographer/common/optional.h"
|
#include "absl/types/optional.h"
|
||||||
#include "cartographer/common/time.h"
|
#include "cartographer/common/time.h"
|
||||||
#include "cartographer/mapping/proto/trajectory_node_data.pb.h"
|
#include "cartographer/mapping/proto/trajectory_node_data.pb.h"
|
||||||
#include "cartographer/sensor/range_data.h"
|
#include "cartographer/sensor/range_data.h"
|
||||||
|
@ -38,7 +38,7 @@ struct TrajectoryNodePose {
|
||||||
// The node pose in the global SLAM frame.
|
// The node pose in the global SLAM frame.
|
||||||
transform::Rigid3d global_pose;
|
transform::Rigid3d global_pose;
|
||||||
|
|
||||||
common::optional<ConstantPoseData> constant_pose_data;
|
absl::optional<ConstantPoseData> constant_pose_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct TrajectoryNode {
|
struct TrajectoryNode {
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
#include <unordered_set>
|
#include <unordered_set>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "cartographer/common/optional.h"
|
#include "absl/types/optional.h"
|
||||||
#include "cartographer/sensor/data.h"
|
#include "cartographer/sensor/data.h"
|
||||||
|
|
||||||
namespace cartographer {
|
namespace cartographer {
|
||||||
|
@ -61,7 +61,7 @@ class CollatorInterface {
|
||||||
// the ID of the trajectory that needs more data before CollatorInterface is
|
// the ID of the trajectory that needs more data before CollatorInterface is
|
||||||
// unblocked. Returns 'nullopt' for implementations that do not wait for a
|
// unblocked. Returns 'nullopt' for implementations that do not wait for a
|
||||||
// particular trajectory.
|
// particular trajectory.
|
||||||
virtual common::optional<int> GetBlockingTrajectoryId() const = 0;
|
virtual absl::optional<int> GetBlockingTrajectoryId() const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace sensor
|
} // namespace sensor
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
#include "cartographer/sensor/fixed_frame_pose_data.h"
|
#include "cartographer/sensor/fixed_frame_pose_data.h"
|
||||||
|
|
||||||
#include "cartographer/common/optional.h"
|
#include "absl/types/optional.h"
|
||||||
#include "cartographer/transform/transform.h"
|
#include "cartographer/transform/transform.h"
|
||||||
|
|
||||||
namespace cartographer {
|
namespace cartographer {
|
||||||
|
@ -34,9 +34,9 @@ proto::FixedFramePoseData ToProto(const FixedFramePoseData& pose_data) {
|
||||||
FixedFramePoseData FromProto(const proto::FixedFramePoseData& proto) {
|
FixedFramePoseData FromProto(const proto::FixedFramePoseData& proto) {
|
||||||
return FixedFramePoseData{common::FromUniversal(proto.timestamp()),
|
return FixedFramePoseData{common::FromUniversal(proto.timestamp()),
|
||||||
proto.has_pose()
|
proto.has_pose()
|
||||||
? common::optional<transform::Rigid3d>(
|
? absl::optional<transform::Rigid3d>(
|
||||||
transform::ToRigid3(proto.pose()))
|
transform::ToRigid3(proto.pose()))
|
||||||
: common::optional<transform::Rigid3d>()};
|
: absl::optional<transform::Rigid3d>()};
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace sensor
|
} // namespace sensor
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
#include "cartographer/common/optional.h"
|
#include "absl/types/optional.h"
|
||||||
#include "cartographer/common/time.h"
|
#include "cartographer/common/time.h"
|
||||||
#include "cartographer/sensor/proto/sensor.pb.h"
|
#include "cartographer/sensor/proto/sensor.pb.h"
|
||||||
#include "cartographer/transform/rigid_transform.h"
|
#include "cartographer/transform/rigid_transform.h"
|
||||||
|
@ -31,7 +31,7 @@ namespace sensor {
|
||||||
// optimization.
|
// optimization.
|
||||||
struct FixedFramePoseData {
|
struct FixedFramePoseData {
|
||||||
common::Time time;
|
common::Time time;
|
||||||
common::optional<transform::Rigid3d> pose;
|
absl::optional<transform::Rigid3d> pose;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Converts 'pose_data' to a proto::FixedFramePoseData.
|
// Converts 'pose_data' to a proto::FixedFramePoseData.
|
||||||
|
|
|
@ -47,8 +47,8 @@ void Collator::AddSensorData(const int trajectory_id,
|
||||||
|
|
||||||
void Collator::Flush() { queue_.Flush(); }
|
void Collator::Flush() { queue_.Flush(); }
|
||||||
|
|
||||||
common::optional<int> Collator::GetBlockingTrajectoryId() const {
|
absl::optional<int> Collator::GetBlockingTrajectoryId() const {
|
||||||
return common::optional<int>(queue_.GetBlocker().trajectory_id);
|
return absl::optional<int>(queue_.GetBlocker().trajectory_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace sensor
|
} // namespace sensor
|
||||||
|
|
|
@ -47,7 +47,7 @@ class Collator : public CollatorInterface {
|
||||||
|
|
||||||
void Flush() override;
|
void Flush() override;
|
||||||
|
|
||||||
common::optional<int> GetBlockingTrajectoryId() const override;
|
absl::optional<int> GetBlockingTrajectoryId() const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Queue keys are a pair of trajectory ID and sensor identifier.
|
// Queue keys are a pair of trajectory ID and sensor identifier.
|
||||||
|
|
|
@ -53,8 +53,8 @@ void TrajectoryCollator::Flush() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
common::optional<int> TrajectoryCollator::GetBlockingTrajectoryId() const {
|
absl::optional<int> TrajectoryCollator::GetBlockingTrajectoryId() const {
|
||||||
return common::optional<int>();
|
return absl::optional<int>();
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace sensor
|
} // namespace sensor
|
||||||
|
|
|
@ -50,7 +50,7 @@ class TrajectoryCollator : public CollatorInterface {
|
||||||
|
|
||||||
void Flush() override;
|
void Flush() override;
|
||||||
|
|
||||||
common::optional<int> GetBlockingTrajectoryId() const override;
|
absl::optional<int> GetBlockingTrajectoryId() const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unordered_map<int, OrderedMultiQueue> trajectory_to_queue_;
|
std::unordered_map<int, OrderedMultiQueue> trajectory_to_queue_;
|
||||||
|
|
|
@ -54,11 +54,20 @@ if(NOT TARGET standalone_absl)
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/types/libabsl_variant.a"
|
"${ABSEIL_PROJECT_BUILD_DIR}/absl/types/libabsl_variant.a"
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/utility/libabsl_utility.a"
|
"${ABSEIL_PROJECT_BUILD_DIR}/absl/utility/libabsl_utility.a"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(CMAKE_GENERATOR MATCHES "Ninja")
|
||||||
|
set (ABSL_BUILD_COMMAND "ninja")
|
||||||
|
else()
|
||||||
|
set (ABSL_BUILD_COMMAND "make")
|
||||||
|
endif()
|
||||||
|
|
||||||
ExternalProject_Add(${ABSEIL_PROJECT_NAME}
|
ExternalProject_Add(${ABSEIL_PROJECT_NAME}
|
||||||
PREFIX ${ABSEIL_PROJECT_NAME}
|
PREFIX ${ABSEIL_PROJECT_NAME}
|
||||||
GIT_REPOSITORY https://github.com/abseil/abseil-cpp.git
|
GIT_REPOSITORY https://github.com/abseil/abseil-cpp.git
|
||||||
GIT_TAG 44aa275286baf97fc13529aca547a88b180beb08
|
GIT_TAG 44aa275286baf97fc13529aca547a88b180beb08
|
||||||
INSTALL_COMMAND ""
|
INSTALL_COMMAND ""
|
||||||
|
BUILD_ALWAYS TRUE
|
||||||
|
BUILD_COMMAND ${ABSEIL_BUILD_COMMAND}
|
||||||
CMAKE_CACHE_ARGS "-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON;-DBUILD_TESTING:BOOL=OFF;-DCMAKE_BUILD_TYPE:STRING=Release"
|
CMAKE_CACHE_ARGS "-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON;-DBUILD_TESTING:BOOL=OFF;-DCMAKE_BUILD_TYPE:STRING=Release"
|
||||||
BUILD_BYPRODUCTS "${ABSEIL_LIBRARY_PATH};${ABSEIL_DEPENDENT_LIBRARIES}"
|
BUILD_BYPRODUCTS "${ABSEIL_LIBRARY_PATH};${ABSEIL_DEPENDENT_LIBRARIES}"
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue