Skip to content
Snippets Groups Projects
Commit 67a8f0bc authored by Rainer Kartmann's avatar Rainer Kartmann
Browse files

Fix and refactor visu of linear object pose predictions

parent 5fa4d9c9
No related branches found
No related tags found
No related merge requests found
......@@ -572,7 +572,7 @@ namespace armarx::armem::server::obj::instance
poseHistories[id] = instance::Segment::getObjectPosesInRange(
*entity,
Time::Now() - Duration::SecondsDouble(
visu.linearPredictionTimeWindowSeconds),
visu.linearPredictions.timeWindowSeconds),
Time::Invalid());
}
}
......
......@@ -83,21 +83,46 @@ namespace armarx::armem::server::obj::instance
bool objectFrames = false;
float objectFramesScale = 1.0;
bool gaussiansPosition = true;
float gaussiansPositionScale = 1.0;
bool gaussiansOrientation = false;
float gaussiansOrientationScale = 100;
bool gaussiansOrientationDisplaced = false;
struct Gaussians
{
bool position = true;
float positionScale = 1.0;
bool orientation = false;
float orientationScale = 100;
bool orientationDisplaced = false;
void defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string& prefix);
bool showAny() const;
void draw(viz::Layer& layer,
const objpose::ObjectPose& objectPose,
bool inGlobalFrame) const;
};
Gaussians gaussians;
/// Prefer articulated models if available.
bool useArticulatedModels = true;
/// Linear predictions for objects.
bool showLinPredGhost = false;
float linPredGhostAlpha = 0.7;
bool showLinPredArrow = false;
float linearPredictionTimeOffsetSeconds = 1;
float linearPredictionTimeWindowSeconds = 2;
struct LinearPredictions : public armarx::Logging
{
bool showGhost = false;
float ghostAlpha = 0.7;
bool showFrame = false;
bool showArrow = false;
float timeOffsetSeconds = 1;
float timeWindowSeconds = 2;
void defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string& prefix);
bool showAny() const;
void draw(viz::Layer& layer,
std::function<viz::Object(const std::string& key)> makeObjectFn,
const objpose::ObjectPose& objectPose,
const std::map<DateTime, objpose::ObjectPose>& poseHistory,
bool inGlobalFrame) const;
};
LinearPredictions linearPredictions;
SimpleRunningTask<>::pointer_type updateTask;
......@@ -127,6 +152,7 @@ namespace armarx::armem::server::obj::instance
armarx::RemoteGui::Client::GroupBox group;
void setup(const Visu& data);
void update(Visu::Gaussians& data);
};
Gaussians gaussians;
......@@ -138,15 +164,16 @@ namespace armarx::armem::server::obj::instance
armarx::RemoteGui::Client::CheckBox showGhost;
armarx::RemoteGui::Client::FloatSpinBox ghostAlpha;
armarx::RemoteGui::Client::CheckBox showPositionArrow;
armarx::RemoteGui::Client::CheckBox showFrame;
armarx::RemoteGui::Client::CheckBox showArrow;
armarx::RemoteGui::Client::FloatSpinBox timeOffsetSeconds;
armarx::RemoteGui::Client::FloatSpinBox timeWindowSeconds;
armarx::RemoteGui::Client::GroupBox group;
void setup(const Visu& data);
void update(Visu& data);
void setup(const Visu::LinearPredictions& data);
void update(Visu::LinearPredictions& data);
};
LinearPredictions linearPredictions;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment