3 #include <benchmark/benchmark.h>
23 std::string path =
"package://tesseract_support/urdf/lbr_iiwa_14_r820.urdf";
31 std::string path =
"package://tesseract_support/urdf/lbr_iiwa_14_r820.srdf";
33 auto srdf = std::make_shared<tesseract_srdf::SRDFModel>();
34 srdf->initFile(scene_graph, locator.
locateResource(path)->getFilePath(), locator);
45 benchmark::DoNotOptimize(clone = env->clone());
55 benchmark::DoNotOptimize(clone = state_solver->clone());
65 benchmark::DoNotOptimize(clone = sg->clone());
72 JointGroup::Ptr clone;
75 benchmark::DoNotOptimize(clone = std::make_unique<JointGroup>(*jg));
84 benchmark::DoNotOptimize(clone = std::make_unique<KinematicGroup>(*kg));
88 int main(
int argc,
char** argv)
94 env->init(*scene_graph, srdf);
96 JointGroup::ConstPtr joint_group = env->getJointGroup(
"manipulator");
104 std::string
name =
"BM_ENVIRONMENT_CLONE";
105 benchmark::RegisterBenchmark(
name.c_str(), BM_CLONE_FUNC, env)
107 ->Unit(benchmark::TimeUnit::kMicrosecond);
112 std::string
name =
"BM_STATE_SOLVER_CLONE";
113 benchmark::RegisterBenchmark(
name.c_str(), BM_CLONE_FUNC, state_solver)
115 ->Unit(benchmark::TimeUnit::kMicrosecond);
120 std::string
name =
"BM_SCENE_GRAPH_CLONE";
121 benchmark::RegisterBenchmark(
name.c_str(), BM_CLONE_FUNC, scene_graph)
123 ->Unit(benchmark::TimeUnit::kMicrosecond);
127 std::function<void(benchmark::State&, JointGroup::ConstPtr)> BM_CLONE_FUNC =
BM_JOINT_GROUP_COPY;
128 std::string
name =
"BM_JOINT_GROUP_COPY";
129 benchmark::RegisterBenchmark(
name.c_str(), BM_CLONE_FUNC, joint_group)
131 ->Unit(benchmark::TimeUnit::kMicrosecond);
136 std::string
name =
"BM_KINEMATIC_GROUP_COPY";
137 benchmark::RegisterBenchmark(
name.c_str(), BM_CLONE_FUNC, kinematic_group)
139 ->Unit(benchmark::TimeUnit::kMicrosecond);
142 benchmark::Initialize(&argc, argv);
143 benchmark::RunSpecifiedBenchmarks();