28 #include <gtest/gtest.h>
67 const YAML::Node& plugin_info = plugin_config[
"kinematic_plugins"];
68 const YAML::Node& search_paths = plugin_info[
"search_paths"];
69 const YAML::Node& search_libraries = plugin_info[
"search_libraries"];
70 const YAML::Node& fwd_kin_plugins = plugin_info[
"fwd_kin_plugins"];
71 const YAML::Node& inv_kin_plugins = plugin_info[
"inv_kin_plugins"];
75 EXPECT_EQ(sp.size(), 2);
77 for (
auto it = search_paths.begin(); it != search_paths.end(); ++it)
79 EXPECT_TRUE(sp.find(it->as<std::string>()) != sp.end());
85 EXPECT_EQ(sl.size(), 4);
87 for (
auto it = search_libraries.begin(); it != search_libraries.end(); ++it)
89 EXPECT_TRUE(sl.find(it->as<std::string>()) != sl.end());
93 EXPECT_EQ(fwd_kin_plugins.size(), 1);
94 for (
auto group_it = fwd_kin_plugins.begin(); group_it != fwd_kin_plugins.end(); ++group_it)
96 auto group_name = group_it->first.as<std::string>();
97 auto plugins = group_it->second[
"plugins"];
98 for (
auto solver_it = plugins.begin(); solver_it != plugins.end(); ++solver_it)
100 const YAML::Node& plugin = solver_it->second;
101 auto solver_name = solver_it->first.as<std::string>();
104 info.
class_name = plugin[
"class"].as<std::string>();
105 info.config = plugin[
"config"];
108 if (group_name ==
"iiwa_manipulator")
109 kin = factory.
createFwdKin(group_name, solver_name, *iiwa_scene_graph, iiwa_scene_state);
110 else if (group_name ==
"abb_manipulator")
111 kin = factory.
createFwdKin(group_name, solver_name, *abb_scene_graph, abb_scene_state);
112 else if (group_name ==
"ur_manipulator")
113 kin = factory.
createFwdKin(group_name, solver_name, *ur_scene_graph, ur_scene_state);
115 EXPECT_TRUE(kin !=
nullptr);
119 EXPECT_EQ(inv_kin_plugins.size(), 5);
120 for (
auto group_it = inv_kin_plugins.begin(); group_it != inv_kin_plugins.end(); ++group_it)
122 auto group_name = group_it->first.as<std::string>();
123 auto plugins = group_it->second[
"plugins"];
124 for (
auto solver_it = plugins.begin(); solver_it != plugins.end(); ++solver_it)
126 const YAML::Node& plugin = solver_it->second;
127 auto solver_name = solver_it->first.as<std::string>();
130 info.
class_name = plugin[
"class"].as<std::string>();
131 info.config = plugin[
"config"];
134 if (group_name ==
"iiwa_manipulator")
135 kin = factory.
createInvKin(group_name, solver_name, *iiwa_scene_graph, iiwa_scene_state);
136 else if (group_name ==
"abb_manipulator")
137 kin = factory.
createInvKin(group_name, solver_name, *abb_scene_graph, abb_scene_state);
138 else if (group_name ==
"ur_manipulator")
139 kin = factory.
createInvKin(group_name, solver_name, *ur_scene_graph, ur_scene_state);
140 else if (group_name ==
"rop_manipulator")
141 kin = factory.
createInvKin(group_name, solver_name, *rop_scene_graph, rop_scene_state);
142 else if (group_name ==
"rep_manipulator")
143 kin = factory.
createInvKin(group_name, solver_name, *rep_scene_graph, rep_scene_state);
145 EXPECT_TRUE(kin !=
nullptr);
152 TEST(TesseractKinematicsFactoryUnit, KDL_OPW_UR_ROP_REP_PluginTest)
154 std::filesystem::path file_path(__FILE__);
155 std::filesystem::path config_path = file_path.parent_path() /
"kinematic_plugins.yaml";
167 TEST(TesseractKinematicsFactoryUnit, PluginFactorAPIUnit)
191 std::map<std::string, tesseract_common::PluginInfoContainer> map = factory.
getFwdKinPlugins();
192 EXPECT_TRUE(map.find(
"manipulator") == map.end());
200 EXPECT_TRUE(map.find(
"manipulator") != map.end());
201 EXPECT_TRUE(map.at(
"manipulator").plugins.find(
"KDLFwdKin") != map.at(
"manipulator").plugins.end());
202 EXPECT_EQ(map.find(
"manipulator")->second.plugins.size(), 1);
211 EXPECT_TRUE(map.find(
"manipulator") != map.end());
212 EXPECT_TRUE(map.at(
"manipulator").plugins.find(
"default") != map.at(
"manipulator").plugins.end());
213 EXPECT_EQ(map.find(
"manipulator")->second.plugins.size(), 2);
221 "group_does_not_exist",
225 EXPECT_TRUE(factory.
createFwdKin(
"group_does_not_exist",
"default", *scene_graph, scene_state) ==
nullptr);
226 EXPECT_TRUE(factory.
createFwdKin(
"manipulator",
"solver_does_not_exist", *scene_graph, scene_state) ==
nullptr);
231 EXPECT_TRUE(map.find(
"manipulator") != map.end());
233 EXPECT_EQ(map.find(
"manipulator")->second.plugins.size(), 1);
239 std::map<std::string, tesseract_common::PluginInfoContainer> map = factory.
getInvKinPlugins();
240 EXPECT_TRUE(map.find(
"manipulator") == map.end());
248 EXPECT_TRUE(map.find(
"manipulator") != map.end());
249 EXPECT_TRUE(map.at(
"manipulator").plugins.find(
"KDLInvKin") != map.at(
"manipulator").plugins.end());
250 EXPECT_EQ(map.find(
"manipulator")->second.plugins.size(), 1);
259 EXPECT_TRUE(map.find(
"manipulator") != map.end());
260 EXPECT_TRUE(map.at(
"manipulator").plugins.find(
"default") != map.at(
"manipulator").plugins.end());
261 EXPECT_EQ(map.find(
"manipulator")->second.plugins.size(), 2);
270 EXPECT_TRUE(factory.
createInvKin(
"group_does_not_exist",
"default", *scene_graph, scene_state) ==
nullptr);
271 EXPECT_TRUE(factory.
createInvKin(
"manipulator",
"solver_does_not_exist", *scene_graph, scene_state) ==
nullptr);
276 EXPECT_TRUE(map.find(
"manipulator") != map.end());
278 EXPECT_EQ(map.find(
"manipulator")->second.plugins.size(), 1);
284 TEST(TesseractKinematicsFactoryUnit, LoadKinematicsPluginInfoUnit)
293 std::string yaml_string =
294 R
"(kinematic_plugins:
300 class: OPWInvKinFactory
312 offsets: [0, 0, -1.57079632679, 0, 0, 0]
313 sign_corrections: [1, 1, 1, -1, 1, 1])";
317 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"];
318 plugin.remove(
"OPWInvKin");
321 auto inv_kin = factory.
createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
322 EXPECT_TRUE(inv_kin ==
nullptr);
326 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
327 plugin.remove(
"class");
333 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
334 plugin.remove(
"default");
337 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
338 EXPECT_TRUE(inv_kin !=
nullptr);
342 TEST(TesseractKinematicsFactoryUnit, LoadIKFastKinematicsUnit)
351 std::string yaml_string =
352 R
"(kinematic_plugins:
354 - tesseract_kinematics_ikfast_abb_irb2400
357 default: AbbIRB2400IKFast
360 class: AbbIRB2400Kinematics
368 factory.addSearchPath(std::string(PLUGIN_DIR));
369 auto inv_kin = factory.createInvKin(
"manipulator",
"AbbIRB2400IKFast", *scene_graph, scene_state);
370 EXPECT_TRUE(inv_kin !=
nullptr);
371 EXPECT_EQ(inv_kin->getSolverName(),
"AbbIRB2400IKFast");
375 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"AbbIRB2400IKFast"];
376 plugin.remove(
"config");
379 auto inv_kin = factory.createInvKin(
"manipulator",
"AbbIRB2400IKFast", *scene_graph, scene_state);
380 EXPECT_TRUE(inv_kin ==
nullptr);
384 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"AbbIRB2400IKFast"];
385 plugin[
"config"].remove(
"base_link");
388 auto inv_kin = factory.
createInvKin(
"manipulator",
"AbbIRB2400IKFast", *scene_graph, scene_state);
389 EXPECT_TRUE(inv_kin ==
nullptr);
393 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"AbbIRB2400IKFast"];
394 plugin[
"config"].remove(
"tip_link");
397 auto inv_kin = factory.createInvKin(
"manipulator",
"AbbIRB2400IKFast", *scene_graph, scene_state);
398 EXPECT_TRUE(inv_kin ==
nullptr);
402 R
"(kinematic_plugins:
404 - tesseract_kinematics_ikfast_abb_irb2400
407 default: AbbIRB2400IKFast
410 class: AbbIRB2400Kinematics
420 factory.addSearchPath(std::string(PLUGIN_DIR));
421 auto inv_kin = factory.createInvKin(
"manipulator",
"AbbIRB2400IKFast", *scene_graph, scene_state);
422 EXPECT_TRUE(inv_kin ==
nullptr);
427 TEST(TesseractKinematicsFactoryUnit, LoadOPWKinematicsUnit)
436 std::string yaml_string =
437 R
"(kinematic_plugins:
443 class: OPWInvKinFactory
455 offsets: [0, 0, -1.57079632679, 0, 0, 0]
456 sign_corrections: [1, 1, 1, -1, 1, 1])";
459 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
460 EXPECT_TRUE(inv_kin !=
nullptr);
461 EXPECT_EQ(inv_kin->getSolverName(),
"OPWInvKin");
465 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
466 plugin.remove(
"config");
469 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
470 EXPECT_TRUE(inv_kin ==
nullptr);
474 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
475 plugin[
"config"].remove(
"base_link");
478 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
479 EXPECT_TRUE(inv_kin ==
nullptr);
483 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
484 plugin[
"config"].remove(
"tip_link");
487 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
488 EXPECT_TRUE(inv_kin ==
nullptr);
492 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
493 plugin[
"config"].remove(
"params");
496 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
497 EXPECT_TRUE(inv_kin ==
nullptr);
501 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
502 plugin[
"config"][
"params"].remove(
"a1");
505 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
506 EXPECT_TRUE(inv_kin ==
nullptr);
510 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
511 plugin[
"config"][
"params"].remove(
"a2");
514 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
515 EXPECT_TRUE(inv_kin ==
nullptr);
519 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
520 plugin[
"config"][
"params"].remove(
"b");
523 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
524 EXPECT_TRUE(inv_kin ==
nullptr);
528 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
529 plugin[
"config"][
"params"].remove(
"c1");
532 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
533 EXPECT_TRUE(inv_kin ==
nullptr);
537 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
538 plugin[
"config"][
"params"].remove(
"c2");
541 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
542 EXPECT_TRUE(inv_kin ==
nullptr);
546 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
547 plugin[
"config"][
"params"].remove(
"c3");
550 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
551 EXPECT_TRUE(inv_kin ==
nullptr);
555 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
556 plugin[
"config"][
"params"].remove(
"c4");
559 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
560 EXPECT_TRUE(inv_kin ==
nullptr);
564 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
565 plugin[
"config"][
"params"].remove(
"offset");
568 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
569 EXPECT_TRUE(inv_kin !=
nullptr);
573 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
574 plugin[
"config"][
"params"].remove(
"sign_corrections");
577 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
578 EXPECT_TRUE(inv_kin !=
nullptr);
583 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
584 plugin[
"config"][
"params"][
"a1"] =
"abcd";
587 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
588 EXPECT_TRUE(inv_kin ==
nullptr);
592 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
593 plugin[
"config"][
"params"][
"a2"] =
"abcd";
596 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
597 EXPECT_TRUE(inv_kin ==
nullptr);
601 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
602 plugin[
"config"][
"params"][
"b"] =
"abcd";
605 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
606 EXPECT_TRUE(inv_kin ==
nullptr);
610 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
611 plugin[
"config"][
"params"][
"c1"] =
"abcd";
614 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
615 EXPECT_TRUE(inv_kin ==
nullptr);
619 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
620 plugin[
"config"][
"params"][
"c2"] =
"abcd";
623 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
624 EXPECT_TRUE(inv_kin ==
nullptr);
628 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
629 plugin[
"config"][
"params"][
"c3"] =
"abcd";
632 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
633 EXPECT_TRUE(inv_kin ==
nullptr);
637 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
638 plugin[
"config"][
"params"][
"c4"] =
"abcd";
641 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
642 EXPECT_TRUE(inv_kin ==
nullptr);
646 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
647 plugin[
"config"][
"params"][
"offsets"][0] =
"abcd";
650 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
651 EXPECT_TRUE(inv_kin ==
nullptr);
655 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
656 plugin[
"config"][
"params"][
"offsets"].push_back(0);
659 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
660 EXPECT_TRUE(inv_kin ==
nullptr);
664 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
665 plugin[
"config"][
"params"][
"sign_corrections"][0] =
"a";
668 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
669 EXPECT_TRUE(inv_kin ==
nullptr);
673 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
674 plugin[
"config"][
"params"][
"sign_corrections"][0] = 5;
677 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
678 EXPECT_TRUE(inv_kin ==
nullptr);
682 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"OPWInvKin"];
683 plugin[
"config"][
"params"][
"sign_corrections"].push_back(0);
686 auto inv_kin = factory.createInvKin(
"manipulator",
"OPWInvKin", *scene_graph, scene_state);
687 EXPECT_TRUE(inv_kin ==
nullptr);
691 TEST(TesseractKinematicsFactoryUnit, LoadURKinematicsUnit)
700 std::string yaml_model_string =
701 R
"(kinematic_plugins:
707 class: URInvKinFactory
713 std::string yaml_params_string =
714 R"(kinematic_plugins:
720 class: URInvKinFactory
734 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
735 EXPECT_TRUE(inv_kin !=
nullptr);
736 EXPECT_EQ(inv_kin->getSolverName(),
"URInvKin");
740 config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"][
"config"][
"model"] =
"UR10e";
743 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
744 EXPECT_TRUE(inv_kin !=
nullptr);
745 EXPECT_EQ(inv_kin->getSolverName(),
"URInvKin");
749 config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"][
"config"][
"model"] =
"UR5";
752 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
753 EXPECT_TRUE(inv_kin !=
nullptr);
754 EXPECT_EQ(inv_kin->getSolverName(),
"URInvKin");
758 config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"][
"config"][
"model"] =
"UR5e";
761 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
762 EXPECT_TRUE(inv_kin !=
nullptr);
763 EXPECT_EQ(inv_kin->getSolverName(),
"URInvKin");
767 config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"][
"config"][
"model"] =
"UR3";
770 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
771 EXPECT_TRUE(inv_kin !=
nullptr);
772 EXPECT_EQ(inv_kin->getSolverName(),
"URInvKin");
776 config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"][
"config"][
"model"] =
"UR3e";
779 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
780 EXPECT_TRUE(inv_kin !=
nullptr);
781 EXPECT_EQ(inv_kin->getSolverName(),
"URInvKin");
785 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
786 EXPECT_TRUE(inv_kin !=
nullptr);
787 EXPECT_EQ(inv_kin->getSolverName(),
"URInvKin");
791 config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"][
"config"][
"model"] =
"DoesNotE"
795 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
796 EXPECT_TRUE(inv_kin ==
nullptr);
800 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"];
801 plugin.remove(
"config");
804 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
805 EXPECT_TRUE(inv_kin ==
nullptr);
809 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"];
810 plugin[
"config"].remove(
"base_link");
813 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
814 EXPECT_TRUE(inv_kin ==
nullptr);
818 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"];
819 plugin[
"config"].remove(
"tip_link");
822 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
823 EXPECT_TRUE(inv_kin ==
nullptr);
827 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"];
828 plugin[
"config"].remove(
"model");
831 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
832 EXPECT_TRUE(inv_kin ==
nullptr);
836 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"];
837 plugin[
"config"].remove(
"params");
840 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
841 EXPECT_TRUE(inv_kin ==
nullptr);
845 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"];
846 plugin[
"config"][
"params"].remove(
"d1");
849 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
850 EXPECT_TRUE(inv_kin ==
nullptr);
854 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"];
855 plugin[
"config"][
"params"].remove(
"a2");
858 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
859 EXPECT_TRUE(inv_kin ==
nullptr);
863 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"];
864 plugin[
"config"][
"params"].remove(
"a3");
867 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
868 EXPECT_TRUE(inv_kin ==
nullptr);
872 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"];
873 plugin[
"config"][
"params"].remove(
"d4");
876 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
877 EXPECT_TRUE(inv_kin ==
nullptr);
881 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"];
882 plugin[
"config"][
"params"].remove(
"d5");
885 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
886 EXPECT_TRUE(inv_kin ==
nullptr);
890 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"];
891 plugin[
"config"][
"params"].remove(
"d6");
894 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
895 EXPECT_TRUE(inv_kin ==
nullptr);
899 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"];
900 plugin[
"config"][
"params"][
"d1"] =
"abcd";
903 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
904 EXPECT_TRUE(inv_kin ==
nullptr);
908 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"];
909 plugin[
"config"][
"params"][
"a2"] =
"abcd";
912 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
913 EXPECT_TRUE(inv_kin ==
nullptr);
917 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"];
918 plugin[
"config"][
"params"][
"a3"] =
"abcd";
921 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
922 EXPECT_TRUE(inv_kin ==
nullptr);
926 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"];
927 plugin[
"config"][
"params"][
"d4"] =
"abcd";
930 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
931 EXPECT_TRUE(inv_kin ==
nullptr);
935 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"];
936 plugin[
"config"][
"params"][
"d5"] =
"abcd";
939 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
940 EXPECT_TRUE(inv_kin ==
nullptr);
944 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"URInvKin"];
945 plugin[
"config"][
"params"][
"d6"] =
"abcd";
948 auto inv_kin = factory.createInvKin(
"manipulator",
"URInvKin", *scene_graph, scene_state);
949 EXPECT_TRUE(inv_kin ==
nullptr);
953 TEST(TesseractKinematicsFactoryUnit, LoadREPKinematicsUnit)
962 std::string yaml_string =
963 R
"(kinematic_plugins:
969 class: REPInvKinFactory
971 manipulator_reach: 2.0
972 positioner_sample_resolution:
973 - name: positioner_joint_1
977 - name: positioner_joint_2
980 class: KDLFwdKinChainFactory
982 base_link: positioner_base_link
983 tip_link: positioner_tool0
985 class: OPWInvKinFactory
997 offsets: [0, 0, -1.57079632679, 0, 0, 0]
998 sign_corrections: [1, 1, 1, 1, 1, 1])";
1001 auto inv_kin = factory.createInvKin(
"manipulator",
"REPInvKin", *scene_graph, scene_state);
1002 EXPECT_TRUE(inv_kin !=
nullptr);
1003 EXPECT_EQ(inv_kin->getSolverName(),
"REPInvKin");
1007 config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"REPInvKin"][
"config"]
1008 [
"positioner_sample_resolution"][0][
"name"] =
"joint_does_not_exist";
1011 auto inv_kin = factory.createInvKin(
"manipulator",
"REPInvKin", *scene_graph, scene_state);
1012 EXPECT_TRUE(inv_kin ==
nullptr);
1016 config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"REPInvKin"][
"config"]
1017 [
"positioner_sample_resolution"][0][
"min"] = -10000;
1020 auto inv_kin = factory.createInvKin(
"manipulator",
"REPInvKin", *scene_graph, scene_state);
1021 EXPECT_TRUE(inv_kin ==
nullptr);
1025 config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"REPInvKin"][
"config"]
1026 [
"positioner_sample_resolution"][0][
"max"] = 10000;
1029 auto inv_kin = factory.createInvKin(
"manipulator",
"REPInvKin", *scene_graph, scene_state);
1030 EXPECT_TRUE(inv_kin ==
nullptr);
1034 config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"REPInvKin"][
"config"]
1035 [
"positioner_sample_resolution"][0][
"min"] = 0.6;
1036 config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"REPInvKin"][
"config"]
1037 [
"positioner_sample_resolution"][0][
"max"] = 0.3;
1040 auto inv_kin = factory.createInvKin(
"manipulator",
"REPInvKin", *scene_graph, scene_state);
1041 EXPECT_TRUE(inv_kin ==
nullptr);
1045 config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"REPInvKin"][
"config"][
"positioner"][
"clas"
1047 "DoesNotExistFactory";
1050 auto inv_kin = factory.createInvKin(
"manipulator",
"REPInvKin", *scene_graph, scene_state);
1051 EXPECT_TRUE(inv_kin ==
nullptr);
1055 config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"REPInvKin"][
"config"][
"manipulator"]
1056 [
"class"] =
"DoesNotExistFactory";
1059 auto inv_kin = factory.createInvKin(
"manipulator",
"REPInvKin", *scene_graph, scene_state);
1060 EXPECT_TRUE(inv_kin ==
nullptr);
1064 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"REPInvKin"];
1065 plugin.remove(
"config");
1068 auto inv_kin = factory.createInvKin(
"manipulator",
"REPInvKin", *scene_graph, scene_state);
1069 EXPECT_TRUE(inv_kin ==
nullptr);
1073 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"REPInvKin"];
1074 plugin[
"config"].remove(
"manipulator_reach");
1077 auto inv_kin = factory.createInvKin(
"manipulator",
"REPInvKin", *scene_graph, scene_state);
1078 EXPECT_TRUE(inv_kin ==
nullptr);
1082 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"REPInvKin"];
1083 plugin[
"config"].remove(
"positioner_sample_resolution");
1086 auto inv_kin = factory.createInvKin(
"manipulator",
"REPInvKin", *scene_graph, scene_state);
1087 EXPECT_TRUE(inv_kin ==
nullptr);
1091 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"REPInvKin"];
1092 plugin[
"config"][
"positioner_sample_resolution"][0].remove(
"name");
1095 auto inv_kin = factory.createInvKin(
"manipulator",
"REPInvKin", *scene_graph, scene_state);
1096 EXPECT_TRUE(inv_kin ==
nullptr);
1100 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"REPInvKin"];
1101 plugin[
"config"][
"positioner_sample_resolution"][0].remove(
"value");
1104 auto inv_kin = factory.createInvKin(
"manipulator",
"REPInvKin", *scene_graph, scene_state);
1105 EXPECT_TRUE(inv_kin ==
nullptr);
1109 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"REPInvKin"];
1110 plugin[
"config"].remove(
"positioner");
1113 auto inv_kin = factory.createInvKin(
"manipulator",
"REPInvKin", *scene_graph, scene_state);
1114 EXPECT_TRUE(inv_kin ==
nullptr);
1118 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"REPInvKin"];
1119 plugin[
"config"][
"positioner"].remove(
"class");
1122 auto inv_kin = factory.createInvKin(
"manipulator",
"REPInvKin", *scene_graph, scene_state);
1123 EXPECT_TRUE(inv_kin ==
nullptr);
1127 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"REPInvKin"];
1128 plugin[
"config"].remove(
"manipulator");
1131 auto inv_kin = factory.createInvKin(
"manipulator",
"REPInvKin", *scene_graph, scene_state);
1132 EXPECT_TRUE(inv_kin ==
nullptr);
1136 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"REPInvKin"];
1137 plugin[
"config"][
"manipulator"].remove(
"class");
1140 auto inv_kin = factory.createInvKin(
"manipulator",
"REPInvKin", *scene_graph, scene_state);
1141 EXPECT_TRUE(inv_kin ==
nullptr);
1145 TEST(TesseractKinematicsFactoryUnit, LoadROPKinematicsUnit)
1154 std::string yaml_string =
1155 R
"(kinematic_plugins:
1161 class: ROPInvKinFactory
1163 manipulator_reach: 2.0
1164 positioner_sample_resolution:
1165 - name: positioner_joint_1
1170 class: KDLFwdKinChainFactory
1172 base_link: positioner_base_link
1173 tip_link: positioner_tool0
1175 class: OPWInvKinFactory
1177 base_link: base_link
1187 offsets: [0, 0, -1.57079632679, 0, 0, 0]
1188 sign_corrections: [1, 1, 1, 1, 1, 1])";
1191 auto inv_kin = factory.createInvKin(
"manipulator",
"ROPInvKin", *scene_graph, scene_state);
1192 EXPECT_TRUE(inv_kin !=
nullptr);
1193 EXPECT_EQ(inv_kin->getSolverName(),
"ROPInvKin");
1197 config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"ROPInvKin"][
"config"]
1198 [
"positioner_sample_resolution"][0][
"name"] =
"joint_does_not_exist";
1201 auto inv_kin = factory.createInvKin(
"manipulator",
"ROPInvKin", *scene_graph, scene_state);
1202 EXPECT_TRUE(inv_kin ==
nullptr);
1206 config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"ROPInvKin"][
"config"]
1207 [
"positioner_sample_resolution"][0][
"min"] = -10000;
1210 auto inv_kin = factory.createInvKin(
"manipulator",
"ROPInvKin", *scene_graph, scene_state);
1211 EXPECT_TRUE(inv_kin ==
nullptr);
1215 config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"ROPInvKin"][
"config"]
1216 [
"positioner_sample_resolution"][0][
"max"] = 10000;
1219 auto inv_kin = factory.createInvKin(
"manipulator",
"ROPInvKin", *scene_graph, scene_state);
1220 EXPECT_TRUE(inv_kin ==
nullptr);
1224 config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"ROPInvKin"][
"config"]
1225 [
"positioner_sample_resolution"][0][
"min"] = 0.6;
1226 config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"ROPInvKin"][
"config"]
1227 [
"positioner_sample_resolution"][0][
"max"] = 0.3;
1230 auto inv_kin = factory.createInvKin(
"manipulator",
"ROPInvKin", *scene_graph, scene_state);
1231 EXPECT_TRUE(inv_kin ==
nullptr);
1235 config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"ROPInvKin"][
"config"][
"positioner"][
"clas"
1237 "DoesNotExistFactory";
1240 auto inv_kin = factory.createInvKin(
"manipulator",
"ROPInvKin", *scene_graph, scene_state);
1241 EXPECT_TRUE(inv_kin ==
nullptr);
1245 config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"ROPInvKin"][
"config"][
"manipulator"]
1246 [
"class"] =
"DoesNotExistFactory";
1249 auto inv_kin = factory.createInvKin(
"manipulator",
"ROPInvKin", *scene_graph, scene_state);
1250 EXPECT_TRUE(inv_kin ==
nullptr);
1254 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"ROPInvKin"];
1255 plugin.remove(
"config");
1258 auto inv_kin = factory.createInvKin(
"manipulator",
"ROPInvKin", *scene_graph, scene_state);
1259 EXPECT_TRUE(inv_kin ==
nullptr);
1263 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"ROPInvKin"];
1264 plugin[
"config"].remove(
"manipulator_reach");
1267 auto inv_kin = factory.createInvKin(
"manipulator",
"ROPInvKin", *scene_graph, scene_state);
1268 EXPECT_TRUE(inv_kin ==
nullptr);
1272 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"ROPInvKin"];
1273 plugin[
"config"].remove(
"positioner_sample_resolution");
1276 auto inv_kin = factory.createInvKin(
"manipulator",
"ROPInvKin", *scene_graph, scene_state);
1277 EXPECT_TRUE(inv_kin ==
nullptr);
1281 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"ROPInvKin"];
1282 plugin[
"config"][
"positioner_sample_resolution"][0].remove(
"name");
1285 auto inv_kin = factory.createInvKin(
"manipulator",
"REPInvKin", *scene_graph, scene_state);
1286 EXPECT_TRUE(inv_kin ==
nullptr);
1290 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"ROPInvKin"];
1291 plugin[
"config"][
"positioner_sample_resolution"][0].remove(
"value");
1294 auto inv_kin = factory.createInvKin(
"manipulator",
"REPInvKin", *scene_graph, scene_state);
1295 EXPECT_TRUE(inv_kin ==
nullptr);
1299 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"ROPInvKin"];
1300 plugin[
"config"].remove(
"positioner");
1303 auto inv_kin = factory.createInvKin(
"manipulator",
"ROPInvKin", *scene_graph, scene_state);
1304 EXPECT_TRUE(inv_kin ==
nullptr);
1308 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"ROPInvKin"];
1309 plugin[
"config"][
"positioner"].remove(
"class");
1312 auto inv_kin = factory.createInvKin(
"manipulator",
"ROPInvKin", *scene_graph, scene_state);
1313 EXPECT_TRUE(inv_kin ==
nullptr);
1317 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"ROPInvKin"];
1318 plugin[
"config"].remove(
"manipulator");
1321 auto inv_kin = factory.createInvKin(
"manipulator",
"ROPInvKin", *scene_graph, scene_state);
1322 EXPECT_TRUE(inv_kin ==
nullptr);
1326 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"ROPInvKin"];
1327 plugin[
"config"][
"manipulator"].remove(
"class");
1330 auto inv_kin = factory.createInvKin(
"manipulator",
"ROPInvKin", *scene_graph, scene_state);
1331 EXPECT_TRUE(inv_kin ==
nullptr);
1335 TEST(TesseractKinematicsFactoryUnit, LoadKDLKinematicsUnit)
1344 std::string yaml_string =
1345 R
"(kinematic_plugins:
1348 default: KDLFwdKinChain
1351 class: KDLFwdKinChainFactory
1353 base_link: base_link
1357 default: KDLInvKinChainLMA
1360 class: KDLInvKinChainLMAFactory
1362 base_link: base_link
1365 class: KDLInvKinChainNRFactory
1367 base_link: base_link
1369 KDLInvKinChainNR_JL:
1370 class: KDLInvKinChainNR_JLFactory
1372 base_link: base_link
1374 KDLInvKinChainLMA_AllParams:
1375 class: KDLInvKinChainLMAFactory
1377 base_link: base_link
1379 task_weights: [1, 1, 1, 0.1, 0.1, 0.1]
1383 KDLInvKinChainNR_AllParams:
1384 class: KDLInvKinChainNRFactory
1386 base_link: base_link
1388 velocity_eps: 0.00001
1389 velocity_iterations: 150
1391 position_iterations: 100
1392 KDLInvKinChainNR_JL_AllParams:
1393 class: KDLInvKinChainNR_JLFactory
1395 base_link: base_link
1397 velocity_eps: 0.00001
1398 velocity_iterations: 150
1400 position_iterations: 100)";
1404 auto fwd_kin = factory.createFwdKin(
"manipulator",
"KDLFwdKinChain", *scene_graph, scene_state);
1405 EXPECT_TRUE(fwd_kin !=
nullptr);
1406 EXPECT_EQ(fwd_kin->getSolverName(),
"KDLFwdKinChain");
1411 auto inv_kin = factory.createInvKin(
"manipulator",
"KDLInvKinChainLMA", *scene_graph, scene_state);
1412 EXPECT_TRUE(inv_kin !=
nullptr);
1413 EXPECT_EQ(inv_kin->getSolverName(),
"KDLInvKinChainLMA");
1418 auto inv_kin = factory.createInvKin(
"manipulator",
"KDLInvKinChainNR", *scene_graph, scene_state);
1419 EXPECT_TRUE(inv_kin !=
nullptr);
1420 EXPECT_EQ(inv_kin->getSolverName(),
"KDLInvKinChainNR");
1425 auto inv_kin = factory.createInvKin(
"manipulator",
"KDLInvKinChainNR_JL", *scene_graph, scene_state);
1426 EXPECT_TRUE(inv_kin !=
nullptr);
1427 EXPECT_EQ(inv_kin->getSolverName(),
"KDLInvKinChainNR_JL");
1432 auto plugin = config[
"kinematic_plugins"][
"fwd_kin_plugins"][
"manipulator"][
"plugins"][
"KDLFwdKinChain"];
1433 plugin.remove(
"config");
1436 auto kin = factory.createFwdKin(
"manipulator",
"KDLFwdKinChain", *scene_graph, scene_state);
1437 EXPECT_TRUE(kin ==
nullptr);
1441 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"KDLInvKinChainLMA"];
1442 plugin.remove(
"config");
1445 auto kin = factory.createInvKin(
"manipulator",
"KDLInvKinChainLMA", *scene_graph, scene_state);
1446 EXPECT_TRUE(kin ==
nullptr);
1450 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"KDLInvKinChainNR"];
1451 plugin.remove(
"config");
1454 auto kin = factory.createInvKin(
"manipulator",
"KDLInvKinChainNR", *scene_graph, scene_state);
1455 EXPECT_TRUE(kin ==
nullptr);
1459 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"KDLInvKinChainNR_JL"];
1460 plugin.remove(
"config");
1463 auto kin = factory.createInvKin(
"manipulator",
"KDLInvKinChainNR_JL", *scene_graph, scene_state);
1464 EXPECT_TRUE(kin ==
nullptr);
1468 auto plugin = config[
"kinematic_plugins"][
"fwd_kin_plugins"][
"manipulator"][
"plugins"][
"KDLFwdKinChain"];
1469 plugin[
"config"].remove(
"base_link");
1472 auto kin = factory.createFwdKin(
"manipulator",
"KDLFwdKinChain", *scene_graph, scene_state);
1473 EXPECT_TRUE(kin ==
nullptr);
1477 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"KDLInvKinChainLMA"];
1478 plugin[
"config"].remove(
"base_link");
1481 auto kin = factory.createInvKin(
"manipulator",
"KDLInvKinChainLMA", *scene_graph, scene_state);
1482 EXPECT_TRUE(kin ==
nullptr);
1486 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"KDLInvKinChainNR"];
1487 plugin[
"config"].remove(
"base_link");
1490 auto kin = factory.createInvKin(
"manipulator",
"KDLInvKinChainNR", *scene_graph, scene_state);
1491 EXPECT_TRUE(kin ==
nullptr);
1495 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"KDLInvKinChainNR_JL"];
1496 plugin[
"config"].remove(
"base_link");
1499 auto kin = factory.createInvKin(
"manipulator",
"KDLInvKinChainNR_JL", *scene_graph, scene_state);
1500 EXPECT_TRUE(kin ==
nullptr);
1504 auto plugin = config[
"kinematic_plugins"][
"fwd_kin_plugins"][
"manipulator"][
"plugins"][
"KDLFwdKinChain"];
1505 plugin[
"config"].remove(
"tip_link");
1508 auto kin = factory.createFwdKin(
"manipulator",
"KDLFwdKinChain", *scene_graph, scene_state);
1509 EXPECT_TRUE(kin ==
nullptr);
1513 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"KDLInvKinChainLMA"];
1514 plugin[
"config"].remove(
"tip_link");
1517 auto kin = factory.createInvKin(
"manipulator",
"KDLInvKinChainLMA", *scene_graph, scene_state);
1518 EXPECT_TRUE(kin ==
nullptr);
1522 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"KDLInvKinChainNR"];
1523 plugin[
"config"].remove(
"tip_link");
1526 auto kin = factory.createInvKin(
"manipulator",
"KDLInvKinChainNR", *scene_graph, scene_state);
1527 EXPECT_TRUE(kin ==
nullptr);
1531 auto plugin = config[
"kinematic_plugins"][
"inv_kin_plugins"][
"manipulator"][
"plugins"][
"KDLInvKinChainNR_JL"];
1532 plugin[
"config"].remove(
"tip_link");
1535 auto kin = factory.createInvKin(
"manipulator",
"KDLInvKinChainNR_JL", *scene_graph, scene_state);
1536 EXPECT_TRUE(kin ==
nullptr);
1540 int main(
int argc,
char** argv)
1542 testing::InitGoogleTest(&argc, argv);
1544 return RUN_ALL_TESTS();