@@ -137,7 +137,7 @@ controller_interface::return_type JointTrajectoryController::update(
137137 // update gains of controller
138138 // TODO(christophfroehlich) activate this
139139 // once https://github.com/ros-controls/ros2_controllers/pull/761 is merged
140- // if (use_closed_loop_control_law_ )
140+ // if (traj_contr_ )
141141 // {
142142 // if(traj_contr_->updateGainsRT() == false)
143143 // {
@@ -183,11 +183,11 @@ controller_interface::return_type JointTrajectoryController::update(
183183 auto new_external_msg = traj_msg_external_point_ptr_.readFromRT ();
184184 // Discard,
185185 // if a goal is pending but still not active (somewhere stuck in goal_handle_timer_)
186- // and if use_closed_loop_control_law_ : wait until control law is computed by the traj_contr_
186+ // and if traj_contr_ : wait until control law is computed by the traj_contr_
187187 if (
188188 current_external_msg != *new_external_msg &&
189189 (*(rt_has_pending_goal_.readFromRT ()) && !active_goal) == false &&
190- (use_closed_loop_control_law_ == false || traj_contr_->is_valid ()))
190+ (traj_contr_ == nullptr || traj_contr_->is_ready ()))
191191 {
192192 fill_partial_goal (*new_external_msg);
193193 sort_to_local_joint_order (*new_external_msg);
@@ -226,6 +226,11 @@ controller_interface::return_type JointTrajectoryController::update(
226226 {
227227 traj_external_point_ptr_->set_point_before_trajectory_msg (time, state_current_);
228228 }
229+ if (traj_contr_)
230+ {
231+ // set start time of trajectory to traj_contr_
232+ traj_contr_->start (time, traj_external_point_ptr_->time_from_start ());
233+ }
229234 }
230235
231236 // find segment for current timestamp
@@ -298,7 +303,7 @@ controller_interface::return_type JointTrajectoryController::update(
298303 // set values for next hardware write() if tolerance is met
299304 if (!tolerance_violated_while_moving && within_goal_time)
300305 {
301- if (use_closed_loop_control_law_ )
306+ if (traj_contr_ )
302307 {
303308 traj_contr_->computeCommands (
304309 tmp_command_, state_current_, state_error_, state_desired_, time, period);
@@ -1038,7 +1043,7 @@ controller_interface::CallbackReturn JointTrajectoryController::on_activate(
10381043 read_state_from_state_interfaces (last_commanded_state_);
10391044 }
10401045
1041- if (use_closed_loop_control_law_ )
1046+ if (traj_contr_ )
10421047 {
10431048 traj_contr_->activate ();
10441049 }
@@ -1552,7 +1557,7 @@ void JointTrajectoryController::add_new_trajectory_msg(
15521557 traj_msg_external_point_ptr_.writeFromNonRT (traj_msg);
15531558
15541559 // compute gains of controller
1555- if (use_closed_loop_control_law_ )
1560+ if (traj_contr_ )
15561561 {
15571562 if (traj_contr_->computeControlLawNonRT (traj_msg) == false )
15581563 {
0 commit comments