Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,9 @@ struct InterfaceInfo
/// @brief This structure stores information about a joint that is mimicking another joint
struct MimicJoint
{
std::string joint_name;
std::size_t joint_index;
std::string mimicked_joint_name;
std::size_t mimicked_joint_index;
double multiplier = 1.0;
double offset = 0.0;
Expand Down
2 changes: 2 additions & 0 deletions hardware_interface/src/component_parser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -994,7 +994,9 @@ std::vector<HardwareInfo> parse_control_resources_from_urdf(const std::string &
};

MimicJoint mimic_joint;
mimic_joint.joint_name = joint.name;
mimic_joint.joint_index = i;
mimic_joint.mimicked_joint_name = urdf_joint->mimic->joint_name;
mimic_joint.mimicked_joint_index = find_joint(urdf_joint->mimic->joint_name);
mimic_joint.multiplier = urdf_joint->mimic->multiplier;
mimic_joint.offset = urdf_joint->mimic->offset;
Expand Down
4 changes: 4 additions & 0 deletions hardware_interface/test/test_component_parser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1569,7 +1569,9 @@ TEST_F(TestComponentParser, gripper_mimic_true_valid_config)
EXPECT_DOUBLE_EQ(hw_info[0].mimic_joints[0].multiplier, 2.0);
EXPECT_DOUBLE_EQ(hw_info[0].mimic_joints[0].offset, 1.0);
EXPECT_EQ(hw_info[0].mimic_joints[0].mimicked_joint_index, 0);
EXPECT_EQ(hw_info[0].mimic_joints[0].mimicked_joint_name, "right_finger_joint");
EXPECT_EQ(hw_info[0].mimic_joints[0].joint_index, 1);
EXPECT_EQ(hw_info[0].mimic_joints[0].joint_name, "left_finger_joint");
// when not set, rw_rate should be 0
EXPECT_EQ(hw_info[0].rw_rate, 0u);
}
Expand All @@ -1587,7 +1589,9 @@ TEST_F(TestComponentParser, gripper_no_mimic_valid_config)
EXPECT_DOUBLE_EQ(hw_info[0].mimic_joints[0].multiplier, 2.0);
EXPECT_DOUBLE_EQ(hw_info[0].mimic_joints[0].offset, 1.0);
EXPECT_EQ(hw_info[0].mimic_joints[0].mimicked_joint_index, 0);
EXPECT_EQ(hw_info[0].mimic_joints[0].mimicked_joint_name, "right_finger_joint");
EXPECT_EQ(hw_info[0].mimic_joints[0].joint_index, 1);
EXPECT_EQ(hw_info[0].mimic_joints[0].joint_name, "left_finger_joint");
// when not set, rw_rate should be 0
EXPECT_EQ(hw_info[0].rw_rate, 0u);
}
Expand Down