25 #include <VirtualRobot/CollisionDetection/CollisionModel.h>
26 #include <VirtualRobot/ManipulationObject.h>
27 #include <VirtualRobot/SceneObjectSet.h>
28 #include <VirtualRobot/Visualization/CoinVisualization/CoinVisualizationFactory.h>
29 #include <VirtualRobot/Visualization/TriMeshModel.h>
38 VirtualRobot::ManipulationObjectPtr
43 const VirtualRobot::SceneObjectSetPtr sceneObjects(
new VirtualRobot::SceneObjectSet);
54 VirtualRobot::SceneObjectSetPtr
59 VirtualRobot::SceneObjectSetPtr sceneObjects(
new VirtualRobot::SceneObjectSet);
60 for (
const auto& objectPose : objectPoses)
64 obstacle->setGlobalPose(objectPose.objectPoseGlobal);
65 obstacle->setName(objectPose.objectID.str());
66 sceneObjects->addSceneObject(obstacle);
73 VirtualRobot::SceneObjectSetPtr
78 const auto obstacles = ocHelper.
obstacles();
80 const float boxSize = occupancyGrid.
resolution;
81 const float resolution = occupancyGrid.
resolution;
83 VirtualRobot::SceneObjectSetPtr sceneObjects(
new VirtualRobot::SceneObjectSet);
86 <<
"Only occupancy grid in global frame supported.";
88 VirtualRobot::CoinVisualizationFactory factory;
90 const auto& world_T_map = occupancyGrid.
pose;
92 for (
int x = 0; x < obstacles.rows(); x++)
94 for (
int y = 0; y < obstacles.cols(); y++)
98 const Eigen::Vector3f pos{
99 static_cast<float>(x) * resolution,
static_cast<float>(y) * resolution, 0};
103 map_T_obj.translation() = pos;
105 Eigen::Affine3f world_T_obj = world_T_map * map_T_obj;
108 auto cube = factory.createBox(boxSize, boxSize, boxSize);
110 const VirtualRobot::CollisionModelPtr collisionModel(
111 new VirtualRobot::CollisionModel(cube));
114 "box_" +
std::to_string(sceneObjects->getSize()), cube, collisionModel));
115 sceneObject->setGlobalPose(world_T_obj.matrix());
117 sceneObjects->addSceneObject(sceneObject);
126 objectPoseClient_(client)
130 VirtualRobot::SceneObjectSetPtr
149 for (
const auto& pose : objectPoses)
154 return std::make_shared<ManipulationObjectSet>(
set);
162 auto faces = model->getTriMeshModel()->faces;
163 std::vector<armarx::viz::data::Face> viz_faces;
167 std::back_inserter(viz_faces),
170 return armarx::viz::data::Face(
171 face.id1, face.id2, face.id3, face.idColor1, face.idColor2, face.idColor3);
173 mesh.
vertices(model->getTriMeshModel()->vertices)
175 .
pose(model->getGlobalPose());