28 #include <gtest/gtest.h>
40 double shoulder_offset,
42 const Eigen::Isometry3d& pose)
44 Eigen::VectorXd seed = Eigen::VectorXd::Zero(6);
47 auto scene_graph =
getSceneGraphUR(params, shoulder_offset, elbow_offset);
49 std::string manip_name =
"manip";
50 std::string base_link_name =
"base_link";
51 std::string tip_link_name =
"tool0";
52 std::vector<std::string> joint_names{
"shoulder_pan_joint",
"shoulder_lift_joint",
"elbow_joint",
53 "wrist_1_joint",
"wrist_2_joint",
"wrist_3_joint" };
55 KDLFwdKinChain fwd_kin(*scene_graph, base_link_name, tip_link_name);
56 auto inv_kin = std::make_unique<URInvKin>(params, base_link_name, tip_link_name, joint_names);
59 EXPECT_EQ(inv_kin->numJoints(), 6);
60 EXPECT_EQ(inv_kin->getBaseLinkName(), base_link_name);
61 EXPECT_EQ(inv_kin->getWorkingFrame(), base_link_name);
62 EXPECT_EQ(inv_kin->getTipLinkNames().size(), 1);
63 EXPECT_EQ(inv_kin->getTipLinkNames()[0], tip_link_name);
64 EXPECT_EQ(inv_kin->getJointNames(), joint_names);
70 EXPECT_TRUE(inv_kin2 !=
nullptr);
72 EXPECT_EQ(inv_kin2->numJoints(), 6);
73 EXPECT_EQ(inv_kin2->getBaseLinkName(), base_link_name);
74 EXPECT_EQ(inv_kin2->getWorkingFrame(), base_link_name);
75 EXPECT_EQ(inv_kin2->getTipLinkNames().size(), 1);
76 EXPECT_EQ(inv_kin2->getTipLinkNames()[0], tip_link_name);
77 EXPECT_EQ(inv_kin2->getJointNames(), joint_names);
82 TEST(TesseractKinematicsUnit, UR10InvKinUnit)
85 Eigen::Isometry3d pose;
87 pose.translation()[0] = 0.75;
88 pose.translation()[1] = 0;
89 pose.translation()[2] = 0.75;
91 double shoulder_offset{ 0.220941 };
92 double elbow_offset{ -0.1719 };
97 TEST(TesseractKinematicsUnit, UR5InvKinUnit)
100 Eigen::Isometry3d pose;
102 pose.translation()[0] = 0.5;
103 pose.translation()[1] = 0;
104 pose.translation()[2] = 0.5;
106 double shoulder_offset{ 0.13585 };
107 double elbow_offset{ -0.1197 };
112 TEST(TesseractKinematicsUnit, UR3InvKinUnit)
115 Eigen::Isometry3d pose;
117 pose.translation()[0] = 0.25;
118 pose.translation()[1] = 0;
119 pose.translation()[2] = 0.25;
121 double shoulder_offset{ 0.1198 };
122 double elbow_offset{ -0.0925 };
127 TEST(TesseractKinematicsUnit, UR10eInvKinUnit)
130 Eigen::Isometry3d pose;
132 pose.translation()[0] = 0.75;
133 pose.translation()[1] = 0;
134 pose.translation()[2] = 0.75;
136 double shoulder_offset{ 0.176 };
137 double elbow_offset{ -0.137 };
142 TEST(TesseractKinematicsUnit, UR5eInvKinUnit)
145 Eigen::Isometry3d pose;
147 pose.translation()[0] = 0.5;
148 pose.translation()[1] = 0;
149 pose.translation()[2] = 0.5;
151 double shoulder_offset{ 0.138 };
152 double elbow_offset{ -0.131 };
157 TEST(TesseractKinematicsUnit, UR3eInvKinUnit)
160 Eigen::Isometry3d pose;
162 pose.translation()[0] = 0.25;
163 pose.translation()[1] = 0;
164 pose.translation()[2] = 0.25;
166 double shoulder_offset{ 0.120 };
167 double elbow_offset{ -0.093 };
172 int main(
int argc,
char** argv)
174 testing::InitGoogleTest(&argc, argv);
176 return RUN_ALL_TESTS();