Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,9 @@ class BtActionServer
// should the BT be reloaded even if the same xml filename is requested?
bool always_reload_bt_ = false;

// Whether to log BT transitions to IDLE state
bool log_idle_ = true;

// Parameters for Groot2 monitoring
bool enable_groot_monitoring_ = false;
int groot_server_port_ = 1667;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,9 @@ bool BtActionServer<ActionT, NodeT>::on_configure()
always_reload_bt_ = node->declare_or_get_parameter(
"always_reload_bt_xml", false);

log_idle_ = node->declare_or_get_parameter(
"bt_log_idle_transitions", true);

// Get error code id names to grab off of the blackboard
error_code_name_prefixes_ = node->get_parameter("error_code_name_prefixes").as_string_array();

Expand Down Expand Up @@ -366,7 +369,7 @@ bool BtActionServer<ActionT, NodeT>::loadBehaviorTree(const std::string & bt_xml
}

// Optional logging and monitoring
topic_logger_ = std::make_unique<RosTopicLogger>(client_node_, tree_);
topic_logger_ = std::make_unique<RosTopicLogger>(client_node_, tree_, log_idle_);
current_bt_file_or_id_ = file_or_id;

if (enable_groot_monitoring_) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,20 @@ class RosTopicLogger : public BT::StatusChangeLogger
* @brief A constructor for nav2_behavior_tree::RosTopicLogger
* @param ros_node Weak pointer to parent nav2::LifecycleNode
* @param tree BT to monitor
* @param log_idle Whether to enable logging transitions to IDLE state
*/
RosTopicLogger(const nav2::LifecycleNode::WeakPtr & ros_node, const BT::Tree & tree)
RosTopicLogger(
const nav2::LifecycleNode::WeakPtr & ros_node,
const BT::Tree & tree,
bool log_idle = true)
: StatusChangeLogger(tree.rootNode())
{
auto node = ros_node.lock();
clock_ = node->get_clock();
logger_ = node->get_logger().get_child("ros_topic_logger");
log_pub_ = node->create_publisher<nav2_msgs::msg::BehaviorTreeLog>(
"behavior_tree_log");
enableTransitionToIdle(log_idle);
}

/**
Expand Down
Loading