26 #include "../../include/robotis_manipulator/robotis_manipulator_common.h" 37 Eigen::Vector3d world_position,
38 Eigen::Matrix3d world_orientation)
53 Eigen::Vector3d relative_position,
54 Eigen::Matrix3d relative_orientation,
55 Eigen::Vector3d axis_of_rotation,
56 int8_t joint_actuator_id,
57 double max_position_limit,
58 double min_position_limit,
61 Eigen::Matrix3d inertia_tensor,
62 Eigen::Vector3d center_of_mass)
65 if (joint_actuator_id != -1)
76 temp_component.
name.
child.push_back(child_name);
99 component_.insert(std::make_pair(my_name, temp_component));
104 Eigen::Vector3d relative_position,
105 Eigen::Matrix3d relative_orientation,
107 double max_position_limit,
108 double min_position_limit,
111 Eigen::Matrix3d inertia_tensor,
112 Eigen::Vector3d center_of_mass)
141 component_.insert(std::make_pair(my_name, temp_component));
146 component_.at(my_name).name.child.push_back(child_name);
151 log::println(
"----------<Manipulator Description>----------");
174 std::vector<double> result_vector;
175 std::map<Name, Component>::iterator it_component;
182 log::println(
" [Component Type]\n Active Joint");
184 log::println(
" [Component Type]\n Passive Joint");
186 log::println(
" [Component Type]\n Tool");
189 for(uint32_t index = 0; index <
component_.at(it_component->first).name.child.size(); index++)
205 log::print(
" Maximum :",
component_.at(it_component->first).joint_constant.position_limit.maximum);
215 log::println(
" -Relative Position from parent component : ");
217 log::println(
" -Relative Orientation from parent component : ");
240 log::println(
"---------------------------------------------");
299 component_.at(component_name).actuator_name = actuator_name;
306 component_.at(component_name).pose_from_world = pose_to_world;
310 log::error(
"[setComponentPoseFromWorld] Wrong name.");
318 component_.at(component_name).pose_from_world.kinematic = pose_to_world;
322 log::error(
"[setComponentKinematicPoseFromWorld] Wrong name.");
330 component_.at(component_name).pose_from_world.kinematic.position = position_to_world;
334 log::error(
"[setComponentPositionFromWorld] Wrong name.");
342 component_.at(component_name).pose_from_world.kinematic.orientation = orientation_to_wolrd;
346 log::error(
"[setComponentOrientationFromWorld] Wrong name.");
354 component_.at(component_name).pose_from_world.dynamic = dynamic_pose;
358 log::error(
"[setComponentDynamicPoseFromWorld] Wrong name.");
364 component_.at(component_name).joint_value.position = position;
369 component_.at(component_name).joint_value.velocity = velocity;
374 component_.at(component_name).joint_value.acceleration = acceleration;
379 component_.at(component_name).joint_value.effort = effort;
384 component_.at(component_name).joint_value = joint_value;
390 std::map<Name, Component>::iterator it_component;
396 component_.at(it_component->first).joint_value.position = joint_position_vector.at(index);
405 std::map<Name, Component>::iterator it_component;
411 component_.at(it_component->first).joint_value.position = joint_value_vector.at(index).position;
412 component_.at(it_component->first).joint_value.velocity = joint_value_vector.at(index).velocity;
413 component_.at(it_component->first).joint_value.acceleration = joint_value_vector.at(index).acceleration;
414 component_.at(it_component->first).joint_value.effort = joint_value_vector.at(index).effort;
423 std::map<Name, Component>::iterator it_component;
429 component_.at(it_component->first).joint_value.position = joint_position_vector.at(index);
438 std::map<Name, Component>::iterator it_component;
444 component_.at(it_component->first).joint_value = joint_value_vector.at(index);
453 std::map<Name, Component>::iterator it_component;
459 component_.at(it_component->first).joint_value.position = tool_position_vector.at(index);
468 std::map<Name, Component>::iterator it_component;
474 component_.at(it_component->first).joint_value = tool_value_vector.at(index);
551 return component_.at(component_name).actuator_name;
556 return component_.at(component_name).name.parent;
561 return component_.at(component_name).name.child;
566 return component_.at(component_name).pose_from_world;
571 return component_.at(component_name).pose_from_world.kinematic;
576 return component_.at(component_name).pose_from_world.kinematic.position;
581 return component_.at(component_name).pose_from_world.kinematic.orientation;
586 return component_.at(component_name).pose_from_world.dynamic;
591 return component_.at(component_name).relative.pose_from_parent;
596 return component_.at(component_name).relative.pose_from_parent.position;
601 return component_.at(component_name).relative.pose_from_parent.orientation;
606 return component_.at(component_name).joint_constant.id;
611 return component_.at(component_name).joint_constant.coefficient;
616 return component_.at(component_name).joint_constant.axis;
621 return component_.at(component_name).joint_value.position;
626 return component_.at(component_name).joint_value.velocity;
631 return component_.at(component_name).joint_value.acceleration;
636 return component_.at(component_name).joint_value.effort;
641 return component_.at(component_name).joint_value;
646 return component_.at(component_name).relative.inertia.mass;
651 return component_.at(component_name).relative.inertia.inertia_tensor;
656 return component_.at(component_name).relative.inertia.center_of_mass;
661 std::vector<double> result_vector;
662 std::map<Name, Component>::iterator it_component;
668 result_vector.push_back(
component_.at(it_component->first).joint_value.position);
671 return result_vector;
676 std::vector<JointValue> result_vector;
677 std::map<Name, Component>::iterator it_component;
683 result_vector.push_back(
component_.at(it_component->first).joint_value);
686 return result_vector;
691 std::vector<double> result_vector;
692 std::map<Name, Component>::iterator it_component;
698 result_vector.push_back(
component_.at(it_component->first).joint_value.position);
701 return result_vector;
706 std::vector<JointValue> result_vector;
707 std::map<Name, Component>::iterator it_component;
713 result_vector.push_back(
component_.at(it_component->first).joint_value);
716 return result_vector;
721 std::vector<double> result_vector;
722 std::map<Name, Component>::iterator it_component;
728 result_vector.push_back(
component_.at(it_component->first).joint_value.position);
731 return result_vector;
737 std::vector<JointValue> result_vector;
738 std::map<Name, Component>::iterator it_component;
744 result_vector.push_back(
component_.at(it_component->first).joint_value);
747 return result_vector;
752 std::vector<uint8_t> joint_id;
753 std::map<Name, Component>::iterator it_component;
759 joint_id.push_back(
component_.at(it_component->first).joint_constant.id);
767 std::vector<uint8_t> active_joint_id;
768 std::map<Name, Component>::iterator it_component;
774 active_joint_id.push_back(
component_.at(it_component->first).joint_constant.id);
777 return active_joint_id;
783 std::vector<Name> tool_name;
784 std::map<Name, Component>::iterator it_component;
790 tool_name.push_back(it_component->first);
798 std::vector<Name> active_joint_name;
799 std::map<Name, Component>::iterator it_component;
805 active_joint_name.push_back(it_component->first);
808 return active_joint_name;
817 if(
component_.at(component_name).joint_constant.position_limit.maximum < value)
819 else if(
component_.at(component_name).joint_constant.position_limit.minimum > value)
827 if(
component_.at(component_name).component_type == component_type)
839 std::map<Name, Component>::iterator it_component;
843 if (
component_.at(it_component->first).joint_constant.id == id)
845 return it_component->first;
std::vector< uint8_t > getAllJointID()
getAllJointID
void setAllToolValue(std::vector< JointValue > tool_value_vector)
setAllToolValue
void printManipulatorSetting()
printManipulatorSetting
void setComponentKinematicPoseFromWorld(Name component_name, KinematicPose pose_to_world)
setComponentKinematicPoseFromWorld
void setAllToolPosition(std::vector< double > tool_position_vector)
setAllToolPosition
std::vector< Name > child
Eigen::Matrix3d getComponentInertiaTensor(Name component_name)
getComponentInertiaTensor
int8_t getId(Name component_name)
getId
KinematicPose getComponentRelativePoseFromParent(Name component_name)
getComponentRelativePoseFromParent
void setComponentDynamicPoseFromWorld(Name component_name, DynamicPose dynamic_pose)
setComponentDynamicPoseFromWorld
std::map< Name, Component > component_
void setWorldKinematicPose(KinematicPose world_kinematic_pose)
setWorldKinematicPose
std::vector< JointValue > getAllActiveJointValue()
getAllActiveJointValue
void setAllJointValue(std::vector< JointValue > joint_value_vector)
setAllJointValue
Eigen::Matrix3d getWorldOrientation()
getWorldOrientation
void setComponentPoseFromWorld(Name component_name, Pose pose_to_world)
setComponentPoseFromWorld
int8_t getComponentSize()
getComponentSize
double getCoefficient(Name component_name)
getCoefficient
void setAllActiveJointValue(std::vector< JointValue > joint_value_vector)
setAllActiveJointValue
Name getWorldName()
getWorldName
std::vector< Name > getAllActiveJointComponentName()
getAllActiveJointComponentName
Name getComponentActuatorName(Name component_name)
getComponentActuatorName
std::vector< JointValue > getAllJointValue()
getAllJointValue
Eigen::Vector3d getComponentCenterOfMass(Name component_name)
getComponentCenterOfMass
double getJointEffort(Name component_name)
getJointEffort
std::map< Name, Component > getAllComponent()
getAllComponent
void setWorldAngularVelocity(Eigen::Vector3d world_angular_velocity)
setWorldAngularVelocity
DynamicPose getComponentDynamicPoseFromWorld(Name component_name)
getComponentDynamicPoseFromWorld
std::vector< Name > getComponentChildName(Name component_name)
getComponentChildName
void setWorldLinearAcceleration(Eigen::Vector3d world_linear_acceleration)
setWorldLinearAcceleration
Name findComponentNameUsingId(int8_t id)
findComponentNameUsingId
void setJointPosition(Name name, double position)
setJointPosition
KinematicPose getWorldKinematicPose()
getWorldKinematicPose
void setAllActiveJointPosition(std::vector< double > joint_position_vector)
setAllActiveJointPosition
ComponentType component_type
std::map< Name, Component >::iterator getIteratorEnd()
getIteratorEnd
std::vector< uint8_t > getAllActiveJointID()
getAllActiveJointID
Eigen::Matrix3d inertia_tensor
JointConstant joint_constant
void println(STRING str, STRING color="DEFAULT")
println
Eigen::Vector3d getComponentRelativePositionFromParent(Name component_name)
getComponentRelativePositionFromParent
void setJointAcceleration(Name name, double acceleration)
setJointAcceleration
void setComponent(Name component_name, Component component)
setComponent
void setComponentOrientationFromWorld(Name component_name, Eigen::Matrix3d orientation_to_wolrd)
setComponentOrientationFromWorld
void setComponentActuatorName(Name component_name, Name actuator_name)
setComponentActuatorName
double getJointVelocity(Name component_name)
getJointVelocity
Pose getComponentPoseFromWorld(Name component_name)
getComponentPoseFromWorld
void setAllJointPosition(std::vector< double > joint_position_vector)
setAllJointPosition
JointValue getJointValue(Name component_name)
getJointValue
std::map< Name, Component >::iterator getIteratorBegin()
getIteratorBegin
std::vector< double > getAllToolPosition()
getAllToolPosition
Name getWorldChildName()
getWorldChildName
Eigen::Vector3d getComponentPositionFromWorld(Name component_name)
getComponentPositionFromWorld
Name getComponentParentName(Name component_name)
getComponentParentName
Eigen::Vector3d acceleration
void print_vector(std::vector< T > &vec, uint8_t decimal_point=3)
print_vector
Pose getWorldPose()
getWorldPose
double getJointPosition(Name component_name)
getJointPosition
void print(STRING str, STRING color="DEFAULT")
print
Eigen::Vector3d center_of_mass
void setWorldDynamicPose(DynamicPose world_dynamic_pose)
setWorldDynamicPose
Eigen::Matrix3d getComponentOrientationFromWorld(Name component_name)
getComponentOrientationFromWorld
bool checkComponentType(Name component_name, ComponentType component_type)
checkComponentType
std::vector< double > getAllJointPosition()
getAllJointPosition
bool checkJointLimit(Name Component_name, double value)
checkJointLimit
Component getComponent(Name component_name)
getComponent
void addTool(Name my_name, Name parent_name, Eigen::Vector3d relative_position, Eigen::Matrix3d relative_orientation, int8_t tool_id=-1, double max_position_limit=M_PI, double min_position_limit=-M_PI, double coefficient=1.0, double mass=0.0, Eigen::Matrix3d inertia_tensor=Eigen::Matrix3d::Identity(), Eigen::Vector3d center_of_mass=Eigen::Vector3d::Zero())
addTool
KinematicPose getComponentKinematicPoseFromWorld(Name component_name)
getComponentKinematicPoseFromWorld
void error(STRING str)
error
void setWorldAngularAcceleration(Eigen::Vector3d world_angular_acceleration)
setWorldAngularAcceleration
DynamicPose getWorldDynamicPose()
getWorldDynamicPose
void addWorld(Name world_name, Name child_name, Eigen::Vector3d world_position=Eigen::Vector3d::Zero(), Eigen::Matrix3d world_orientation=Eigen::Matrix3d::Identity())
addWorld
std::vector< Name > getAllToolComponentName()
getAllToolComponentName
std::vector< JointValue > getAllToolValue()
getAllToolValue
Eigen::Matrix3d getComponentRelativeOrientationFromParent(Name component_name)
getComponentRelativeOrientationFromParent
void setWorldOrientation(Eigen::Matrix3d world_orientation)
setWorldOrientation
void addJoint(Name my_name, Name parent_name, Name child_name, Eigen::Vector3d relative_position, Eigen::Matrix3d relative_orientation, Eigen::Vector3d axis_of_rotation=Eigen::Vector3d::Zero(), int8_t joint_actuator_id=-1, double max_position_limit=M_PI, double min_position_limit=-M_PI, double coefficient=1.0, double mass=0.0, Eigen::Matrix3d inertia_tensor=Eigen::Matrix3d::Identity(), Eigen::Vector3d center_of_mass=Eigen::Vector3d::Zero())
addJoint
std::vector< double > getAllActiveJointPosition()
getAllActiveJointPosition
void setWorldPosition(Eigen::Vector3d world_position)
setWorldPosition
Eigen::Vector3d getWorldPosition()
getWorldPosition
void setComponentPositionFromWorld(Name component_name, Eigen::Vector3d position_to_world)
setComponentPositionFromWorld
double getJointAcceleration(Name component_name)
getJointAcceleration
Eigen::Vector3d getAxis(Name component_name)
getAxis
void setWorldLinearVelocity(Eigen::Vector3d world_linear_velocity)
setWorldLinearVelocity
double getComponentMass(Name component_name)
getComponentMass
void setJointEffort(Name name, double effort)
setJointEffort
void setJointVelocity(Name name, double velocity)
setJointVelocity
Eigen::Matrix3d orientation
void setWorldPose(Pose world_pose)
setWorldPose
void addComponentChild(Name my_name, Name child_name)
addComponentChild
void setJointValue(Name name, JointValue joint_value)
setJointValue
void print_matrix(matrix &m, uint8_t decimal_point=3)
print_matrix
KinematicPose pose_from_parent