24 params(params), arviz(arviz)
26 robotVis =
viz::Robot(
"robot").
file(params.robotModelFileName.serialize().package,
27 params.robotModelFileName.serialize().path);
33 arviz.commitLayerContaining(
"target", robotVis);
40 std::lock_guard g{paramsMutex};
42 if (!params.enableVisualization)
49 ARMARX_WARNING <<
"Unable to visualize path with less than two segments";
84 robotLayer.
add(robotVis);
86 const auto resampledTrajectory =
trajectory.resample(10);
89 const float speedup = 1.0;
93 const auto points = resampledTrajectory.points();
94 for (
size_t i = 0; i < (points.size() - 1); i++)
96 const auto& wp = points.at(i);
97 robotVis.
pose(wp.waypoint.pose.matrix());
99 std::lock_guard<std::mutex> lock(mutex);
100 arviz.
commit({robotLayer});
103 (wp.waypoint.pose.translation() - points.at(i + 1).waypoint.pose.translation())
107 const float velocity = 200;
108 const int dt =
static_cast<int>(speedup *
distance / velocity);
110 std::this_thread::sleep_for(std::chrono::milliseconds(
dt));
117 std::lock_guard<std::mutex> lock(mutex);
118 arviz.
commit({robotLayer});
122 Visualization::asyncHideDelayed()
127 std::this_thread::sleep_for(std::chrono::seconds(params.hideDelaySeconds));
129 std::lock_guard<std::mutex> lock(mutex);
135 arviz.commit(arviz.layer(
"target"));
136 arviz.commit(arviz.layer(
"path"));
146 std::lock_guard g{paramsMutex};
148 if (!params.enableVisualization)
153 robotVis.overrideColor(viz::Color::green(255, params.alphaValue));
155 std::lock_guard<std::mutex> lock(mutex);
156 arviz.commitLayerContaining(
"target", robotVis);
165 std::lock_guard g{paramsMutex};
167 if (!params.enableVisualization)
171 robotVis.overrideColor(viz::Color::red(255, params.alphaValue));
173 std::lock_guard<std::mutex> lock(mutex);
174 arviz.commitLayerContaining(
"target", robotVis);
184 std::lock_guard g{paramsMutex};
186 if (!params.enableVisualization)
192 robotVis.overrideColor(viz::Color::azure(128, params.alphaValue));
193 robotVis.pose(m.matrix());
195 std::lock_guard<std::mutex> lock(mutex);
196 arviz.commitLayerContaining(
"target", robotVis);
static IceUtil::Time GetTime(TimeMode timeMode=TimeMode::VirtualTime)
Get the current time.
void setTarget(const core::Pose &m)
void visualize(const core::GlobalTrajectory &trajectory)
Visualization(armarx::viz::Client &arviz, const Params ¶ms)
CommitResult commit(StagedCommit const &commit)
DerivedT & pose(Eigen::Matrix4f const &pose)
Robot & useCollisionModel()
Robot & file(std::string const &project, std::string const &filename)
Robot & overrideColor(Color c)
Layer layer(std::string const &name) const override
#define ARMARX_CHECK(expression)
Shortcut for ARMARX_CHECK_EXPRESSION.
#define ARMARX_INFO
The normal logging level.
#define ARMARX_DEBUG
The logging level for output that is only interesting while debugging.
#define ARMARX_WARNING
The logging level for unexpected behaviour, but not a serious problem.
This file is part of ArmarX.
double distance(const Point &a, const Point &b)
bool enableTrajectoryVisualization
void add(ElementT const &element)