mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 01:20:25 +08:00
Updated how RtabmapCmdEvent should be called (using UVariant). MainWindow: added new actions to export poses (KITTI, RGBD-SLAM and TORO formats)
This commit is contained in:
@@ -108,15 +108,15 @@ public:
|
||||
bool labelLocation(int id, const std::string & label);
|
||||
bool setUserData(int id, const cv::Mat & data);
|
||||
void generateDOTGraph(const std::string & path, int id=0, int margin=5);
|
||||
void generateTOROGraph(const std::string & path, bool optimized, bool global);
|
||||
void exportPoses(const std::string & path, bool optimized, bool global);
|
||||
void exportPoses(
|
||||
const std::string & path,
|
||||
bool optimized,
|
||||
bool global,
|
||||
int type // 0=raw/KITTI format, 1=rgbd-slam format, 2=TORO
|
||||
);
|
||||
void resetMemory();
|
||||
void dumpPrediction() const;
|
||||
void dumpData() const;
|
||||
void dumpPoses(
|
||||
const std::string & path,
|
||||
const std::map<int, Transform> & poses,
|
||||
const std::map<int, double> & stamps = std::map<int, double>()) const;
|
||||
void parseParameters(const ParametersMap & parameters);
|
||||
void setWorkingDirectory(std::string path);
|
||||
void rejectLoopClosure(int oldId, int newId);
|
||||
|
||||
@@ -31,6 +31,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
#include <rtabmap/utilite/UEvent.h>
|
||||
#include <rtabmap/utilite/UVariant.h>
|
||||
#include "rtabmap/core/Statistics.h"
|
||||
#include "rtabmap/core/Parameters.h"
|
||||
|
||||
@@ -58,53 +59,72 @@ class RtabmapEventCmd : public UEvent
|
||||
public:
|
||||
enum dummy {d}; // Hack, to fix Eclipse complaining about not defined Cmd enum ?!
|
||||
enum Cmd {
|
||||
kCmdInit,
|
||||
kCmdInit, // params: [string] database path + ParametersMap
|
||||
kCmdResetMemory,
|
||||
kCmdClose,
|
||||
kCmdDumpMemory,
|
||||
kCmdDumpPrediction,
|
||||
kCmdGenerateDOTGraph, // params: path
|
||||
kCmdGenerateDOTLocalGraph, // params: path, id, margin
|
||||
kCmdGenerateTOROGraphLocal, // params: path, optimized
|
||||
kCmdGenerateTOROGraphGlobal, // params: path, optimized
|
||||
kCmdExportPosesGlobal,
|
||||
kCmdExportPosesLocal,
|
||||
kCmdGenerateDOTGraph, // params: [bool] global, [string] path, if global=false: [int] id, [int] margin
|
||||
kCmdExportPoses, // params: [bool] global, [bool] optimized, [string] path, [int] type (0=KITTI/raw format, 1=RGBD-SLAM format, 2=TORO)
|
||||
kCmdCleanDataBuffer,
|
||||
kCmdPublish3DMapLocal, // params: optimized
|
||||
kCmdPublish3DMapGlobal, // params: optimized
|
||||
kCmdPublishTOROGraphGlobal, // params: optimized
|
||||
kCmdPublishTOROGraphLocal, // params: optimized
|
||||
kCmdPublish3DMap, // params: [bool] global, [bool] optimized, [bool] graphOnly
|
||||
kCmdTriggerNewMap,
|
||||
kCmdPause,
|
||||
kCmdGoal, // params: label or location ID
|
||||
kCmdGoal, // params: [string] label or [int] location ID
|
||||
kCmdCancelGoal,
|
||||
kCmdLabel}; // // params: label or location ID
|
||||
kCmdLabel // params: [string] label or [int] location ID
|
||||
};
|
||||
public:
|
||||
RtabmapEventCmd(Cmd cmd, const std::string & strValue = "", int intValue = 0, const ParametersMap & parameters = ParametersMap()) :
|
||||
RtabmapEventCmd(Cmd cmd, const ParametersMap & parameters = ParametersMap()) :
|
||||
UEvent(0),
|
||||
_cmd(cmd),
|
||||
_strValue(strValue),
|
||||
_intValue(intValue),
|
||||
_parameters(parameters){}
|
||||
cmd_(cmd),
|
||||
parameters_(parameters){}
|
||||
RtabmapEventCmd(Cmd cmd, const UVariant & value1, const ParametersMap & parameters = ParametersMap()) :
|
||||
UEvent(0),
|
||||
cmd_(cmd),
|
||||
value1_(value1),
|
||||
parameters_(parameters){}
|
||||
RtabmapEventCmd(Cmd cmd, const UVariant & value1, const UVariant & value2, const ParametersMap & parameters = ParametersMap()) :
|
||||
UEvent(0),
|
||||
cmd_(cmd),
|
||||
value1_(value1),
|
||||
value2_(value2),
|
||||
parameters_(parameters){}
|
||||
RtabmapEventCmd(Cmd cmd, const UVariant & value1, const UVariant & value2, const UVariant & value3, const ParametersMap & parameters = ParametersMap()) :
|
||||
UEvent(0),
|
||||
cmd_(cmd),
|
||||
value1_(value1),
|
||||
value2_(value2),
|
||||
value3_(value3),
|
||||
parameters_(parameters){}
|
||||
RtabmapEventCmd(Cmd cmd, const UVariant & value1, const UVariant & value2, const UVariant & value3, const UVariant & value4, const ParametersMap & parameters = ParametersMap()) :
|
||||
UEvent(0),
|
||||
cmd_(cmd),
|
||||
value1_(value1),
|
||||
value2_(value2),
|
||||
value3_(value3),
|
||||
value4_(value4),
|
||||
parameters_(parameters){}
|
||||
|
||||
virtual ~RtabmapEventCmd() {}
|
||||
Cmd getCmd() const {return _cmd;}
|
||||
Cmd getCmd() const {return cmd_;}
|
||||
|
||||
void setStr(const std::string & str) {_strValue = str;}
|
||||
const std::string & getStr() const {return _strValue;}
|
||||
const UVariant & value1() const {return value1_;}
|
||||
const UVariant & value2() const {return value2_;}
|
||||
const UVariant & value3() const {return value3_;}
|
||||
const UVariant & value4() const {return value4_;}
|
||||
|
||||
void setInt(int v) {_intValue = v;}
|
||||
int getInt() const {return _intValue;}
|
||||
|
||||
const ParametersMap & getParameters() const {return _parameters;}
|
||||
const ParametersMap & getParameters() const {return parameters_;}
|
||||
|
||||
virtual std::string getClassName() const {return std::string("RtabmapEventCmd");}
|
||||
|
||||
private:
|
||||
Cmd _cmd;
|
||||
std::string _strValue;
|
||||
int _intValue;
|
||||
ParametersMap _parameters;
|
||||
Cmd cmd_;
|
||||
UVariant value1_;
|
||||
UVariant value2_;
|
||||
UVariant value3_;
|
||||
UVariant value4_;
|
||||
ParametersMap parameters_;
|
||||
};
|
||||
|
||||
class RtabmapEventInit : public UEvent
|
||||
|
||||
@@ -61,17 +61,10 @@ public:
|
||||
kStateChangingParameters,
|
||||
kStateDumpingMemory,
|
||||
kStateDumpingPrediction,
|
||||
kStateGeneratingDOTGraph,
|
||||
kStateGeneratingDOTLocalGraph,
|
||||
kStateGeneratingTOROGraphLocal,
|
||||
kStateGeneratingTOROGraphGlobal,
|
||||
kStateExportingPosesLocal,
|
||||
kStateExportingPosesGlobal,
|
||||
kStateExportingDOTGraph,
|
||||
kStateExportingPoses,
|
||||
kStateCleanDataBuffer,
|
||||
kStatePublishingMapLocal,
|
||||
kStatePublishingMapGlobal,
|
||||
kStatePublishingTOROGraphLocal,
|
||||
kStatePublishingTOROGraphGlobal,
|
||||
kStatePublishingMap,
|
||||
kStateTriggeringMap,
|
||||
kStateAddingUserData,
|
||||
kStateSettingGoal,
|
||||
@@ -99,8 +92,7 @@ private:
|
||||
void addData(const OdometryEvent & odomEvent);
|
||||
bool getData(OdometryEvent & data);
|
||||
void pushNewState(State newState, const ParametersMap & parameters = ParametersMap());
|
||||
void publishMap(bool optimized, bool full) const;
|
||||
void publishGraph(bool optimized, bool full) const;
|
||||
void publishMap(bool optimized, bool full, bool graphOnly) const;
|
||||
|
||||
private:
|
||||
UMutex _stateMutex;
|
||||
|
||||
Reference in New Issue
Block a user