Skip to content

Commit 927f123

Browse files
mergify[bot]SyllogismRXSNibanovicdestoglchristophfroehlich
authored
Adding use of robot description parameter in the Admittance Controller (backport #1247) (#1354)
--------- Co-authored-by: Kevin DeMarco <kevin@kevindemarco.com> Co-authored-by: Nikola Banovic <nibanovic@gmail.com> Co-authored-by: Dr. Denis <denis@stoglrobotics.de> Co-authored-by: Christoph Froehlich <christoph.froehlich@ait.ac.at>
1 parent 4ef87ca commit 927f123

File tree

4 files changed

+10
-10
lines changed

4 files changed

+10
-10
lines changed

admittance_controller/include/admittance_controller/admittance_rule.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,8 @@ class AdmittanceRule
109109

110110
/// Configure admittance rule memory using number of joints.
111111
controller_interface::return_type configure(
112-
const std::shared_ptr<rclcpp_lifecycle::LifecycleNode> & node, const size_t num_joint);
112+
const std::shared_ptr<rclcpp_lifecycle::LifecycleNode> & node, const size_t num_joint,
113+
const std::string & robot_description);
113114

114115
/// Reset all values back to default
115116
controller_interface::return_type reset(const size_t num_joints);

admittance_controller/include/admittance_controller/admittance_rule_impl.hpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "admittance_controller/admittance_rule.hpp"
2121

2222
#include <memory>
23+
#include <string>
2324
#include <vector>
2425

2526
#include "rclcpp/duration.hpp"
@@ -33,7 +34,8 @@ constexpr auto NUM_CARTESIAN_DOF = 6; // (3 translation + 3 rotation)
3334

3435
/// Configure admittance rule memory for num joints and load kinematics interface
3536
controller_interface::return_type AdmittanceRule::configure(
36-
const std::shared_ptr<rclcpp_lifecycle::LifecycleNode> & node, const size_t num_joints)
37+
const std::shared_ptr<rclcpp_lifecycle::LifecycleNode> & node, const size_t num_joints,
38+
const std::string & robot_description)
3739
{
3840
num_joints_ = num_joints;
3941

@@ -57,7 +59,7 @@ controller_interface::return_type AdmittanceRule::configure(
5759
kinematics_loader_->createUnmanagedInstance(parameters_.kinematics.plugin_name));
5860

5961
if (!kinematics_->initialize(
60-
node->get_node_parameters_interface(), parameters_.kinematics.tip))
62+
robot_description, node->get_node_parameters_interface(), "kinematics"))
6163
{
6264
return controller_interface::return_type::ERROR;
6365
}

admittance_controller/src/admittance_controller.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,8 @@ controller_interface::CallbackReturn AdmittanceController::on_configure(
284284
semantic_components::ForceTorqueSensor(admittance_->parameters_.ft_sensor.name));
285285

286286
// configure admittance rule
287-
if (admittance_->configure(get_node(), num_joints_) == controller_interface::return_type::ERROR)
287+
if (
288+
admittance_->configure(get_node(), num_joints_, "") == controller_interface::return_type::ERROR)
288289
{
289290
return controller_interface::CallbackReturn::ERROR;
290291
}

admittance_controller/test/test_admittance_controller.hpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -103,18 +103,14 @@ class TestableAdmittanceController : public admittance_controller::AdmittanceCon
103103
}
104104
}
105105

106-
private:
107106
const std::string robot_description_ = ros2_control_test_assets::valid_6d_robot_urdf;
108107
const std::string robot_description_semantic_ = ros2_control_test_assets::valid_6d_robot_srdf;
109108
};
110109

111110
class AdmittanceControllerTest : public ::testing::Test
112111
{
113112
public:
114-
static void SetUpTestCase()
115-
{
116-
// rclcpp::init(0, nullptr);
117-
}
113+
static void SetUpTestCase() {}
118114

119115
void SetUp()
120116
{
@@ -164,8 +160,8 @@ class AdmittanceControllerTest : public ::testing::Test
164160
controller_interface::return_type SetUpControllerCommon(
165161
const std::string & controller_name, const rclcpp::NodeOptions & options)
166162
{
163+
// robot_description is received from node's parameter
167164
auto result = controller_->init(controller_name, "", options);
168-
169165
controller_->export_reference_interfaces();
170166
assign_interfaces();
171167

0 commit comments

Comments
 (0)