kinematics.h
Go to the documentation of this file.
1 /*******************************************************************************
2 * Copyright 2018 ROBOTIS CO., LTD.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *******************************************************************************/
16 
17 /* Authors: Darby Lim, Hye-Jong KIM, Ryan Shim, Yong-Ho Na */
18 
19 #ifndef KINEMATICS_H_
20 #define KINEMATICS_H_
21 
22 #if defined(__OPENCR__)
23  #include <RobotisManipulator.h>
24 #else
26 #endif
27 
28 //#define KINEMATICS_DEBUG
29 
30 using namespace Eigen;
31 using namespace robotis_manipulator;
32 
33 namespace kinematics
34 {
35 
36 /*****************************************************************************
37 ** Kinematics Solver Using Chain Rule and Jacobian
38 *****************************************************************************/
40 {
41 private:
42  void forwardSolverUsingChainRule(Manipulator *manipulator, Name component_name);
43  bool inverseSolverUsingJacobian(Manipulator *manipulator, Name tool_name, Pose target_pose, std::vector<JointValue>* goal_joint_value);
44 
45 public:
48 
49  virtual void setOption(const void *arg);
50  virtual MatrixXd jacobian(Manipulator *manipulator, Name tool_name);
51  virtual void solveForwardKinematics(Manipulator *manipulator);
52  virtual bool solveInverseKinematics(Manipulator *manipulator, Name tool_name, Pose target_pose, std::vector<JointValue>* goal_joint_value);
53 };
54 
55 
56 /*****************************************************************************
57 ** Kinematics Solver Using Chain Rule and Singularity Robust Jacobian
58 *****************************************************************************/
60 {
61 private:
62  void forwardSolverUsingChainRule(Manipulator *manipulator, Name component_name);
63  bool inverseSolverUsingSRJacobian(Manipulator *manipulator, Name tool_name, Pose target_pose, std::vector<JointValue>* goal_joint_value);
64 
65 public:
68 
69  virtual void setOption(const void *arg);
70  virtual MatrixXd jacobian(Manipulator *manipulator, Name tool_name);
71  virtual void solveForwardKinematics(Manipulator *manipulator);
72  virtual bool solveInverseKinematics(Manipulator *manipulator, Name tool_name, Pose target_pose, std::vector<JointValue>* goal_joint_value);
73 };
74 
75 
76 /*****************************************************************************
77 ** Kinematics Solver Using Chain Rule and Singularity Robust Position Only Jacobian
78 *****************************************************************************/
80 {
81 private:
82  void forwardSolverUsingChainRule(Manipulator *manipulator, Name component_name);
83  bool inverseSolverUsingPositionOnlySRJacobian(Manipulator *manipulator, Name tool_name, Pose target_pose, std::vector<JointValue>* goal_joint_value);
84 
85 public:
88 
89  virtual void setOption(const void *arg);
90  virtual MatrixXd jacobian(Manipulator *manipulator, Name tool_name);
91  virtual void solveForwardKinematics(Manipulator *manipulator);
92  virtual bool solveInverseKinematics(Manipulator *manipulator, Name tool_name, Pose target_pose, std::vector<JointValue>* goal_joint_value);
93 };
94 
95 
96 /*****************************************************************************
97 ** Kinematics Solver Customized for OpenManipulator Chain
98 *****************************************************************************/
100 {
101 private:
102  void forwardSolverUsingChainRule(Manipulator *manipulator, Name component_name);
103  bool chainCustomInverseKinematics(Manipulator *manipulator, Name tool_name, Pose target_pose, std::vector<JointValue>* goal_joint_value);
104 
105 public:
108 
109  virtual void setOption(const void *arg);
110  virtual MatrixXd jacobian(Manipulator *manipulator, Name tool_name);
111  virtual void solveForwardKinematics(Manipulator *manipulator);
112  virtual bool solveInverseKinematics(Manipulator *manipulator, Name tool_name, Pose target_pose, std::vector<JointValue>* goal_joint_value);
113 };
114 
115 } // namespace KINEMATICS
116 
117 
118 #endif // KINEMATICS_H_
STRING Name


open_manipulator_libs
Author(s): Darby Lim , Hye-Jong KIM , Ryan Shim , Yong-Ho Na
autogenerated on Mon Jun 10 2019 14:12:00