22 #ifndef OV_EVAL_SIMULATION_H 23 #define OV_EVAL_SIMULATION_H 29 #include <unordered_map> 31 #include <Eigen/Eigen> 40 #ifdef HAVE_PYTHONLIBS 68 ResultSimulation(std::string path_est, std::string path_std, std::string path_gt);
75 void plot_state(
bool doplotting,
double max_time = INFINITY);
82 void plot_timeoff(
bool doplotting,
double max_time = INFINITY);
110 #ifdef HAVE_PYTHONLIBS 125 for (
size_t i = 0; i < sx.
timestamps.size(); i++) {
130 for (
size_t i = 0; i < sy.
timestamps.size(); i++) {
135 for (
size_t i = 0; i < sz.
timestamps.size(); i++) {
140 std::map<std::string, std::string> params_value, params_bound;
142 params_value.insert({
"linestyle",
"-"});
143 params_value.insert({
"color", color_err});
145 params_bound.insert({
"linestyle",
"--"});
146 params_bound.insert({
"color", color_std});
153 for (
size_t i = 0; i < sx.
timestamps.size(); i++) {
165 for (
size_t i = 0; i < sy.
timestamps.size(); i++) {
177 for (
size_t i = 0; i < sz.
timestamps.size(); i++) {
195 std::string color_std) {
200 for (
size_t i = 0; i < sx.
timestamps.size(); i++) {
205 for (
size_t i = 0; i < sy.
timestamps.size(); i++) {
210 for (
size_t i = 0; i < sz.
timestamps.size(); i++) {
215 for (
size_t i = 0; i < sk.
timestamps.size(); i++) {
220 std::map<std::string, std::string> params_value, params_bound;
222 params_value.insert({
"linestyle",
"-"});
223 params_value.insert({
"color", color_err});
225 params_bound.insert({
"linestyle",
"--"});
226 params_bound.insert({
"color", color_std});
233 for (
size_t i = 0; i < sx.
timestamps.size(); i++) {
245 for (
size_t i = 0; i < sy.
timestamps.size(); i++) {
257 for (
size_t i = 0; i < sz.
timestamps.size(); i++) {
269 for (
size_t i = 0; i < sk.
timestamps.size(); i++) {
293 for (
size_t i = 0; i < s1.
timestamps.size(); i++) {
298 for (
size_t i = 0; i < s2.
timestamps.size(); i++) {
303 for (
size_t i = 0; i < s3.
timestamps.size(); i++) {
308 for (
size_t i = 0; i < s4.
timestamps.size(); i++) {
313 for (
size_t i = 0; i < s5.
timestamps.size(); i++) {
318 for (
size_t i = 0; i < s6.
timestamps.size(); i++) {
323 std::map<std::string, std::string> params_value, params_bound;
325 params_value.insert({
"linestyle",
"-"});
326 params_value.insert({
"color", color_err});
328 params_bound.insert({
"linestyle",
"--"});
329 params_bound.insert({
"color", color_std});
336 for (
size_t i = 0; i < s1.
timestamps.size(); i++) {
348 for (
size_t i = 0; i < s2.
timestamps.size(); i++) {
360 for (
size_t i = 0; i < s3.
timestamps.size(); i++) {
372 for (
size_t i = 0; i < s4.
timestamps.size(); i++) {
384 for (
size_t i = 0; i < s5.
timestamps.size(); i++) {
396 for (
size_t i = 0; i < s6.
timestamps.size(); i++) {
420 std::string color_std) {
425 for (
size_t i = 0; i < s1.
timestamps.size(); i++) {
430 for (
size_t i = 0; i < s2.
timestamps.size(); i++) {
435 for (
size_t i = 0; i < s3.
timestamps.size(); i++) {
440 for (
size_t i = 0; i < s4.
timestamps.size(); i++) {
445 for (
size_t i = 0; i < s5.
timestamps.size(); i++) {
450 for (
size_t i = 0; i < s6.
timestamps.size(); i++) {
455 for (
size_t i = 0; i < s7.
timestamps.size(); i++) {
460 for (
size_t i = 0; i < s8.
timestamps.size(); i++) {
465 for (
size_t i = 0; i < s9.
timestamps.size(); i++) {
470 std::map<std::string, std::string> params_value, params_bound;
472 params_value.insert({
"linestyle",
"-"});
473 params_value.insert({
"color", color_err});
475 params_bound.insert({
"linestyle",
"--"});
476 params_bound.insert({
"color", color_std});
483 for (
size_t i = 0; i < s1.
timestamps.size(); i++) {
495 for (
size_t i = 0; i < s2.
timestamps.size(); i++) {
507 for (
size_t i = 0; i < s3.
timestamps.size(); i++) {
519 for (
size_t i = 0; i < s4.
timestamps.size(); i++) {
531 for (
size_t i = 0; i < s5.
timestamps.size(); i++) {
543 for (
size_t i = 0; i < s6.
timestamps.size(); i++) {
555 for (
size_t i = 0; i < s7.
timestamps.size(); i++) {
567 for (
size_t i = 0; i < s8.
timestamps.size(); i++) {
579 for (
size_t i = 0; i < s9.
timestamps.size(); i++) {
592 #endif // OV_EVAL_SIMULATION_H Statistics object for a given set scalar time series values.
void plot_imu_intrinsics(bool doplotting, double max_time=INFINITY)
Will plot the imu intrinsic errors.
void plot_state(bool doplotting, double max_time=INFINITY)
Will plot the state error and its three sigma bounds.
std::vector< Eigen::VectorXd > gt_state
std::vector< double > values
Values (e.g. error or nees at a given time)
bool plot(const std::vector< Numeric > &x, const std::vector< Numeric > &y, const std::map< std::string, std::string > &keywords)
void plot_timeoff(bool doplotting, double max_time=INFINITY)
Will plot the state imu camera offset and its sigma bound.
std::vector< Eigen::VectorXd > est_state
void plot_cam_extrinsics(bool doplotting, double max_time=INFINITY)
Will plot the camera calibration extrinsic transform.
Evaluation and recording utilities.
void plot_cam_instrinsics(bool doplotting, double max_time=INFINITY)
Will plot the camera calibration intrinsics.
ResultSimulation(std::string path_est, std::string path_std, std::string path_gt)
Default constructor that will load our data from file.
std::vector< Eigen::VectorXd > state_cov
std::vector< double > values_bound
Bound of these values (e.g. our expected covariance bound)
A single simulation run (the full state not just pose).
void xlim(Numeric left, Numeric right)
void subplot(long nrows, long ncols, long plot_number)
std::vector< double > timestamps
Timestamp when these values occured at.