Skip to content
This repository has been archived by the owner on Jan 23, 2024. It is now read-only.

Fix/imu ros test #51

Open
wants to merge 50 commits into
base: feature/imuRosTest
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
0dc4f37
Adapted to new SM naming
HannesSommer Oct 30, 2017
0db34a1
Merge pull request #42 from ethz-asl/fix/newSmName
HannesSommer Oct 30, 2017
e5918ae
More robust ParallelizerTest
HannesSommer Oct 31, 2017
745a1d3
Merge pull request #43 from ethz-asl/fix/moreRobustParallelizerTest
HannesSommer Oct 31, 2017
98d0fad
Removed duplicated cpp entries from CMakeLists
HannesSommer Oct 6, 2017
89a5ed1
Extracted Covariance class
HannesSommer Sep 13, 2017
7f0b442
Soothe compiler warning
HannesSommer Sep 14, 2017
9c85ea7
Add CalibratorOptionsI.getNumThreads
HannesSommer Oct 6, 2017
0d4a806
Added AbstractCalibrator.getValueStore
HannesSommer Oct 6, 2017
ad92e65
Added some sanity checks concerning the timeBaseSensor
HannesSommer Oct 6, 2017
bb8460f
cleanup
HannesSommer Oct 6, 2017
2c255b1
Introduced CalibrationConfI.shouldAnySensorBeRegisteredTo
HannesSommer Oct 6, 2017
acc99b9
More functions for ObservationManagerI
HannesSommer Oct 6, 2017
992ecbe
Introduced CalibrationConfI::getCalibrator()
HannesSommer Oct 11, 2017
996268a
Introduced CalibratorRef and made ModuleStorage use it
HannesSommer Oct 11, 2017
439c695
Cleanup
HannesSommer Oct 13, 2017
1c37f30
Strip folders of module names
HannesSommer Oct 13, 2017
5e5bdef
Merge pull request #44 from ethz-asl/feature/variousMinorsAndCleanups
HannesSommer Nov 6, 2017
fa490b3
now takes any number of sensors
ZacharyTaylor Aug 31, 2017
79b70b7
cast still not working
ZacharyTaylor Aug 31, 2017
b6f1d34
adding position sensor feeder
ZacharyTaylor Aug 31, 2017
0033a83
review comments
ZacharyTaylor Sep 1, 2017
845dbfb
accept some more ros types
ZacharyTaylor Sep 1, 2017
9aa433f
adding imu
ZacharyTaylor Sep 1, 2017
937a50a
adding headers
ZacharyTaylor Sep 1, 2017
612ed98
working on example
ZacharyTaylor Sep 2, 2017
d417025
merging changes from master
ZacharyTaylor Sep 2, 2017
805fc10
still trying with euroc bags
ZacharyTaylor Sep 2, 2017
c6a04b6
adding info files and MH dataset setup
ZacharyTaylor Sep 6, 2017
4bfba30
resolved merge conflicts
ZacharyTaylor Sep 6, 2017
cf7ce2b
fixed merge issues
ZacharyTaylor Sep 6, 2017
fba7a26
Include cleanup
HannesSommer Sep 6, 2017
93d60e1
Save to matrix archive
HannesSommer Sep 6, 2017
51f3a9e
Fixe PositionSensorInputFeeder
HannesSommer Sep 6, 2017
b16c31f
Printout where output is written to
HannesSommer Sep 6, 2017
4bdc5c4
Fixing PositionSensor out of bounds handling
HannesSommer Sep 6, 2017
a688b4e
Made rovio a relative pose sensor
HannesSommer Sep 7, 2017
04c5042
Moved ROS examples to new oomact_ros_examples
HannesSommer Nov 6, 2017
7e8523c
Updated authors
HannesSommer Nov 6, 2017
97e1f65
typo
HannesSommer Nov 6, 2017
ca3128d
Merge pull request #45 from ethz-asl/feature/ros_calibration_node_and…
HannesSommer Nov 6, 2017
78cb8e8
Moved some headers into calibrator/
HannesSommer Nov 13, 2017
7419fce
Unified header suffix to .h
HannesSommer Nov 13, 2017
37388f8
Merge pull request #46 from ethz-asl/cleanup/headerSuffixAndFolders
HannesSommer Nov 13, 2017
8f68b07
Added two missing overrides
HannesSommer Feb 8, 2018
9de60ad
Merge pull request #47 from ethz-asl/fix/warnings
HannesSommer Feb 9, 2018
f49c9fe
Merge branch 'master' into feature/imuRosTest
rikba Jul 2, 2018
4f39544
Fix error checking.
rikba Jul 2, 2018
2cbb3dc
Fix .info path.
rikba Jul 2, 2018
d02bc93
Fix random walk field.
rikba Jul 2, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions dependencies.rosinstall
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
local-name: catkin_simple
uri: https://github.com/catkin/catkin_simple.git
- git:
local-name: Schweizer-Messer
uri: https://github.com/ethz-asl/Schweizer-Messer.git
local-name: schweizer_messer
uri: https://github.com/ethz-asl/schweizer_messer.git
- git:
local-name: eigen_catkin
uri: https://github.com/ethz-asl/eigen_catkin.git
Expand Down
9 changes: 1 addition & 8 deletions oomact/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,21 +21,13 @@ endif()

cs_add_library(${PROJECT_NAME}
src/algo/OdometryPath.cpp
src/algo/OdometryPath.cpp
src/algo/PredictionWriter.cpp
src/algo/PredictionWriter.cpp
src/algo/splinesToFile.cpp
src/algo/splinesToFile.cpp
src/CalibrationConfI.cpp
src/calibrator/AbstractCalibrator.cpp
src/calibrator/AbstractCalibrator.cpp
src/calibrator/BatchCalibrator.cpp
src/calibrator/BatchCalibrator.cpp
src/data/MapStorage.cpp
src/data/MapStorage.cpp
src/data/ObservationManagerI.cpp
src/data/ObservationManagerI.cpp
src/data/StorageI.cpp
src/data/StorageI.cpp
src/error-terms/ErrorTermAccelerometer.cpp
src/error-terms/ErrorTermAngularVelocity.cpp
Expand Down Expand Up @@ -82,6 +74,7 @@ cs_add_library(${PROJECT_NAME}
src/test/TestData.cpp
src/test/Tools.cpp
src/tools/CheckNotNull.cpp
src/tools/Covariance.cpp
src/tools/ErrorTermStatistics.cpp
src/tools/ErrorTermStatisticsWithProblemAndPredictor.cpp
src/tools/Interval.cpp
Expand Down
4 changes: 2 additions & 2 deletions oomact/include/aslam/calibration/algo/PredictionWriter.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@

#include <boost/shared_ptr.hpp>

#include "aslam/calibration/error-terms/ConditionalErrorTerm.hpp"
#include "aslam/calibration/Timestamp.hpp"
#include "aslam/calibration/error-terms/ConditionalErrorTerm.h"
#include "aslam/calibration/Timestamp.h"

namespace aslam {
namespace backend {
Expand Down
16 changes: 14 additions & 2 deletions oomact/include/aslam/calibration/calibrator/AbstractCalibrator.h
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#ifndef H2E153EC9_9902_41A1_A522_E4E0A04D6F76
#define H2E153EC9_9902_41A1_A522_E4E0A04D6F76

#include "CalibratorI.hpp"
#include "CalibratorI.h"
#include "../algo/PredictionWriter.h"
#include "../SensorId.hpp"
#include "../SensorId.h"

namespace aslam {
namespace backend {
Expand Down Expand Up @@ -42,11 +42,19 @@ class AbstractCalibratorOptions : public CalibratorOptionsI {
void setAcceptConstantErrorTerms(bool acceptConstantErrorTerms) {
this->acceptConstantErrorTerms = acceptConstantErrorTerms;
}

int getNumThreads() const override {
return numThreads;
}
void setNumThreads(int numThreads) {
this->numThreads = numThreads;
}
private:
bool predictResults;
bool verbose;
bool acceptConstantErrorTerms;
double splineOutputSamplePeriod;
int numThreads;
};

class AbstractCalibrator : public virtual CalibratorI {
Expand All @@ -67,6 +75,8 @@ class AbstractCalibrator : public virtual CalibratorI {
const Model & getModel() const override { return _model; }
Model & getModel() override { return _model; }

virtual ValueStoreRef getValueStore() const override;

double secsSinceStart(Timestamp timestamp) const override;
std::string secsSinceStart(const Interval & interval) const override;

Expand Down Expand Up @@ -99,6 +109,8 @@ class AbstractCalibrator : public virtual CalibratorI {

const std::shared_ptr<Model> _modelSP;
Model & _model;

ValueStoreRef _config;
private:
void addMeasurementTimestamp(Timestamp lowerBound, Timestamp upperBound = InvalidTimestamp());

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#ifndef H2FC5F3AD_D310_4A93_B2E5_55925AA5F4DF
#define H2FC5F3AD_D310_4A93_B2E5_55925AA5F4DF
#include <aslam/calibration/model/Module.h>
#include "tools/Printable.h"
#include "../tools/Printable.h"

namespace aslam {
namespace calibration {
Expand Down Expand Up @@ -33,10 +33,14 @@ class CalibrationConfI : public virtual Printable {

virtual std::string getOutputFolder(size_t segmentIndex = 0) const = 0;

virtual bool shouldAnySensorBeRegisteredTo(const Sensor & to) const = 0;
virtual bool shouldSensorsBeRegistered(const Sensor & from, const Sensor & to) const = 0;

virtual bool getUseCalibPriors() const = 0;

virtual CalibratorI & getCalibrator() = 0;
virtual const CalibratorI & getCalibrator() const = 0;

virtual ~CalibrationConfI();
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@

#include "../data/ObservationManagerI.h"
#include "../model/Model.h"
#include "../SensorId.hpp"
#include "../tools/Interval.hpp"
#include "../SensorId.h"
#include "../tools/Interval.h"

namespace sm {
class MatrixArchive;
Expand All @@ -21,8 +21,6 @@ using sm::value_store::ValueStoreRef;

class Model;
class CalibrationVariable;
class CalibratorOptions;
class MotionCaptureSource;
class ModuleList;
class PredictionFunctorWriter;

Expand All @@ -37,6 +35,7 @@ class CalibratorOptionsI {
virtual bool getVerbose() const = 0;
virtual void setVerbose(bool verbose) = 0;
virtual bool getAcceptConstantErrorTerms() const = 0;
virtual int getNumThreads() const = 0;
};

class CalibratorI : public ObservationManagerI {
Expand All @@ -46,6 +45,8 @@ class CalibratorI : public ObservationManagerI {
virtual Model & getModel() = 0;
virtual const Model & getModel() const = 0;

virtual ValueStoreRef getValueStore() const = 0; // TODO D this should be a ConstValueStore once it exists

virtual void setUpdateHandler(StatusUpdateHandler statusUpdateHandler, CalibrationUpdateHandler calibrationUpdateHandler) = 0;

virtual void addToArchive(sm::MatrixArchive & ma, bool append = false) const = 0;
Expand Down
25 changes: 25 additions & 0 deletions oomact/include/aslam/calibration/calibrator/CalibratorRef.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#ifndef HAA39AA34_DD3B_4A27_95E3_90FD35D78BC4
#define HAA39AA34_DD3B_4A27_95E3_90FD35D78BC4

namespace aslam {
namespace calibration {
class CalibratorI;

class CalibratorRef {
public:
CalibratorRef(CalibratorI& calib) : calib_(calib) {}

CalibratorI & getCalibrator() {
return calib_;
}
const CalibratorI & getCalibrator() const {
return calib_;
}
private:
CalibratorI& calib_;
};

}
}

#endif /* HAA39AA34_DD3B_4A27_95E3_90FD35D78BC4 */
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include <iosfwd>
#include <unordered_set>

#include <aslam/calibration/CalibrationConfI.h>
#include <aslam/calibration/calibrator/CalibrationConfI.h>

namespace aslam {
namespace calibration {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#include <memory>
#include <string>

#include <aslam/calibration/model/Sensor.hpp>
#include <aslam/calibration/model/Sensor.h>

namespace aslam {
namespace calibration {
Expand Down
15 changes: 8 additions & 7 deletions oomact/include/aslam/calibration/data/MapStorage.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,34 +27,35 @@ class MapStorageUnsafe {

/**
* The MapStorage class provides a simple implementation of the StorageI interface based on a std::unordered_map.
* The template layer only requires the Key type. The actual work is done by MapStorageBase.
* The template layer only requires the Key type. The actual work is done by internal::MapStorageUnsafe.
*/
template <typename Key>
class MapStorage : public StorageI<Key> {
public:
virtual ~MapStorage() = default;

virtual void remove(Key key) override {
void remove(Key key) override {
impl.remove(convertKey(key));
}
void clear() {
impl.clear();
}
private:
static size_t convertKey(Key key) {
return reinterpret_cast<size_t>(key);
}

void * get(Key key) const override {
return impl.get(convertKey(key));
}

void add(Key key, StorageElement && data) override {
impl.add(convertKey(key), std::move(data));
}

virtual size_t size() const override {
size_t size() const override {
return impl.size();
}
private:
static size_t convertKey(Key key) {
return reinterpret_cast<size_t>(key);
}

internal::MapStorageUnsafe impl;
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#include <utility>
#include <vector>

#include "../Timestamp.hpp"
#include "../Timestamp.h"

namespace aslam {
namespace calibration {
Expand Down
7 changes: 6 additions & 1 deletion oomact/include/aslam/calibration/data/ObservationManagerI.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include <string>
#include <aslam/calibration/model/Module.h>

#include "../Timestamp.hpp"
#include "../Timestamp.h"

namespace aslam {
namespace calibration {
Expand All @@ -18,10 +18,15 @@ class ObservationManagerI {
virtual ~ObservationManagerI();

virtual ModuleStorage & getCurrentStorage() = 0;
virtual const ModuleStorage & getCurrentStorage() const = 0;

virtual void setLowestTimestamp(Timestamp lowestTimeStamp) = 0;
virtual void addMeasurementTimestamp(Timestamp t, const Sensor & sensor) = 0;

virtual bool isNextWindowScheduled() const = 0;
virtual Timestamp getNextTimeWindowStartTimestamp() const = 0;
virtual bool isMeasurementRelevant(const Sensor & s, Timestamp t) const = 0;

virtual double secsSinceStart(Timestamp timestamp) const = 0;
virtual std::string secsSinceStart(const Interval & interval) const = 0;

Expand Down
Loading