19 #include "../../include/robotis_manipulator/robotis_manipulator_common.h"
25 if(value->size()==effort.size()){
26 for(
int i=0; i<value->size(); i++){
27 value->at(i).effort=effort.at(i);
38 if(value->size()==position.size()){
39 for(
int i=0; i<value->size(); i++){
40 value->at(i).position=position.at(i);
56 Eigen::Vector3d world_position,
57 Eigen::Matrix3d world_orientation)
72 Eigen::Vector3d relative_position,
73 Eigen::Matrix3d relative_orientation,
74 Eigen::Vector3d axis_of_rotation,
75 int8_t joint_actuator_id,
76 double max_position_limit,
77 double min_position_limit,
80 Eigen::Matrix3d inertia_tensor,
81 Eigen::Vector3d center_of_mass,
82 double torque_coefficient)
85 if (joint_actuator_id != -1)
96 temp_component.
name.
child.push_back(child_name);
120 component_.insert(std::make_pair(my_name, temp_component));
125 Eigen::Vector3d relative_position,
126 Eigen::Matrix3d relative_orientation,
128 double max_position_limit,
129 double min_position_limit,
132 Eigen::Matrix3d inertia_tensor,
133 Eigen::Vector3d center_of_mass,
134 double torque_coefficient)
164 component_.insert(std::make_pair(my_name, temp_component));
169 component_.at(my_name).name.child.push_back(child_name);
174 log::println(
"----------<Manipulator Description>----------");
197 std::vector<double> result_vector;
198 std::map<Name, Component>::iterator it_component;
212 for(uint32_t index = 0; index <
component_.at(it_component->first).name.child.size(); index++)
228 log::print(
" Maximum :",
component_.at(it_component->first).joint_constant.position_limit.maximum);
238 log::println(
" -Relative Position from parent component : ");
240 log::println(
" -Relative Orientation from parent component : ");
263 log::println(
"---------------------------------------------");
272 component_.at(component_name).joint_constant.torque_coefficient = torque_coefficient;
327 component_.at(component_name).actuator_name = actuator_name;
334 component_.at(component_name).pose_from_world = pose_to_world;
338 log::error(
"[setComponentPoseFromWorld] Wrong name.");
346 component_.at(component_name).pose_from_world.kinematic = pose_to_world;
350 log::error(
"[setComponentKinematicPoseFromWorld] Wrong name.");
358 component_.at(component_name).pose_from_world.kinematic.position = position_to_world;
362 log::error(
"[setComponentPositionFromWorld] Wrong name.");
370 component_.at(component_name).pose_from_world.kinematic.orientation = orientation_to_wolrd;
374 log::error(
"[setComponentOrientationFromWorld] Wrong name.");
382 component_.at(component_name).pose_from_world.dynamic = dynamic_pose;
386 log::error(
"[setComponentDynamicPoseFromWorld] Wrong name.");
392 component_.at(component_name).joint_value.position = position;
397 component_.at(component_name).joint_value.velocity = velocity;
402 component_.at(component_name).joint_value.acceleration = acceleration;
407 component_.at(component_name).joint_value.effort = effort;
412 component_.at(component_name).joint_value = joint_value;
418 std::map<Name, Component>::iterator it_component;
424 component_.at(it_component->first).joint_value.position = joint_position_vector.at(index);
433 std::map<Name, Component>::iterator it_component;
439 component_.at(it_component->first).joint_value.position = joint_value_vector.at(index).position;
440 component_.at(it_component->first).joint_value.velocity = joint_value_vector.at(index).velocity;
441 component_.at(it_component->first).joint_value.acceleration = joint_value_vector.at(index).acceleration;
442 component_.at(it_component->first).joint_value.effort = joint_value_vector.at(index).effort;
451 std::map<Name, Component>::iterator it_component;
457 component_.at(it_component->first).joint_value.position = joint_position_vector.at(index);
466 std::map<Name, Component>::iterator it_component;
472 component_.at(it_component->first).joint_value = joint_value_vector.at(index);
481 std::map<Name, Component>::iterator it_component;
487 component_.at(it_component->first).joint_value.position = tool_position_vector.at(index);
496 std::map<Name, Component>::iterator it_component;
502 component_.at(it_component->first).joint_value = tool_value_vector.at(index);
579 return component_.at(component_name).actuator_name;
584 return component_.at(component_name).name.parent;
589 return component_.at(component_name).name.child;
594 return component_.at(component_name).pose_from_world;
599 return component_.at(component_name).pose_from_world.kinematic;
604 return component_.at(component_name).pose_from_world.kinematic.position;
609 return component_.at(component_name).pose_from_world.kinematic.orientation;
614 return component_.at(component_name).pose_from_world.dynamic;
619 return component_.at(component_name).relative.pose_from_parent;
624 return component_.at(component_name).relative.pose_from_parent.position;
629 return component_.at(component_name).relative.pose_from_parent.orientation;
634 return component_.at(component_name).joint_constant.id;
639 return component_.at(component_name).joint_constant.coefficient;
644 return component_.at(component_name).joint_constant.torque_coefficient;
649 return component_.at(component_name).joint_constant.axis;
654 return component_.at(component_name).joint_value.position;
659 return component_.at(component_name).joint_value.velocity;
664 return component_.at(component_name).joint_value.acceleration;
669 return component_.at(component_name).joint_value.effort;
674 return component_.at(component_name).joint_value;
679 return component_.at(component_name).relative.inertia.mass;
684 return component_.at(component_name).relative.inertia.inertia_tensor;
689 return component_.at(component_name).relative.inertia.center_of_mass;
694 std::vector<double> result_vector;
695 std::map<Name, Component>::iterator it_component;
701 result_vector.push_back(
component_.at(it_component->first).joint_value.position);
704 return result_vector;
709 std::vector<JointValue> result_vector;
710 std::map<Name, Component>::iterator it_component;
716 result_vector.push_back(
component_.at(it_component->first).joint_value);
719 return result_vector;
724 std::vector<double> result_vector;
725 std::map<Name, Component>::iterator it_component;
731 result_vector.push_back(
component_.at(it_component->first).joint_value.position);
734 return result_vector;
739 std::vector<JointValue> result_vector;
740 std::map<Name, Component>::iterator it_component;
746 result_vector.push_back(
component_.at(it_component->first).joint_value);
749 return result_vector;
754 std::vector<double> result_vector;
755 std::map<Name, Component>::iterator it_component;
761 result_vector.push_back(
component_.at(it_component->first).joint_value.position);
764 return result_vector;
770 std::vector<JointValue> result_vector;
771 std::map<Name, Component>::iterator it_component;
777 result_vector.push_back(
component_.at(it_component->first).joint_value);
780 return result_vector;
785 std::vector<uint8_t> joint_id;
786 std::map<Name, Component>::iterator it_component;
792 joint_id.push_back(
component_.at(it_component->first).joint_constant.id);
800 std::vector<uint8_t> active_joint_id;
801 std::map<Name, Component>::iterator it_component;
807 active_joint_id.push_back(
component_.at(it_component->first).joint_constant.id);
810 return active_joint_id;
816 std::vector<Name> tool_name;
817 std::map<Name, Component>::iterator it_component;
823 tool_name.push_back(it_component->first);
831 std::vector<Name> active_joint_name;
832 std::map<Name, Component>::iterator it_component;
838 active_joint_name.push_back(it_component->first);
841 return active_joint_name;
850 if(
component_.at(component_name).joint_constant.position_limit.maximum < value)
852 else if(
component_.at(component_name).joint_constant.position_limit.minimum > value)
860 if(
component_.at(component_name).component_type == component_type)
872 std::map<Name, Component>::iterator it_component;
876 if (
component_.at(it_component->first).joint_constant.id ==
id)
878 return it_component->first;