Deduplicate LoadOptions(). (#471)
parent
2042b73010
commit
4034f4f801
|
@ -17,10 +17,7 @@
|
|||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "cartographer/common/configuration_file_resolver.h"
|
||||
#include "cartographer/common/lua_parameter_dictionary.h"
|
||||
#include "cartographer_ros/node_options.h"
|
||||
#include "cartographer_ros/trajectory_options.h"
|
||||
#include "gtest/gtest.h"
|
||||
#include "ros/package.h"
|
||||
|
||||
|
@ -31,14 +28,9 @@ class ConfigurationFilesTest : public ::testing::TestWithParam<const char*> {};
|
|||
|
||||
TEST_P(ConfigurationFilesTest, ValidateNodeOptions) {
|
||||
EXPECT_NO_FATAL_FAILURE({
|
||||
auto file_resolver = ::cartographer::common::make_unique<
|
||||
::cartographer::common::ConfigurationFileResolver>(std::vector<string>{
|
||||
::ros::package::getPath("cartographer_ros") + "/configuration_files"});
|
||||
const string code = file_resolver->GetFileContentOrDie(GetParam());
|
||||
::cartographer::common::LuaParameterDictionary lua_parameter_dictionary(
|
||||
code, std::move(file_resolver));
|
||||
::cartographer_ros::CreateNodeOptions(&lua_parameter_dictionary);
|
||||
::cartographer_ros::CreateTrajectoryOptions(&lua_parameter_dictionary);
|
||||
LoadOptions(
|
||||
::ros::package::getPath("cartographer_ros") + "/configuration_files",
|
||||
GetParam());
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -14,13 +14,6 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "cartographer/common/configuration_file_resolver.h"
|
||||
#include "cartographer/common/lua_parameter_dictionary.h"
|
||||
#include "cartographer/common/make_unique.h"
|
||||
#include "cartographer/common/port.h"
|
||||
#include "cartographer_ros/node.h"
|
||||
#include "cartographer_ros/node_options.h"
|
||||
#include "cartographer_ros/ros_log_sink.h"
|
||||
|
@ -39,26 +32,14 @@ DEFINE_string(map_filename, "", "If non-empty, filename of a map to load.");
|
|||
namespace cartographer_ros {
|
||||
namespace {
|
||||
|
||||
std::tuple<NodeOptions, TrajectoryOptions> LoadOptions() {
|
||||
auto file_resolver = cartographer::common::make_unique<
|
||||
cartographer::common::ConfigurationFileResolver>(
|
||||
std::vector<string>{FLAGS_configuration_directory});
|
||||
const string code =
|
||||
file_resolver->GetFileContentOrDie(FLAGS_configuration_basename);
|
||||
cartographer::common::LuaParameterDictionary lua_parameter_dictionary(
|
||||
code, std::move(file_resolver));
|
||||
|
||||
return std::make_tuple(CreateNodeOptions(&lua_parameter_dictionary),
|
||||
CreateTrajectoryOptions(&lua_parameter_dictionary));
|
||||
}
|
||||
|
||||
void Run() {
|
||||
constexpr double kTfBufferCacheTimeInSeconds = 1e6;
|
||||
tf2_ros::Buffer tf_buffer{::ros::Duration(kTfBufferCacheTimeInSeconds)};
|
||||
tf2_ros::TransformListener tf(tf_buffer);
|
||||
NodeOptions node_options;
|
||||
TrajectoryOptions trajectory_options;
|
||||
std::tie(node_options, trajectory_options) = LoadOptions();
|
||||
std::tie(node_options, trajectory_options) =
|
||||
LoadOptions(FLAGS_configuration_directory, FLAGS_configuration_basename);
|
||||
|
||||
Node node(node_options, &tf_buffer);
|
||||
if (!FLAGS_map_filename.empty()) {
|
||||
|
|
|
@ -16,6 +16,10 @@
|
|||
|
||||
#include "cartographer_ros/node_options.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "cartographer/common/configuration_file_resolver.h"
|
||||
#include "cartographer/mapping/map_builder.h"
|
||||
#include "glog/logging.h"
|
||||
|
||||
namespace cartographer_ros {
|
||||
|
@ -36,8 +40,22 @@ NodeOptions CreateNodeOptions(
|
|||
lua_parameter_dictionary->GetDouble("pose_publish_period_sec");
|
||||
options.trajectory_publish_period_sec =
|
||||
lua_parameter_dictionary->GetDouble("trajectory_publish_period_sec");
|
||||
|
||||
return options;
|
||||
}
|
||||
|
||||
std::tuple<NodeOptions, TrajectoryOptions> LoadOptions(
|
||||
const string& configuration_directory,
|
||||
const string& configuration_basename) {
|
||||
auto file_resolver = cartographer::common::make_unique<
|
||||
cartographer::common::ConfigurationFileResolver>(
|
||||
std::vector<string>{configuration_directory});
|
||||
const string code =
|
||||
file_resolver->GetFileContentOrDie(configuration_basename);
|
||||
cartographer::common::LuaParameterDictionary lua_parameter_dictionary(
|
||||
code, std::move(file_resolver));
|
||||
|
||||
return std::make_tuple(CreateNodeOptions(&lua_parameter_dictionary),
|
||||
CreateTrajectoryOptions(&lua_parameter_dictionary));
|
||||
}
|
||||
|
||||
} // namespace cartographer_ros
|
||||
|
|
|
@ -18,9 +18,12 @@
|
|||
#define CARTOGRAPHER_ROS_NODE_OPTIONS_H_
|
||||
|
||||
#include <string>
|
||||
#include <tuple>
|
||||
|
||||
#include "cartographer/common/lua_parameter_dictionary.h"
|
||||
#include "cartographer/mapping/map_builder.h"
|
||||
#include "cartographer/common/port.h"
|
||||
#include "cartographer/mapping/proto/map_builder_options.pb.h"
|
||||
#include "cartographer_ros/trajectory_options.h"
|
||||
|
||||
namespace cartographer_ros {
|
||||
|
||||
|
@ -37,6 +40,10 @@ struct NodeOptions {
|
|||
NodeOptions CreateNodeOptions(
|
||||
::cartographer::common::LuaParameterDictionary* lua_parameter_dictionary);
|
||||
|
||||
std::tuple<NodeOptions, TrajectoryOptions> LoadOptions(
|
||||
const string& configuration_directory,
|
||||
const string& configuration_basename);
|
||||
|
||||
} // namespace cartographer_ros
|
||||
|
||||
#endif // CARTOGRAPHER_ROS_NODE_OPTIONS_H_
|
||||
|
|
|
@ -20,8 +20,6 @@
|
|||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "cartographer/common/configuration_file_resolver.h"
|
||||
#include "cartographer/common/lua_parameter_dictionary.h"
|
||||
#include "cartographer/common/make_unique.h"
|
||||
#include "cartographer/common/port.h"
|
||||
#include "cartographer_ros/node.h"
|
||||
|
@ -61,27 +59,13 @@ constexpr char kClockTopic[] = "clock";
|
|||
constexpr char kTfStaticTopic[] = "/tf_static";
|
||||
constexpr char kTfTopic[] = "tf";
|
||||
|
||||
// TODO(hrapp): This is duplicated in node_main.cc. Pull out into a config
|
||||
// unit.
|
||||
std::tuple<NodeOptions, TrajectoryOptions> LoadOptions() {
|
||||
auto file_resolver = cartographer::common::make_unique<
|
||||
cartographer::common::ConfigurationFileResolver>(
|
||||
std::vector<string>{FLAGS_configuration_directory});
|
||||
const string code =
|
||||
file_resolver->GetFileContentOrDie(FLAGS_configuration_basename);
|
||||
cartographer::common::LuaParameterDictionary lua_parameter_dictionary(
|
||||
code, std::move(file_resolver));
|
||||
|
||||
return std::make_tuple(CreateNodeOptions(&lua_parameter_dictionary),
|
||||
CreateTrajectoryOptions(&lua_parameter_dictionary));
|
||||
}
|
||||
|
||||
void Run(const std::vector<string>& bag_filenames) {
|
||||
const std::chrono::time_point<std::chrono::steady_clock> start_time =
|
||||
std::chrono::steady_clock::now();
|
||||
NodeOptions node_options;
|
||||
TrajectoryOptions trajectory_options;
|
||||
std::tie(node_options, trajectory_options) = LoadOptions();
|
||||
std::tie(node_options, trajectory_options) =
|
||||
LoadOptions(FLAGS_configuration_directory, FLAGS_configuration_basename);
|
||||
|
||||
tf2_ros::Buffer tf_buffer;
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
#include "cartographer_ros/trajectory_options.h"
|
||||
|
||||
#include "cartographer/mapping/trajectory_builder.h"
|
||||
#include "glog/logging.h"
|
||||
|
||||
namespace cartographer_ros {
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
#include "cartographer/common/lua_parameter_dictionary.h"
|
||||
#include "cartographer/common/port.h"
|
||||
#include "cartographer_ros/sensor_bridge.h"
|
||||
#include "cartographer/mapping/proto/trajectory_builder_options.pb.h"
|
||||
#include "cartographer_ros_msgs/TrajectoryOptions.h"
|
||||
|
||||
namespace cartographer_ros {
|
||||
|
|
Loading…
Reference in New Issue