@@ -278,6 +278,8 @@ bool Se3Controller::initialize(const rclcpp::Node::SharedPtr& node, std::shared_
278278 private_handlers->param_loader ->addYamlFile (ament_index_cpp::get_package_share_directory (" mrs_uav_controllers" ) + " /config/private/se3_controller.yaml" );
279279 private_handlers->param_loader ->addYamlFile (ament_index_cpp::get_package_share_directory (" mrs_uav_controllers" ) + " /config/public/se3_controller.yaml" );
280280
281+ dynparam_mgr_->get_param_provider ().copyYamls (private_handlers->param_loader ->getParamProvider ());
282+
281283 // lateral gains
282284 private_handlers->param_loader ->loadParam (" se3/default_gains/horizontal/kp" , gains_.kpxy );
283285 private_handlers->param_loader ->loadParam (" se3/default_gains/horizontal/kv" , gains_.kvxy );
@@ -306,10 +308,8 @@ bool Se3Controller::initialize(const rclcpp::Node::SharedPtr& node, std::shared_
306308
307309 // mass estimator
308310 private_handlers->param_loader ->loadParam (" se3/default_gains/mass_estimator/km" , gains_.km );
309- private_handlers->param_loader ->loadParam (" se3/mass_estimator/fuse_acceleration" , drs_params_.fuse_acceleration );
310311 private_handlers->param_loader ->loadParam (" se3/default_gains/mass_estimator/km_lim" , gains_.km_lim );
311-
312- dynparam_mgr_->register_param (" se3/mass_estimator/fuse_acceleration" , &drs_params_.fuse_acceleration , drs_params_.fuse_acceleration );
312+ dynparam_mgr_->register_param (" se3/mass_estimator/fuse_acceleration" , &drs_params_.fuse_acceleration );
313313
314314 // integrator limits
315315 private_handlers->param_loader ->loadParam (" se3/default_gains/horizontal/kiw_lim" , gains_.kiwxy_lim );
@@ -335,18 +335,12 @@ bool Se3Controller::initialize(const rclcpp::Node::SharedPtr& node, std::shared_
335335 private_handlers->param_loader ->loadParam (" se3/gain_filtering/gain_mute_coefficient" , _gain_mute_coefficient_);
336336
337337 // output mode
338- private_handlers->param_loader ->loadParam (" se3/preferred_output" , drs_params_.preferred_output_mode );
339- dynparam_mgr_->register_param (" se3/preferred_output" , &drs_params_.preferred_output_mode , drs_params_.preferred_output_mode , mrs_lib::DynparamMgr::range_t <int >(0 , 3 ));
340-
341- private_handlers->param_loader ->loadParam (" se3/rotation_matrix" , drs_params_.rotation_type );
342- dynparam_mgr_->register_param (" se3/rotation_matrix" , &drs_params_.rotation_type , drs_params_.rotation_type , mrs_lib::DynparamMgr::range_t <int >(0 , 1 ));
338+ dynparam_mgr_->register_param (" se3/preferred_output" , &drs_params_.preferred_output_mode , mrs_lib::DynparamMgr::range_t <int >(0 , 3 ));
339+ dynparam_mgr_->register_param (" se3/rotation_matrix" , &drs_params_.rotation_type , mrs_lib::DynparamMgr::range_t <int >(0 , 1 ));
343340
344341 // angular rate feed forward
345- private_handlers->param_loader ->loadParam (" se3/angular_rate_feedforward/parasitic_pitch_roll" , drs_params_.pitch_roll_heading_rate_compensation );
346- dynparam_mgr_->register_param (" se3/angular_rate_feedforward/parasitic_pitch_roll" , &drs_params_.pitch_roll_heading_rate_compensation , drs_params_.pitch_roll_heading_rate_compensation );
347-
348- private_handlers->param_loader ->loadParam (" se3/angular_rate_feedforward/jerk" , drs_params_.jerk_feedforward );
349- dynparam_mgr_->register_param (" se3/angular_rate_feedforward/jerk" , &drs_params_.jerk_feedforward , drs_params_.jerk_feedforward );
342+ dynparam_mgr_->register_param (" se3/angular_rate_feedforward/parasitic_pitch_roll" , &drs_params_.pitch_roll_heading_rate_compensation );
343+ dynparam_mgr_->register_param (" se3/angular_rate_feedforward/jerk" , &drs_params_.jerk_feedforward );
350344
351345 // | ------------------- position pid params ------------------ |
352346
@@ -360,7 +354,7 @@ bool Se3Controller::initialize(const rclcpp::Node::SharedPtr& node, std::shared_
360354
361355 // | ------------------ finish loading params ----------------- |
362356
363- if (!private_handlers->param_loader ->loadedSuccessfully ()) {
357+ if (!private_handlers->param_loader ->loadedSuccessfully () || !dynparam_mgr_-> loaded_successfully () ) {
364358 RCLCPP_ERROR (node_->get_logger (), " [Se3Controller]: could not load all parameters!" );
365359 return false ;
366360 }
@@ -1259,8 +1253,6 @@ void Se3Controller::SE3Controller(const mrs_msgs::msg::UavState& uav_state, cons
12591253
12601254 if (last_throttle_ < (_throttle_saturation_ - 0.01 ) && last_throttle_ > 0 ) {
12611255 uav_mass_difference_ += 1.0 * gains.km * (desired_bodyz_acc - measured_bodyz_acc) * dt;
1262-
1263- RCLCPP_DEBUG_THROTTLE (node_->get_logger (), *clock_, 100 , " [Se3Controller]: mass estimation using IMU acc runs, mass difference %.3f kg" , uav_mass_difference_);
12641256 }
12651257
12661258 } else if (tracker_command.use_position_vertical ) {
0 commit comments