Skip to content

Commit e0c8690

Browse files
authored
Fix segfault at reconfigure of AdmittanceController (#1248) (#1266)
1 parent 4198072 commit e0c8690

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

admittance_controller/include/admittance_controller/admittance_rule_impl.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,17 @@ controller_interface::return_type AdmittanceRule::configure(
4545
{
4646
try
4747
{
48+
// Make sure we destroy the interface first. Otherwise we might run into a segfault
49+
if (kinematics_loader_)
50+
{
51+
kinematics_.reset();
52+
}
4853
kinematics_loader_ =
4954
std::make_shared<pluginlib::ClassLoader<kinematics_interface::KinematicsInterface>>(
5055
parameters_.kinematics.plugin_package, "kinematics_interface::KinematicsInterface");
5156
kinematics_ = std::unique_ptr<kinematics_interface::KinematicsInterface>(
5257
kinematics_loader_->createUnmanagedInstance(parameters_.kinematics.plugin_name));
58+
5359
if (!kinematics_->initialize(
5460
node->get_node_parameters_interface(), parameters_.kinematics.tip))
5561
{

0 commit comments

Comments
 (0)