17 viz::Layer graspsNonReachableLayer = arviz.
layer(
"Grasps Non-Reachable");
19 visualize(candidates, graspsLayer, graspsNonReachableLayer);
20 arviz.
commit({graspsLayer, graspsNonReachableLayer});
25 const GraspCandidate& candidate,
36 <<
"Candidate needs to have tcpPoseInHandRoot to be visualized!";
39 if (candidate.reachabilityInfo && candidate.reachabilityInfo->reachable)
41 layerReachable.
add(hand);
45 layerNonReachable.
add(hand);
54 for (
auto& [
id, candidate] : candidates)
56 visualize(
id, *candidate, layerReachable, layerNonReachable);
68 const grasping::GraspCandidate& candidate,
71 bool isReachable = candidate.reachabilityInfo && candidate.reachabilityInfo->reachable;
72 viz::Color color = isReachable ? viz::Color::green() : viz::Color::orange();
75 Eigen::Matrix4f tcp2handRoot =
fromIce(candidate.tcpPoseInHandRoot).inverse();
76 Eigen::Matrix4f graspPose = PosePtr::dynamicCast(candidate.graspPose)->toEigen();
77 std::string modelFile =
"rt/robotmodel/Armar6-SH/Armar6-" + candidate.side +
"Hand-v3.xml";
80 .
file(
"Armar6RT", modelFile)
81 .
pose(
fromIce(candidate.robotPose) * graspPose * tcp2handRoot)
std::map< std::string, int > alphasByKey
void visualize(const grasping::GraspCandidateDict &candidates, viz::Client &arviz)
virtual Layer layer(std::string const &name) const
CommitResult commit(StagedCommit const &commit)
DerivedT & pose(Eigen::Matrix4f const &pose)
Left or right hand of a robot.
Robot & file(std::string const &project, std::string const &filename)
Robot & overrideColor(Color c)
#define ARMARX_CHECK(expression)
Shortcut for ARMARX_CHECK_EXPRESSION.
void fromIce(const std::map< IceKeyT, IceValueT > &iceMap, boost::container::flat_map< CppKeyT, CppValueT > &cppMap)
void add(ElementT const &element)