1 #ifndef TESSERACT_COLLISION_LARGE_DATASET_BENCHMARKS_HPP
2 #define TESSERACT_COLLISION_LARGE_DATASET_BENCHMARKS_HPP
29 auto mesh_vertices = std::make_shared<tesseract_common::VectorVector3d>();
30 auto mesh_faces = std::make_shared<Eigen::VectorXi>();
42 auto mesh = std::make_shared<tesseract_geometry::Mesh>(mesh_vertices, mesh_faces);
48 sphere = std::make_shared<tesseract_geometry::Mesh>(mesh_vertices, mesh_faces);
53 sphere = std::make_shared<tesseract_geometry::Sphere>(0.25);
58 throw(std::runtime_error(
"Invalid geometry type"));
65 std::vector<std::string> link_names;
67 for (
int x = 0; x < edge_size; ++x)
69 for (
int y = 0; y < edge_size; ++y)
71 for (
int z = 0; z < edge_size; ++z)
75 Eigen::Isometry3d sphere_pose;
76 sphere_pose.setIdentity();
79 obj3_poses.push_back(sphere_pose);
81 link_names.push_back(
"sphere_link_" + std::to_string(x) + std::to_string(y) + std::to_string(z));
83 location[link_names.back()] = sphere_pose;
84 location[link_names.back()].translation() = Eigen::Vector3d(
85 static_cast<double>(x) * delta,
static_cast<double>(y) * delta,
static_cast<double>(z) * delta);
86 checker->addCollisionObject(link_names.back(), 0, obj3_shapes, obj3_poses);
92 checker->setActiveCollisionObjects(link_names);
94 checker->setCollisionObjectsTransform(location);
102 result_vector.clear();
118 auto mesh_vertices = std::make_shared<tesseract_common::VectorVector3d>();
119 auto mesh_faces = std::make_shared<Eigen::VectorXi>();
131 auto mesh = std::make_shared<tesseract_geometry::Mesh>(mesh_vertices, mesh_faces);
137 sphere = std::make_shared<tesseract_geometry::Mesh>(mesh_vertices, mesh_faces);
142 sphere = std::make_shared<tesseract_geometry::Sphere>(0.25);
147 throw(std::runtime_error(
"Invalid geometry type"));
155 std::vector<std::string> link_names;
159 for (
int x = 0; x < edge_size; ++x)
161 for (
int y = 0; y < edge_size; ++y)
163 for (
int z = 0; z < edge_size; ++z)
165 Eigen::Isometry3d sphere_pose;
166 sphere_pose.setIdentity();
167 sphere_pose.translation() = Eigen::Vector3d(
168 static_cast<double>(x) * delta,
static_cast<double>(y) * delta,
static_cast<double>(z) * delta);
171 obj3_poses.push_back(sphere_pose);
175 link_names.emplace_back(
"grid_link");
176 checker->addCollisionObject(link_names.back(), 0, obj3_shapes, obj3_poses);
179 Eigen::Isometry3d sphere_pose;
180 sphere_pose.setIdentity();
181 sphere_pose.translation() = Eigen::Vector3d(
static_cast<double>(edge_size) / 2.0 * delta,
182 static_cast<double>(edge_size) / 2.0 * delta,
183 static_cast<double>(edge_size) / 2.0 * delta);
187 single_poses.push_back(sphere_pose);
188 link_names.emplace_back(
"single_link");
189 checker->addCollisionObject(link_names.back(), 0, single_shapes, single_poses);
192 checker->setActiveCollisionObjects(link_names);
202 result_vector.clear();