@@ -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