Skip to content

Commit 9439764

Browse files
destoglSyllogismRXSNibanovicbmagyarchristophfroehlich
authored
Adding use of robot description parameter in the Admittance Controller (ros-controls#1247)
--------- Co-authored-by: Kevin DeMarco <[email protected]> Co-authored-by: Nikola Banovic <[email protected]> Co-authored-by: Bence Magyar <[email protected]> Co-authored-by: Christoph Fröhlich <[email protected]>
1 parent f2da662 commit 9439764

File tree

4 files changed

+12
-10
lines changed

4 files changed

+12
-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
@@ -102,7 +102,8 @@ class AdmittanceRule
102102

103103
/// Configure admittance rule memory using number of joints.
104104
controller_interface::return_type configure(
105-
const std::shared_ptr<rclcpp_lifecycle::LifecycleNode> & node, const size_t num_joint);
105+
const std::shared_ptr<rclcpp_lifecycle::LifecycleNode> & node, const size_t num_joint,
106+
const std::string & robot_description);
106107

107108
/// Reset all values back to default
108109
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 <control_toolbox/filters.hpp>
@@ -34,7 +35,8 @@ constexpr auto NUM_CARTESIAN_DOF = 6; // (3 translation + 3 rotation)
3435

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

@@ -58,7 +60,7 @@ controller_interface::return_type AdmittanceRule::configure(
5860
kinematics_loader_->createUnmanagedInstance(parameters_.kinematics.plugin_name));
5961

6062
if (!kinematics_->initialize(
61-
node->get_node_parameters_interface(), parameters_.kinematics.tip))
63+
robot_description, node->get_node_parameters_interface(), "kinematics"))
6264
{
6365
return controller_interface::return_type::ERROR;
6466
}

admittance_controller/src/admittance_controller.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,9 @@ controller_interface::CallbackReturn AdmittanceController::on_configure(
280280
semantic_components::ForceTorqueSensor(admittance_->parameters_.ft_sensor.name));
281281

282282
// configure admittance rule
283-
if (admittance_->configure(get_node(), num_joints_) == controller_interface::return_type::ERROR)
283+
if (
284+
admittance_->configure(get_node(), num_joints_, this->get_robot_description()) ==
285+
controller_interface::return_type::ERROR)
284286
{
285287
return controller_interface::CallbackReturn::ERROR;
286288
}

admittance_controller/test/test_admittance_controller.hpp

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

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

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

118114
void SetUp()
119115
{
@@ -163,7 +159,8 @@ class AdmittanceControllerTest : public ::testing::Test
163159
controller_interface::return_type SetUpControllerCommon(
164160
const std::string & controller_name, const rclcpp::NodeOptions & options)
165161
{
166-
auto result = controller_->init(controller_name, "", 0, "", options);
162+
auto result =
163+
controller_->init(controller_name, controller_->robot_description_, 0, "", options);
167164

168165
controller_->export_reference_interfaces();
169166
assign_interfaces();

0 commit comments

Comments
 (0)