robotis_manipulator_manager.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 ROBOTIS_MANIPULATOR_MANAGER_H_
20 #define ROBOTIS_MANIPULATOR_MANAGER_H_
21 
22 #if defined(__OPENCR__)
23  #include <Eigen.h> // Calls main Eigen matrix class library
24 #else
25  #include <eigen3/Eigen/Eigen>
26 #endif
27 
29 
30 namespace robotis_manipulator
31 {
32 
33 class Kinematics
34 {
35 public:
36  Kinematics() {}
37  virtual ~Kinematics() {}
38 
39  virtual void setOption(const void *arg) = 0;
40  virtual Eigen::MatrixXd jacobian(Manipulator *manipulator, Name tool_name) = 0;
41  virtual void solveForwardKinematics(Manipulator *manipulator) = 0; //Every joint value to every component pose
42  virtual bool solveInverseKinematics(Manipulator *manipulator, Name tool_name, Pose target_pose, std::vector<JointValue>* goal_joint_position) = 0; //An component pose to every joint value
43 };
44 
45 class Dynamics
46 {
47 public:
48  Dynamics() {}
49  virtual ~Dynamics() {}
50 
51  virtual bool setOption(STRING param_name, const void *arg) = 0;
52  virtual bool setEnvironments(STRING param_name, const void *arg) = 0;
53  virtual bool solveForwardDynamics(Manipulator *manipulator, std::map<Name, double> joint_torque) = 0; //torque to joint value
54  virtual bool solveInverseDynamics(Manipulator manipulator, std::map<Name, double>* joint_torque) = 0; //joint values to torque
55 };
56 
57 
58 class JointActuator
59 {
60 public:
61  bool enabled_state_;
62 
64  virtual ~JointActuator() {}
65 
66  virtual void init(std::vector<uint8_t> actuator_id, const void *arg) = 0;
67  virtual void setMode(std::vector<uint8_t> actuator_id, const void *arg) = 0;
68  virtual std::vector<uint8_t> getId() = 0;
69 
70  virtual void enable() = 0;
71  virtual void disable() = 0;
72 
73  virtual bool sendJointActuatorValue(std::vector<uint8_t> actuator_id, std::vector<ActuatorValue> value_vector) = 0;
74  virtual std::vector<ActuatorValue> receiveJointActuatorValue(std::vector<uint8_t> actuator_id) = 0;
75 
76  bool findId(uint8_t actuator_id);
78 };
79 
80 class ToolActuator
81 {
82 public:
83  bool enabled_state_;
84 
85  ToolActuator():enabled_state_(false){}
86  virtual ~ToolActuator() {}
87 
88  virtual void init(uint8_t actuator_id, const void *arg) = 0;
89  virtual void setMode(const void *arg) = 0;
90  virtual uint8_t getId() = 0;
91 
92  virtual void enable() = 0;
93  virtual void disable() = 0;
94 
95  virtual bool sendToolActuatorValue(ActuatorValue value) = 0;
97 
98  bool findId(uint8_t actuator_id);
100 };
101 
102 
104 {
105 public:
107  virtual ~CustomJointTrajectory() {}
108 
109  virtual void makeJointTrajectory(double move_time, JointWaypoint start, const void *arg) = 0;
110  virtual void setOption(const void *arg) = 0;
111  virtual JointWaypoint getJointWaypoint(double tick) = 0;
112 };
113 
114 class CustomTaskTrajectory
115 {
116 public:
118  virtual ~CustomTaskTrajectory() {}
119 
120  virtual void makeTaskTrajectory(double move_time, TaskWaypoint start, const void *arg) = 0;
121  virtual void setOption(const void *arg) = 0;
122  virtual TaskWaypoint getTaskWaypoint(double tick) = 0;
123 };
124 
125 } // namespace ROBOTIS_MANIPULATOR
126 #endif
robotis_manipulator::Kinematics::setOption
virtual void setOption(const void *arg)=0
robotis_manipulator::ToolActuator::~ToolActuator
virtual ~ToolActuator()
Definition: robotis_manipulator_manager.h:100
robotis_manipulator::JointActuator::init
virtual void init(std::vector< uint8_t > actuator_id, const void *arg)=0
robotis_manipulator::Dynamics::Dynamics
Dynamics()
Definition: robotis_manipulator_manager.h:62
robotis_manipulator::CustomTaskTrajectory::setOption
virtual void setOption(const void *arg)=0
robotis_manipulator::ToolActuator::setMode
virtual void setMode(const void *arg)=0
robotis_manipulator::JointActuator::enable
virtual void enable()=0
robotis_manipulator::Kinematics::~Kinematics
virtual ~Kinematics()
Definition: robotis_manipulator_manager.h:65
robotis_manipulator::CustomTaskTrajectory::makeTaskTrajectory
virtual void makeTaskTrajectory(double move_time, TaskWaypoint start, const void *arg)=0
robotis_manipulator::Kinematics::Kinematics
Kinematics()
Definition: robotis_manipulator_manager.h:64
robotis_manipulator::_Point
Definition: robotis_manipulator_common.h:116
robotis_manipulator::ToolActuator::disable
virtual void disable()=0
robotis_manipulator::ToolActuator::enable
virtual void enable()=0
STRING
std::string STRING
Definition: robotis_manipulator_log.h:46
robotis_manipulator::CustomJointTrajectory::CustomJointTrajectory
CustomJointTrajectory()
Definition: robotis_manipulator_manager.h:120
robotis_manipulator::ToolActuator::getEnabledState
bool getEnabledState()
Definition: robotis_manipulator_manager.cpp:48
robotis_manipulator::ToolActuator::sendToolActuatorValue
virtual bool sendToolActuatorValue(ActuatorValue value)=0
robotis_manipulator::CustomJointTrajectory::getJointWaypoint
virtual JointWaypoint getJointWaypoint(double tick)=0
robotis_manipulator::JointActuator::getId
virtual std::vector< uint8_t > getId()=0
robotis_manipulator::JointActuator::receiveJointActuatorValue
virtual std::vector< ActuatorValue > receiveJointActuatorValue(std::vector< uint8_t > actuator_id)=0
robotis_manipulator::JointActuator::sendJointActuatorValue
virtual bool sendJointActuatorValue(std::vector< uint8_t > actuator_id, std::vector< ActuatorValue > value_vector)=0
robotis_manipulator::CustomTaskTrajectory::CustomTaskTrajectory
CustomTaskTrajectory()
Definition: robotis_manipulator_manager.h:131
robotis_manipulator::CustomJointTrajectory::makeJointTrajectory
virtual void makeJointTrajectory(double move_time, JointWaypoint start, const void *arg)=0
robotis_manipulator_common.h
robotis_manipulator::Dynamics::setOption
virtual bool setOption(STRING param_name, const void *arg)=0
robotis_manipulator::JointActuator::JointActuator
JointActuator()
Definition: robotis_manipulator_manager.h:77
robotis_manipulator::ToolActuator::init
virtual void init(uint8_t actuator_id, const void *arg)=0
robotis_manipulator
Definition: robotis_manipulator.h:30
robotis_manipulator::Kinematics::solveForwardKinematics
virtual void solveForwardKinematics(Manipulator *manipulator)=0
robotis_manipulator::JointActuator::setMode
virtual void setMode(std::vector< uint8_t > actuator_id, const void *arg)=0
robotis_manipulator::Kinematics::solveInverseKinematics
virtual bool solveInverseKinematics(Manipulator *manipulator, Name tool_name, Pose target_pose, std::vector< JointValue > *goal_joint_position)=0
robotis_manipulator::Dynamics::solveForwardDynamics
virtual bool solveForwardDynamics(Manipulator *manipulator, std::map< Name, double > joint_torque)=0
robotis_manipulator::JointActuator::getEnabledState
bool getEnabledState()
Definition: robotis_manipulator_manager.cpp:34
robotis_manipulator::Dynamics::setEnvironments
virtual bool setEnvironments(STRING param_name, const void *arg)=0
robotis_manipulator::JointActuator::enabled_state_
bool enabled_state_
Definition: robotis_manipulator_manager.h:75
robotis_manipulator::CustomJointTrajectory
Definition: robotis_manipulator_manager.h:117
robotis_manipulator::ToolActuator::receiveToolActuatorValue
virtual ActuatorValue receiveToolActuatorValue()=0
robotis_manipulator::Kinematics::jacobian
virtual Eigen::MatrixXd jacobian(Manipulator *manipulator, Name tool_name)=0
robotis_manipulator::CustomTaskTrajectory::getTaskWaypoint
virtual TaskWaypoint getTaskWaypoint(double tick)=0
robotis_manipulator::ToolActuator::findId
bool findId(uint8_t actuator_id)
Definition: robotis_manipulator_manager.cpp:39
robotis_manipulator::Name
STRING Name
Definition: robotis_manipulator_common.h:55
robotis_manipulator::ToolActuator::enabled_state_
bool enabled_state_
Definition: robotis_manipulator_manager.h:97
robotis_manipulator::CustomTaskTrajectory::~CustomTaskTrajectory
virtual ~CustomTaskTrajectory()
Definition: robotis_manipulator_manager.h:132
robotis_manipulator::JointWaypoint
std::vector< JointValue > JointWaypoint
Definition: robotis_manipulator_common.h:124
robotis_manipulator::ToolActuator::ToolActuator
ToolActuator()
Definition: robotis_manipulator_manager.h:99
robotis_manipulator::_TaskWaypoint
Definition: robotis_manipulator_common.h:129
robotis_manipulator::Dynamics::solveInverseDynamics
virtual bool solveInverseDynamics(Manipulator manipulator, std::map< Name, double > *joint_torque)=0
robotis_manipulator::CustomJointTrajectory::setOption
virtual void setOption(const void *arg)=0
robotis_manipulator::Pose
struct robotis_manipulator::_TaskWaypoint Pose
robotis_manipulator::ToolActuator::getId
virtual uint8_t getId()=0
robotis_manipulator::JointActuator::findId
bool findId(uint8_t actuator_id)
Definition: robotis_manipulator_manager.cpp:23
robotis_manipulator::Dynamics::~Dynamics
virtual ~Dynamics()
Definition: robotis_manipulator_manager.h:63
robotis_manipulator::JointActuator::~JointActuator
virtual ~JointActuator()
Definition: robotis_manipulator_manager.h:78
robotis_manipulator::CustomJointTrajectory::~CustomJointTrajectory
virtual ~CustomJointTrajectory()
Definition: robotis_manipulator_manager.h:121
robotis_manipulator::JointActuator::disable
virtual void disable()=0
robotis_manipulator::ToolActuator
Definition: robotis_manipulator_manager.h:94


robotis_manipulator
Author(s): Hye-Jong KIM , Darby Lim , Yong-Ho Na , Ryan Shim
autogenerated on Wed Mar 2 2022 00:50:56