Skip to content

Commit

Permalink
added damping parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
mhubii committed Nov 20, 2023
1 parent 8b55297 commit 091aca5
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 1 deletion.
4 changes: 4 additions & 0 deletions lbr_ros2_control/config/lbr_controllers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@
forward_position_controller:
type: position_controllers/JointGroupPositionController

/**/lbr_virtual_ft_broadcaster:
ros__parameters:
damping: 0.2

/**/position_trajectory_controller:
ros__parameters:
joints:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ class LBRVirtualFTBroadcaster : public controller_interface::ControllerInterface
external_joint_torques_;
Eigen::Matrix<double, 6, 1> virtual_ft_;

double damping_;

std::string end_effector_link_ = "link_ee";
std::array<std::string, 7> joint_names_ = {"A1", "A2", "A3", "A4", "A5", "A6", "A7"};

Expand Down
6 changes: 5 additions & 1 deletion lbr_ros2_control/src/lbr_virtual_ft_broadcaster.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ controller_interface::CallbackReturn LBRVirtualFTBroadcaster::on_init() {
wrench_stamped_publisher_ptr_);
kinematics_interface_kdl_.initialize(this->get_node()->get_node_parameters_interface(),
end_effector_link_);
if (!this->get_node()->get_parameter_or<double>("damping", damping_, 2e-1)) {
RCLCPP_WARN(this->get_node()->get_logger(),
"Failed to get damping parameter, using default value: %f.", damping_);
}
for (auto &state_interface : state_interfaces_) {
if (state_interface.get_interface_name() == hardware_interface::HW_IF_POSITION) {
joint_position_interfaces_.emplace_back(std::ref(state_interface));
Expand All @@ -57,7 +61,7 @@ LBRVirtualFTBroadcaster::update(const rclcpp::Time & /*time*/,
}
// compute virtual FT given Jacobian and external joint torques
kinematics_interface_kdl_.calculate_jacobian(joint_positions_, end_effector_link_, jacobian_);
jacobian_pinv_ = damped_least_squares_(jacobian_);
jacobian_pinv_ = damped_least_squares_(jacobian_, damping_);
virtual_ft_ = jacobian_pinv_.transpose() * external_joint_torques_;
// publish
if (rt_wrench_stamped_publisher_ptr_->trylock()) {
Expand Down

0 comments on commit 091aca5

Please sign in to comment.