Skip to content

Commit 1c845b9

Browse files
committed
Merge branch 'master' of https://github.com/ros-planning/navigation2 into bump_013
2 parents 80babd7 + 2de31d7 commit 1c845b9

File tree

15 files changed

+329
-144
lines changed

15 files changed

+329
-144
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
ROS2 Navigation System
44

5-
[![Build Status](https://travis-ci.org/ros-planning/navigation2.svg?branch=master)](https://travis-ci.org/ros-planning/navigation2)
5+
Internal Travis CI: [![Build Status](https://travis-ci.org/ros-planning/navigation2.svg?branch=master)](https://travis-ci.org/ros-planning/navigation2)
6+
7+
ROS Build Farm PR Builder: [![Build Status](http://build.ros2.org/job/Cdev__navigation2__ubuntu_bionic_amd64/badge/icon)](http://build.ros2.org/job/Cdev__navigation2__ubuntu_bionic_amd64/)
68

79
# Overview
810
The ROS 2 Navigation System is the control system that enables a robot to autonomously reach a goal state, such as a specific position and orientation relative to a specific map. Given a current pose, a map, and a goal, such as a destination pose, the navigation system generates a plan to reach the goal, and outputs commands to autonomously drive the robot, respecting any safety constraints and avoiding obstacles encountered along the way.

nav2_bringup/launch/nav2_params.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,22 @@ DwbController:
2121
local_costmap:
2222
local_costmap:
2323
ros__parameters:
24+
obstacle_layer:
25+
enabled: False
2426
always_send_full_costmap: True
27+
observation_sources: scan
28+
scan:
29+
topic: /scan
30+
max_obstacle_height: 2.0
31+
clearing: True
2532
global_costmap:
2633
global_costmap:
2734
ros__parameters:
35+
obstacle_layer:
36+
enabled: False
2837
always_send_full_costmap: True
38+
observation_sources: scan
39+
scan:
40+
topic: /scan
41+
max_obstacle_height: 2.0
42+
clearing: True

nav2_costmap_2d/plugins/obstacle_layer.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ void ObstacleLayer::onInitialize()
110110
node_->get_parameter_or(source + "." + "min_obstacle_height", min_obstacle_height, 0.0);
111111
node_->get_parameter_or(source + "." + "max_obstacle_height", max_obstacle_height, 0.0);
112112
node_->get_parameter_or(source + "." + "inf_is_valid", inf_is_valid, false);
113-
node_->get_parameter_or(source + "." + "marking", marking, false);
113+
node_->get_parameter_or(source + "." + "marking", marking, true);
114114
node_->get_parameter_or(source + "." + "clearing", clearing, false);
115115

116116
if (!(data_type == "PointCloud2" || data_type == "LaserScan")) {
@@ -120,15 +120,13 @@ void ObstacleLayer::onInitialize()
120120
"Only topics that use point cloud2s or laser scans are currently supported");
121121
}
122122

123-
std::string raytrace_range_param_name, obstacle_range_param_name;
124-
125123
// get the obstacle range for the sensor
126124
double obstacle_range;
127125
node_->get_parameter_or(source + "." + "obstacle_range", obstacle_range, 2.5);
128126

129127
// get the raytrace range for the sensor
130128
double raytrace_range;
131-
node_->get_parameter_or(source + "." + "raytrace_range", obstacle_range, 3.0);
129+
node_->get_parameter_or(source + "." + "raytrace_range", raytrace_range, 3.0);
132130

133131
RCLCPP_DEBUG(node_->get_logger(),
134132
"Creating an observation buffer for source %s, topic %s, frame %s",

nav2_dwb_controller/dwb_plugins/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ find_package(nav_2d_utils REQUIRED)
1818
find_package(pluginlib REQUIRED)
1919
find_package(rclcpp REQUIRED)
2020
find_package(nav2_util REQUIRED)
21+
find_package(nav2_dynamic_params REQUIRED)
2122

2223
set(dependencies
2324
angles
@@ -27,6 +28,7 @@ set(dependencies
2728
pluginlib
2829
rclcpp
2930
nav2_util
31+
nav2_dynamic_params
3032
)
3133

3234
include_directories(

nav2_dwb_controller/dwb_plugins/include/dwb_plugins/kinematic_parameters.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737

3838
#include <memory>
3939
#include "rclcpp/rclcpp.hpp"
40+
#include "nav2_dynamic_params/dynamic_params_client.hpp"
4041

4142
namespace dwb_plugins
4243
{
@@ -104,7 +105,7 @@ class KinematicParameters
104105
double min_speed_xy_sq_, max_speed_xy_sq_;
105106

106107
void reconfigureCB();
107-
// std::shared_ptr<dynamic_reconfigure::Server<KinematicParamsConfig> > dsrv_;
108+
std::unique_ptr<nav2_dynamic_params::DynamicParamsClient> dsrv_;
108109
};
109110

110111
} // namespace dwb_plugins

nav2_dwb_controller/dwb_plugins/package.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
<depend>pluginlib</depend>
2121
<depend>rclcpp</depend>
2222
<depend>nav2_util</depend>
23+
<depend>nav2_dynamic_params</depend>
2324

2425
<test_depend>ament_lint_common</test_depend>
2526
<test_depend>ament_lint_auto</test_depend>

nav2_dwb_controller/dwb_plugins/src/kinematic_parameters.cpp

Lines changed: 35 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -85,46 +85,47 @@ void KinematicParameters::initialize(const std::shared_ptr<rclcpp::Node> & nh)
8585
setDecelerationAsNeeded(nh, "y");
8686
setDecelerationAsNeeded(nh, "theta");
8787

88-
// TODO(crdelsey): Handle dynamic params
89-
// the rest of the initial values are loaded through the dynamic reconfigure mechanisms
90-
// dsrv_ = std::make_shared<dynamic_reconfigure::Server<KinematicParamsConfig> >(nh);
91-
// dynamic_reconfigure::Server<KinematicParamsConfig>::CallbackType cb =
92-
// boost::bind(&KinematicParameters::reconfigureCB, this, _1, _2);
93-
reconfigureCB();
88+
dsrv_ = std::make_unique<nav2_dynamic_params::DynamicParamsClient>(nh);
89+
dsrv_->add_parameters({
90+
"min_vel_x",
91+
"min_vel_y",
92+
"max_vel_x",
93+
"max_vel_y",
94+
"max_vel_theta",
95+
"min_speed_xy",
96+
"max_speed_xy",
97+
"min_speed_theta",
98+
"acc_lim_x",
99+
"acc_lim_y",
100+
"acc_lim_theta",
101+
"decel_lim_x",
102+
"decel_lim_y",
103+
"decel_lim_theta"
104+
});
105+
dsrv_->set_callback([this]() {reconfigureCB();});
94106
}
95107

108+
#define UPDATE_PARAMETER(name) dsrv_->get_event_param_or(#name, name ## _, 0.0)
96109
void KinematicParameters::reconfigureCB()
97110
{
98-
// TODO(crdelsey): Remove hard coded parameters when dynamic_reconfigure is in
99-
min_vel_x_ = -0.26;
100-
max_vel_x_ = 0.26;
101-
max_vel_theta_ = 1.0;
102-
103-
max_speed_xy_ = max_vel_x_;
104-
105-
acc_lim_x_ = 2.5;
106-
acc_lim_theta_ = 3.2;
107-
decel_lim_x_ = -acc_lim_x_;
108-
decel_lim_theta_ = -acc_lim_theta_;
109-
110-
// min_vel_x_ = config.min_vel_x;
111-
// min_vel_y_ = config.min_vel_y;
112-
// max_vel_x_ = config.max_vel_x;
113-
// max_vel_y_ = config.max_vel_y;
114-
// max_vel_theta_ = config.max_vel_theta;
115-
//
116-
// min_speed_xy_ = config.min_speed_xy;
117-
// max_speed_xy_ = config.max_speed_xy;
111+
UPDATE_PARAMETER(min_vel_x);
112+
UPDATE_PARAMETER(min_vel_y);
113+
UPDATE_PARAMETER(max_vel_x);
114+
UPDATE_PARAMETER(max_vel_y);
115+
UPDATE_PARAMETER(max_vel_theta);
116+
117+
UPDATE_PARAMETER(min_speed_xy);
118+
UPDATE_PARAMETER(max_speed_xy);
118119
min_speed_xy_sq_ = min_speed_xy_ * min_speed_xy_;
119120
max_speed_xy_sq_ = max_speed_xy_ * max_speed_xy_;
120-
// min_speed_theta_ = config.min_speed_theta;
121-
//
122-
// acc_lim_x_ = config.acc_lim_x;
123-
// acc_lim_y_ = config.acc_lim_y;
124-
// acc_lim_theta_ = config.acc_lim_theta;
125-
// decel_lim_x_ = config.decel_lim_x;
126-
// decel_lim_y_ = config.decel_lim_y;
127-
// decel_lim_theta_ = config.decel_lim_theta;
121+
UPDATE_PARAMETER(min_speed_theta);
122+
123+
UPDATE_PARAMETER(acc_lim_x);
124+
UPDATE_PARAMETER(acc_lim_y);
125+
UPDATE_PARAMETER(acc_lim_theta);
126+
UPDATE_PARAMETER(decel_lim_x);
127+
UPDATE_PARAMETER(decel_lim_y);
128+
UPDATE_PARAMETER(decel_lim_theta);
128129
}
129130

130131
bool KinematicParameters::isValidSpeed(double x, double y, double theta)

nav2_dwb_controller/dwb_plugins/test/CMakeLists.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,5 @@ ament_add_gtest(vtest velocity_iterator_test.cpp)
33
ament_add_gtest(goal_checker goal_checker.cpp)
44
target_link_libraries(goal_checker simple_goal_checker stopped_goal_checker)
55

6-
# Re-enable when DWB reads kinematic parameters
7-
# ament_add_gtest(twist_gen_test twist_gen.cpp)
8-
# target_link_libraries(twist_gen_test standard_traj_generator)
6+
ament_add_gtest(twist_gen_test twist_gen.cpp)
7+
target_link_libraries(twist_gen_test standard_traj_generator)

nav2_dwb_controller/dwb_plugins/test/twist_gen.cpp

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ TEST(VelocityIterator, max_xy)
152152
TEST(VelocityIterator, min_xy)
153153
{
154154
auto nh = makeTestNode("min_xy");
155-
nh->set_parameters({rclcpp::Parameter("min_speed_xy", -1)});
155+
nh->set_parameters({rclcpp::Parameter("min_speed_xy", -1.0)});
156156
StandardTrajectoryGenerator gen;
157157
gen.initialize(nh);
158158
std::vector<nav_2d_msgs::msg::Twist2D> twists = gen.getTwists(zero);
@@ -164,7 +164,7 @@ TEST(VelocityIterator, min_xy)
164164
TEST(VelocityIterator, min_theta)
165165
{
166166
auto nh = makeTestNode("min_theta");
167-
nh->set_parameters({rclcpp::Parameter("min_speed_theta", -1)});
167+
nh->set_parameters({rclcpp::Parameter("min_speed_theta", -1.0)});
168168
StandardTrajectoryGenerator gen;
169169
gen.initialize(nh);
170170
std::vector<nav_2d_msgs::msg::Twist2D> twists = gen.getTwists(zero);
@@ -177,8 +177,8 @@ TEST(VelocityIterator, no_limits)
177177
{
178178
auto nh = makeTestNode("no_limits");
179179
nh->set_parameters({rclcpp::Parameter("max_speed_xy", -1.0)});
180-
nh->set_parameters({rclcpp::Parameter("min_speed_xy", -1)});
181-
nh->set_parameters({rclcpp::Parameter("min_speed_theta", -1)});
180+
nh->set_parameters({rclcpp::Parameter("min_speed_xy", -1.0)});
181+
nh->set_parameters({rclcpp::Parameter("min_speed_theta", -1.0)});
182182
StandardTrajectoryGenerator gen;
183183
gen.initialize(nh);
184184
std::vector<nav_2d_msgs::msg::Twist2D> twists = gen.getTwists(zero);
@@ -191,8 +191,8 @@ TEST(VelocityIterator, no_limits_samples)
191191
{
192192
auto nh = makeTestNode("no_limits_samples");
193193
nh->set_parameters({rclcpp::Parameter("max_speed_xy", -1.0)});
194-
nh->set_parameters({rclcpp::Parameter("min_speed_xy", -1)});
195-
nh->set_parameters({rclcpp::Parameter("min_speed_theta", -1)});
194+
nh->set_parameters({rclcpp::Parameter("min_speed_xy", -1.0)});
195+
nh->set_parameters({rclcpp::Parameter("min_speed_theta", -1.0)});
196196
int x_samples = 10, y_samples = 3, theta_samples = 5;
197197
nh->set_parameters({rclcpp::Parameter("vx_samples", x_samples)});
198198
nh->set_parameters({rclcpp::Parameter("vy_samples", y_samples)});
@@ -224,7 +224,7 @@ TEST(VelocityIterator, dwa_gen)
224224
{
225225
auto nh = makeTestNode("dwa_gen");
226226
nh->set_parameters({rclcpp::Parameter("use_dwa", true)});
227-
nh->set_parameters({rclcpp::Parameter("min_speed_theta", -1)});
227+
nh->set_parameters({rclcpp::Parameter("min_speed_theta", -1.0)});
228228
dwb_plugins::LimitedAccelGenerator gen;
229229
gen.initialize(nh);
230230
std::vector<nav_2d_msgs::msg::Twist2D> twists = gen.getTwists(zero);
@@ -236,7 +236,7 @@ TEST(VelocityIterator, dwa_gen)
236236
TEST(VelocityIterator, dwa_gen_no_param)
237237
{
238238
auto nh = makeTestNode("dwa_gen_no_param");
239-
nh->set_parameters({rclcpp::Parameter("min_speed_theta", -1)});
239+
nh->set_parameters({rclcpp::Parameter("min_speed_theta", -1.0)});
240240
dwb_plugins::LimitedAccelGenerator gen;
241241
gen.initialize(nh);
242242
std::vector<nav_2d_msgs::msg::Twist2D> twists = gen.getTwists(zero);
@@ -248,7 +248,7 @@ TEST(VelocityIterator, nonzero)
248248
{
249249
auto nh = makeTestNode("nonzero");
250250
nh->set_parameters({rclcpp::Parameter("use_dwa", true)});
251-
nh->set_parameters({rclcpp::Parameter("min_speed_theta", -1)});
251+
nh->set_parameters({rclcpp::Parameter("min_speed_theta", -1.0)});
252252
dwb_plugins::LimitedAccelGenerator gen;
253253
gen.initialize(nh);
254254
nav_2d_msgs::msg::Twist2D initial;
@@ -431,7 +431,9 @@ TEST(TrajectoryGenerator, dwa)
431431
int main(int argc, char ** argv)
432432
{
433433
forward.x = 0.3;
434-
rclcpp::init(argc, argv);
434+
rclcpp::init(0, nullptr);
435435
testing::InitGoogleTest(&argc, argv);
436-
return RUN_ALL_TESTS();
436+
int ret = RUN_ALL_TESTS();
437+
rclcpp::shutdown();
438+
return ret;
437439
}

nav2_map_server/CMakeLists.txt

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ find_package(SDL REQUIRED)
1818
find_package(SDL_image REQUIRED)
1919
find_package(yaml_cpp_vendor REQUIRED)
2020
find_package(std_msgs REQUIRED)
21+
find_package(tf2 REQUIRED)
2122

2223
include_directories(
2324
include
@@ -26,35 +27,51 @@ include_directories(
2627
${SDL_IMAGE_INCLUDE_DIRS}
2728
)
2829

29-
set(executable_name map_server)
30+
set(map_server_executable map_server)
3031

31-
add_executable(${executable_name}
32+
set(map_saver_executable map_saver)
33+
34+
add_executable(${map_server_executable}
3235
src/main.cpp
3336
)
3437

35-
set(library_name ${executable_name}_core)
38+
add_executable(${map_saver_executable}
39+
src/map_saver.cpp
40+
)
41+
42+
set(library_name ${map_server_executable}_core)
3643

3744
add_library(${library_name} SHARED
3845
src/occ_grid_loader.cpp
3946
src/map_server.cpp
4047
)
4148

42-
set(dependencies
49+
set(map_server_dependencies
4350
rclcpp
4451
nav_msgs
4552
yaml_cpp_vendor
4653
std_msgs
4754
)
4855

49-
ament_target_dependencies(${executable_name}
50-
${dependencies}
56+
set(map_saver_dependencies
57+
rclcpp
58+
nav_msgs
59+
tf2
60+
)
61+
62+
ament_target_dependencies(${map_server_executable}
63+
${map_server_dependencies}
64+
)
65+
66+
ament_target_dependencies(${map_saver_executable}
67+
${map_saver_dependencies}
5168
)
5269

5370
ament_target_dependencies(${library_name}
54-
${dependencies}
71+
${map_server_dependencies}
5572
)
5673

57-
target_link_libraries(${executable_name}
74+
target_link_libraries(${map_server_executable}
5875
${library_name}
5976
)
6077

@@ -63,7 +80,8 @@ target_link_libraries(${library_name}
6380
${SDL_LIBRARY}
6481
${SDL_IMAGE_LIBRARIES}
6582
)
66-
install(TARGETS ${executable_name} ${library_name}
83+
84+
install(TARGETS ${map_server_executable} ${library_name} ${map_saver_executable}
6785
ARCHIVE DESTINATION lib
6886
LIBRARY DESTINATION lib
6987
RUNTIME DESTINATION lib/${PROJECT_NAME}

0 commit comments

Comments
 (0)