2#include "yaml-cpp/yaml.h"
13 Node childNode = parentNode[tag];
17 throw runtime_error(
string(
"Failed loading the map, no ") + tag);
20void addLandmarks(std::vector<Landmark>* _ret, Node* list,
int* _coneCounter)
23 for (const_iterator it = list->begin(); it != list->end(); ++it)
25 const Node& position = *it;
26 vector<double> vi = position[
"position"].as<vector<double>>();
27 lm.
id = *_coneCounter;
29 lm.
position = Eigen::Vector3d(vi[0], vi[1], vi[2]);
36void addTimeKeepings(std::vector<std::pair<Landmark, Landmark>>* _ret, Node* list,
int* _coneCounter)
39 std::vector<Landmark> lms;
40 for (const_iterator it = list->begin(); it != list->end(); ++it)
42 const Node& position = *it;
43 vector<double> vi = position[
"position"].as<vector<double>>();
44 lm.
id = *_coneCounter;
46 lm.
position = Eigen::Vector3d(vi[0], vi[1], vi[2]);
51 for (
int i = 0; i < (lms.size() / 2); ++i)
53 _ret->push_back(std::make_pair(lms[i * 2], lms[i * 2 + 1]));
57Track loadMap(
string mapPath, Eigen::Vector3d& start_position, Eigen::Vector3d& start_orientation)
59 Node map = LoadFile(mapPath);
66 std::vector<double> start_pos = track[
"start"][
"position"].as<vector<double>>();
67 std::vector<double> start_or = track[
"start"][
"orientation"].as<vector<double>>();
68 start_position = Eigen::Vector3d(start_pos.data());
69 start_orientation = Eigen::Vector3d(start_or.data());
72 std::vector<double> gnss_start_pos = track[
"earthToTrack"][
"position"].as<vector<double>>();
73 std::vector<double> gnss_start_or = track[
"earthToTrack"][
"orientation"].as<vector<double>>();
74 ret.
gnssOrigin = Eigen::Vector3d(gnss_start_pos.data());
78 if (track[
"lanesFirstWithLastConnected"])
double typeWeights[LandmarkType::UNKNOWN+1]
std::vector< std::pair< Landmark, Landmark > > time_keeping_gates
Eigen::Vector3d enuToTrackRotation
std::vector< Landmark > left_lane
bool lanesFirstWithLastConnected
std::vector< Landmark > unknown
std::vector< Landmark > right_lane
Eigen::Vector3d gnssOrigin
void addTimeKeepings(std::vector< std::pair< Landmark, Landmark > > *_ret, Node *list, int *_coneCounter)
Track loadMap(string mapPath, Eigen::Vector3d &start_position, Eigen::Vector3d &start_orientation)
Node fillChildNode(Node parentNode, string tag)
void addLandmarks(std::vector< Landmark > *_ret, Node *list, int *_coneCounter)
LandmarkType stringToLandmarkType(const std::string &in)