35 #ifndef LVR2_SLAM_OPTIONS_YAML_EXTENSIONS 36 #define LVR2_SLAM_OPTIONS_YAML_EXTENSIONS 38 #include <yaml-cpp/yaml.h> 56 node[
"verbose"] = options.
verbose;
57 node[
"useHDF"] = options.
useHDF;
70 node[
"epsilon"] = options.
epsilon;
99 if (node[
"trustPose"])
101 options.
trustPose = node[
"trustPose"].as<
bool>();
104 if (node[
"metascan"])
106 options.
metascan = node[
"metascan"].as<
bool>();
109 if (node[
"createFrames"])
116 options.
verbose = node[
"verbose"].as<
bool>();
121 options.
useHDF = node[
"useHDF"].as<
bool>();
126 if (node[
"reduction"])
128 options.
reduction = node[
"reduction"].as<
double>();
131 if (node[
"minDistance"])
133 options.
minDistance = node[
"minDistance"].as<
double>();
136 if (node[
"maxDistance"])
138 options.
maxDistance = node[
"maxDistance"].as<
double>();
143 if (node[
"icpIterations"])
148 if (node[
"icpMaxDistance"])
153 if (node[
"maxLeafSize"])
155 options.
maxLeafSize = node[
"maxLeafSize"].as<
int>();
160 options.
epsilon = node[
"epsilon"].as<
double>();
165 if (node[
"doLoopClosing"])
170 if (node[
"doGraphSLAM"])
172 options.
doGraphSLAM = node[
"doGraphSLAM"].as<
bool>();
175 if (node[
"closeLoopDistance"])
180 if (node[
"closeLoopPairs"])
185 if (node[
"loopSize"])
187 options.
loopSize = node[
"loopSize"].as<
int>();
190 if (node[
"slamIterations"])
195 if (node[
"slamMaxDistance"])
200 if (node[
"slamEpsilon"])
202 options.
slamEpsilon = node[
"slamEpsilon"].as<
double>();
205 if (node[
"diffPosition"])
207 options.
diffPosition = node[
"diffPosition"].as<
double>();
210 if (node[
"diffAngle"])
212 options.
diffAngle = node[
"diffAngle"].as<
double>();
215 if (node[
"useScanOrder"])
220 if (node[
"rotate_angle"])
222 options.
rotate_angle = node[
"rotate_angle"].as<
double>();
double minDistance
Ignore all Points closer than to the origin of a scan.
double slamEpsilon
The epsilon difference of SLAM corrections for the stop criterion of SLAM.
double reduction
The Voxel size for Octree based reduction.
double rotate_angle
rotate this angle around y axis
bool trustPose
Use the unmodified Pose of new Scans. If false, apply the relative refinement of previous Scans...
const kaboom::Options * options
bool createFrames
Keep track of all previous Transformations of Scans for Animation purposes like 'show' from slam6D...
double epsilon
The epsilon difference between ICP-errors for the stop criterion of ICP.
void convert(COORD_SYSTEM from, COORD_SYSTEM to, float *point)
A struct to configure SLAMAlign.
bool verbose
Show more detailed output. Useful for fine-tuning Parameters or debugging.
int slamIterations
Number of ICP iterations during Loopclosing and number of GraphSLAM iterations.
bool useHDF
Indicates if a HDF file containing the scans should be used.
static Node encode(const lvr2::SLAMOptions &options)
static bool decode(const Node &node, lvr2::SLAMOptions &options)
double diffAngle
max difference of angle (sum of 3 angles) new and old
double slamMaxDistance
The maximum distance between two points during SLAM.
bool useScanOrder
use scan order as icp order (if false: start with lowest distance)
int maxLeafSize
The maximum number of Points in a Leaf of a KDTree.
double diffPosition
max difference of position (euclidean distance) new and old
double icpMaxDistance
The maximum distance between two points during ICP.
bool doGraphSLAM
Use complex Loopclosing with GraphSLAM.
double maxDistance
Ignore all Points farther away than from the origin of a scan.
bool metascan
Match scans to the combined Pointcloud of all previous Scans instead of just the last Scan...
bool doLoopClosing
Use simple Loopclosing.