3 #include <cartographer/common/configuration_file_resolver.h>
4 #include <cartographer/io/proto_stream.h>
5 #include <cartographer/mapping/map_builder.h>
10 std::unique_ptr<::cartographer::common::LuaParameterDictionary>
13 assert(fs::is_directory(configPath));
15 auto fileResolver = std::make_unique<::cartographer::common::ConfigurationFileResolver>(
16 std::vector<std::string>{configPath.string()});
17 return std::make_unique<::cartographer::common::LuaParameterDictionary>(
18 luaCode, std::move(fileResolver));
24 const int64_t utsTimestamp = ::cartographer::common::ToUniversal(time);
26 int64_t usSinceUnixEpoch =
28 ::cartographer::common::kUtsEpochOffsetFromUnixEpochInSeconds * 10
'000'000ll) /
31 return usSinceUnixEpoch;
39 return ::cartographer::common::FromUniversal(
40 ::cartographer::common::kUtsEpochOffsetFromUnixEpochInSeconds * 10
'000'000ll +
44 std::unique_ptr<::cartographer::mapping::MapBuilderInterface>
45 loadMap(
const std::filesystem::path& mapPath,
const std::filesystem::path& configPath)
52 const std::string mapBuilderLuaCode = R
"text(
53 include "map_builder.lua"
54 return MAP_BUILDER)text";
57 const auto mapBuilderOptions =
58 ::cartographer::mapping::CreateMapBuilderOptions(mapBuilderParameters.get());
60 std::unique_ptr<::cartographer::mapping::MapBuilderInterface> mapBuilder =
61 ::cartographer::mapping::CreateMapBuilder(mapBuilderOptions);
63 ::cartographer::io::ProtoStreamReader reader(mapPath.string());
64 mapBuilder->LoadState(&reader,
true);
65 mapBuilder->pose_graph()->RunFinalOptimization();