Skip to content

Commit 66b3007

Browse files
committed
update for jazzy version
1 parent 792dbb3 commit 66b3007

2 files changed

Lines changed: 28 additions & 23 deletions

File tree

decomposition/meta_utils_controller/include/meta_utils_controller/armor_tester_controller.hpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,12 @@ class ArmorTesterController : public controller_interface::ChainableControllerIn
5656

5757
protected:
5858
// override method from ChainableControllerInterface
59-
controller_interface::return_type update_reference_from_subscribers() override;
59+
#if RCLCPP_VERSION_MAJOR >= 28 // Ros2 Jazzy or latter
60+
controller_interface::return_type update_reference_from_subscribers(
61+
const rclcpp::Time & /*time*/, const rclcpp::Duration & /*period*/) override;
62+
#else
63+
controller_interface::return_type update_reference_from_subscribers() override;
64+
#endif
6065

6166
// parameters
6267
armor_tester_controller::Params params_;

decomposition/meta_utils_controller/src/armor_tester_controller.cpp

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ namespace armor_tester_controller {
4545
params_ = param_listener_->get_params();
4646

4747
// initialize dji pid
48-
RCLCPP_INFO(get_node()->get_logger(), "The params_.dji_joint.name is: %s", params_.dji_joint.name.c_str());
4948
dji_pid_ = std::make_shared<control_toolbox::PidROS> (
5049
get_node(), "gains." + params_.dji_joint.name + "_vel2eff", true);
5150
if (!dji_pid_->initPid()) {
@@ -119,23 +118,29 @@ namespace armor_tester_controller {
119118
return controller_interface::CallbackReturn::SUCCESS;
120119
}
121120

122-
controller_interface::return_type
123-
ArmorTesterController::update_reference_from_subscribers() {
124-
// shared_ptr must be allocated immediately to avoid dangling
125-
auto current_vel_msg = * (vel_buffer_.readFromRT());
126-
127-
if (!std::isnan(current_vel_msg->unitree_vel) &&
128-
!std::isnan(current_vel_msg->dji_vel)) {
129-
// set the velocity into the reference_interfaces_
130-
reference_interfaces_[0] = current_vel_msg->unitree_vel;
131-
reference_interfaces_[1] = current_vel_msg->dji_vel;
132-
133-
current_vel_msg->unitree_vel = NaN;
134-
current_vel_msg->dji_vel = NaN;
135-
}
121+
#if RCLCPP_VERSION_MAJOR >= 28 // Ros2 Jazzy or later
122+
controller_interface::return_type
123+
ArmorTesterController::update_reference_from_subscribers(
124+
const rclcpp::Time & /*time*/, const rclcpp::Duration & /*period*/) {
125+
#else
126+
controller_interface::return_type
127+
ArmorTesterController::update_reference_from_subscribers() {
128+
#endif
129+
// shared_ptr must be allocated immediately to avoid dangling
130+
auto current_vel_msg = * (vel_buffer_.readFromRT());
131+
132+
if (!std::isnan(current_vel_msg->unitree_vel) &&
133+
!std::isnan(current_vel_msg->dji_vel)) {
134+
// set the velocity into the reference_interfaces_
135+
reference_interfaces_[0] = current_vel_msg->unitree_vel;
136+
reference_interfaces_[1] = current_vel_msg->dji_vel;
137+
138+
current_vel_msg->unitree_vel = NaN;
139+
current_vel_msg->dji_vel = NaN;
140+
}
136141

137-
return controller_interface::return_type::OK;
138-
}
142+
return controller_interface::return_type::OK;
143+
}
139144

140145
controller_interface::CallbackReturn
141146
ArmorTesterController::on_deactivate(const rclcpp_lifecycle::State & /*previous_state*/) {
@@ -172,8 +177,6 @@ namespace armor_tester_controller {
172177

173178
auto ref_unitree_vel = reference_interfaces_[0];
174179
auto ref_dji_vel = reference_interfaces_[1];
175-
RCLCPP_INFO(get_node()->get_logger(), "REF:unitree_vel:%.2lf, dji_vel: %.2lf",
176-
ref_unitree_vel, ref_dji_vel);
177180
// write to the command interface for unitree
178181
if (!std::isnan(ref_unitree_vel)) {
179182
command_interfaces_[0].set_value(ref_unitree_vel);
@@ -190,16 +193,13 @@ namespace armor_tester_controller {
190193
// write to the command interface for unitree
191194
if (state_itf.get_name() == params_.dji_joint.name + "/" + HW_IF_VELOCITY) {
192195
current_dji_vel = state_itf.get_value();
193-
RCLCPP_INFO(get_node()->get_logger(), "STATE: dji_vel: %lf", current_dji_vel);
194196
break;
195197
}
196198
}
197199

198200
if (!std::isnan(current_dji_vel)) {
199201
double dji_vel_err = ref_dji_vel - current_dji_vel;
200202
double dji_vel_eff = dji_pid_->computeCommand(dji_vel_err, period);
201-
RCLCPP_INFO(get_node()->get_logger(), "PID: current_dji_vel: %.2lf, ref_dji_vel: %.2lf, dji_vel_err: %.2lf, dji_vel_eff: %.2lf",
202-
current_dji_vel, ref_dji_vel, dji_vel_err, dji_vel_eff);
203203
command_interfaces_[1].set_value(dji_vel_eff);
204204
} else {
205205
RCLCPP_WARN(get_node()->get_logger(), "the current dji velocity is nan");

0 commit comments

Comments
 (0)