Skip to content

Commit 2109777

Browse files
doisygGuillaume Doisy
andauthored
use ros clock for wait (#3782)
* use ROS clock for wait * fix backport issue --------- Co-authored-by: Guillaume Doisy <guillaume@dexory.com>
1 parent 6ef3d7b commit 2109777

File tree

2 files changed

+6
-8
lines changed

2 files changed

+6
-8
lines changed

‎nav2_behaviors/include/nav2_behaviors/plugins/wait.hpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class Wait : public TimedBehavior<WaitAction>
6363
CostmapInfoType getResourceInfo() override {return CostmapInfoType::LOCAL;}
6464

6565
protected:
66-
std::chrono::time_point<std::chrono::steady_clock> wait_end_;
66+
rclcpp::Time wait_end_;
6767
WaitAction::Feedback::SharedPtr feedback_;
6868
};
6969

‎nav2_behaviors/plugins/wait.cpp‎

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,21 +30,19 @@ Wait::~Wait() = default;
3030

3131
ResultStatus Wait::onRun(const std::shared_ptr<const WaitAction::Goal> command)
3232
{
33-
wait_end_ = std::chrono::steady_clock::now() +
34-
rclcpp::Duration(command->time).to_chrono<std::chrono::nanoseconds>();
33+
wait_end_ = node_.lock()->now() + rclcpp::Duration(command->time);
3534
return ResultStatus{Status::SUCCEEDED};
3635
}
3736

3837
ResultStatus Wait::onCycleUpdate()
3938
{
40-
auto current_point = std::chrono::steady_clock::now();
41-
auto time_left =
42-
std::chrono::duration_cast<std::chrono::nanoseconds>(wait_end_ - current_point).count();
39+
auto current_point = node_.lock()->now();
40+
auto time_left = wait_end_ - current_point;
4341

44-
feedback_->time_left = rclcpp::Duration(rclcpp::Duration::from_nanoseconds(time_left));
42+
feedback_->time_left = time_left;
4543
action_server_->publish_feedback(feedback_);
4644

47-
if (time_left > 0) {
45+
if (time_left.nanoseconds() > 0) {
4846
return ResultStatus{Status::RUNNING};
4947
} else {
5048
return ResultStatus{Status::SUCCEEDED};

0 commit comments

Comments
 (0)