src
planner_node.cpp
Go to the documentation of this file.
1
/*
2
* Software License Agreement (BSD License)
3
*
4
* Copyright (c) 2017, Locus Robotics
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions
9
* are met:
10
*
11
* * Redistributions of source code must retain the above copyright
12
* notice, this list of conditions and the following disclaimer.
13
* * Redistributions in binary form must reproduce the above
14
* copyright notice, this list of conditions and the following
15
* disclaimer in the documentation and/or other materials provided
16
* with the distribution.
17
* * Neither the name of the copyright holder nor the names of its
18
* contributors may be used to endorse or promote products derived
19
* from this software without specific prior written permission.
20
*
21
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32
* POSSIBILITY OF SUCH DAMAGE.
33
*/
34
#include <
ros/ros.h
>
35
#include <
pluginlib/class_loader.h
>
36
#include <
dwb_local_planner/debug_dwb_local_planner.h
>
37
#include <
tf2_ros/transform_listener.h
>
38
#include <memory>
39
#include <string>
40
41
int
main
(
int
argc,
char
** argv)
42
{
43
ros::init
(argc, argv,
"plan_node"
);
44
ros::NodeHandle
private_nh(
"~"
);
45
46
dwb_local_planner::DebugDWBLocalPlanner
planner;
47
ROS_INFO
(
"Plan Node"
);
48
49
TFListenerPtr
tf
= std::make_shared<tf2_ros::Buffer>();
50
tf2_ros::TransformListener
tf2
(*
tf
);
51
52
pluginlib::ClassLoader<nav_core2::Costmap>
costmap_loader(
"nav_core2"
,
"nav_core2::Costmap"
);
53
std::string costmap_class;
54
private_nh.
param
(
"local_costmap_class"
, costmap_class, std::string(
"nav_core_adapter::CostmapAdapter"
));
55
nav_core2::Costmap::Ptr
costmap = costmap_loader.createUniqueInstance(costmap_class);
56
costmap->initialize(private_nh,
"costmap"
,
tf
);
57
58
planner.
initialize
(private_nh,
"dwb_local_planner"
,
tf
, costmap);
59
ros::spin
();
60
}
class_loader.h
ros::init
ROSCPP_DECL void init(const M_string &remappings, const std::string &name, uint32_t options=0)
ros.h
tf2_ros::TransformListener
pluginlib::ClassLoader
dwb_local_planner::DebugDWBLocalPlanner
A version of DWBLocalPlanner with ROS services for the major components.
Definition:
debug_dwb_local_planner.h:54
main
int main(int argc, char **argv)
Definition:
planner_node.cpp:41
transform_listener.h
nav_core2::Costmap::Ptr
std::shared_ptr< Costmap > Ptr
TFListenerPtr
std::shared_ptr< tf2_ros::Buffer > TFListenerPtr
tf2
dwb_local_planner::DebugDWBLocalPlanner::initialize
void initialize(const ros::NodeHandle &parent, const std::string &name, TFListenerPtr tf, nav_core2::Costmap::Ptr costmap) override
Override the DWB constructor to also advertise the services.
Definition:
debug_dwb_local_planner.cpp:45
ros::NodeHandle::param
T param(const std::string ¶m_name, const T &default_val) const
debug_dwb_local_planner.h
ros::spin
ROSCPP_DECL void spin()
tf
ROS_INFO
#define ROS_INFO(...)
ros::NodeHandle
dwb_local_planner
Author(s): David V. Lu!!
autogenerated on Sun May 18 2025 02:47:25