30 #include "nav2_costmap_2d/layer.hpp"
34 #include "nav2_ros_common/node_utils.hpp"
40 : layered_costmap_(nullptr),
51 nav2::TransformBuffer * tf,
52 const nav2::LifecycleNode::WeakPtr & node,
53 rclcpp::CallbackGroup::SharedPtr callback_group)
55 layered_costmap_ = parent;
59 callback_group_ = callback_group;
61 auto node_shared_ptr = node_.lock();
62 logger_ = node_shared_ptr->get_logger();
63 clock_ = node_shared_ptr->get_clock();
69 const std::vector<geometry_msgs::msg::Point> &
78 return std::string(name_ +
"." + param_name);
85 auto node = node_.lock();
87 throw std::runtime_error{
"Failed to lock node"};
90 if (topic[0] !=
'/') {
91 std::string node_namespace = node->get_namespace();
92 std::string parent_namespace = node_namespace.substr(0, node_namespace.rfind(
"/"));
93 return parent_namespace +
"/" + topic;
std::string joinWithParentNamespace(const std::string &topic)
virtual void onInitialize()
This is called at the end of initialize(). Override to implement subclass-specific initialization.
const std::vector< geometry_msgs::msg::Point > & getFootprint() const
Convenience function for layered_costmap_->getFootprint().
void initialize(LayeredCostmap *parent, std::string name, nav2::TransformBuffer *tf, const nav2::LifecycleNode::WeakPtr &node, rclcpp::CallbackGroup::SharedPtr callback_group)
Initialization process of layer on startup.
std::string getFullName(const std::string ¶m_name)
Convenience functions for declaring ROS parameters.
Instantiates different layer plugins and aggregates them into one score.
const std::vector< geometry_msgs::msg::Point > & getFootprint()
Returns the latest footprint stored with setFootprint().