Skip to content
Merged
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 @@ -102,8 +102,6 @@ controller_interface::return_type AdmittanceRule::reset(const size_t num_joints)
state_message_.wrench_base.header.frame_id = parameters_.kinematics.base;
state_message_.admittance_velocity.header.frame_id = parameters_.kinematics.base;
state_message_.admittance_acceleration.header.frame_id = parameters_.kinematics.base;
state_message_.admittance_position.header.frame_id = parameters_.kinematics.base;
state_message_.admittance_position.child_frame_id = "admittance_offset";

// reset admittance state
admittance_state_ = AdmittanceState(num_joints);
Expand Down Expand Up @@ -384,10 +382,12 @@ const control_msgs::msg::AdmittanceControllerState & AdmittanceRule::get_control
admittance_state_.admittance_acceleration[5];

state_message_.admittance_position = tf2::eigenToTransform(admittance_state_.admittance_position);
state_message_.admittance_position.header.frame_id = parameters_.kinematics.base;
state_message_.admittance_position.child_frame_id = "admittance_offset";

state_message_.ref_trans_base_ft.header.frame_id = parameters_.kinematics.base;
state_message_.ref_trans_base_ft.header.frame_id = "ft_reference";
state_message_.ref_trans_base_ft = tf2::eigenToTransform(admittance_state_.ref_trans_base_ft);
state_message_.ref_trans_base_ft.header.frame_id = parameters_.kinematics.base;
state_message_.ref_trans_base_ft.child_frame_id = parameters_.ft_sensor.frame.id;

Eigen::Quaterniond quat(admittance_state_.rot_base_control);
state_message_.rot_base_control.w = quat.w();
Expand Down
25 changes: 25 additions & 0 deletions admittance_controller/test/test_admittance_controller.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -358,6 +358,31 @@ TEST_F(AdmittanceControllerTest, receive_message_and_publish_updated_status)
subscribe_and_get_messages(msg);
}

TEST_F(AdmittanceControllerTest, check_frame_ids_in_controller_state)
Comment thread
saikishor marked this conversation as resolved.
{
SetUpController();

ASSERT_EQ(controller_->on_configure(rclcpp_lifecycle::State()), NODE_SUCCESS);
ASSERT_EQ(controller_->on_activate(rclcpp_lifecycle::State()), NODE_SUCCESS);

broadcast_tfs(); // force torque sensor

ASSERT_EQ(
controller_->update(rclcpp::Time(0), rclcpp::Duration::from_seconds(0.01)),
controller_interface::return_type::OK);

const auto & msg = controller_->admittance_->get_controller_state();

// Ensure correct frame IDs
ASSERT_EQ(
msg.ref_trans_base_ft.header.frame_id, controller_->admittance_->parameters_.kinematics.base);
ASSERT_EQ(
msg.ref_trans_base_ft.child_frame_id, controller_->admittance_->parameters_.ft_sensor.frame.id);
ASSERT_EQ(
msg.admittance_position.header.frame_id, controller_->admittance_->parameters_.kinematics.base);
ASSERT_EQ(msg.admittance_position.child_frame_id, "admittance_offset");
}

int main(int argc, char ** argv)
{
::testing::InitGoogleTest(&argc, argv);
Expand Down
1 change: 1 addition & 0 deletions admittance_controller/test/test_admittance_controller.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ class TestableAdmittanceController : public admittance_controller::AdmittanceCon
FRIEND_TEST(AdmittanceControllerTest, check_interfaces);
FRIEND_TEST(AdmittanceControllerTest, activate_success);
FRIEND_TEST(AdmittanceControllerTest, receive_message_and_publish_updated_status);
FRIEND_TEST(AdmittanceControllerTest, check_frame_ids_in_controller_state);

public:
CallbackReturn on_init() override
Expand Down
Loading