diff --git a/nav2_behavior_tree/include/nav2_behavior_tree/plugins/action/wait_action.hpp b/nav2_behavior_tree/include/nav2_behavior_tree/plugins/action/wait_action.hpp index f452d24d320..af70a8cb35e 100644 --- a/nav2_behavior_tree/include/nav2_behavior_tree/plugins/action/wait_action.hpp +++ b/nav2_behavior_tree/include/nav2_behavior_tree/plugins/action/wait_action.hpp @@ -53,7 +53,7 @@ class WaitAction : public BtActionNode { return providedBasicPorts( { - BT::InputPort("wait_duration", 1, "Wait time") + BT::InputPort("wait_duration", 1, "Wait time") }); } }; diff --git a/nav2_behavior_tree/plugins/action/wait_action.cpp b/nav2_behavior_tree/plugins/action/wait_action.cpp index d2b0e6484be..4b312d8b0fd 100644 --- a/nav2_behavior_tree/plugins/action/wait_action.cpp +++ b/nav2_behavior_tree/plugins/action/wait_action.cpp @@ -26,16 +26,17 @@ WaitAction::WaitAction( const BT::NodeConfiguration & conf) : BtActionNode(xml_tag_name, action_name, conf) { - int duration; + double duration; getInput("wait_duration", duration); if (duration <= 0) { RCLCPP_WARN( node_->get_logger(), "Wait duration is negative or zero " - "(%i). Setting to positive.", duration); + "(%f). Setting to positive.", duration); duration *= -1; } - goal_.time.sec = duration; + goal_.time.sec = int(duration); + goal_.time.nanosec = int((duration - goal_.time.sec) * pow(10, 9)); } void WaitAction::on_tick()