Skip to content

Commit fc61c9c

Browse files
use ObstacleArray and MotionModelInterface ptr args
Signed-off-by: Chiragkumar Makwana <[email protected]>
1 parent 0e36213 commit fc61c9c

File tree

3 files changed

+65
-26
lines changed

3 files changed

+65
-26
lines changed

nav2_dynamic_util/CMakeLists.txt

Lines changed: 42 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,26 +17,27 @@ find_package(visualization_msgs REQUIRED)
1717

1818
include_directories(include)
1919

20-
install(DIRECTORY include/
21-
DESTINATION include/${PROJECT_NAME}
20+
add_library(
21+
${PROJECT_NAME}
22+
SHARED
23+
src/tracked_obstacle_utils.cpp
2224
)
2325

24-
add_library(${PROJECT_NAME} SHARED
25-
src/tracked_obstacle_utils.cpp
26-
)
27-
# Link dependencies
28-
ament_target_dependencies(${PROJECT_NAME}
26+
ament_target_dependencies(
27+
${PROJECT_NAME}
28+
SYSTEM
2929
rclcpp
3030
geometry_msgs
3131
nav2_dynamic_msgs
3232
nav2_dynamic_motion_model
3333
)
3434

35-
# Export headers
36-
target_include_directories(${PROJECT_NAME} PUBLIC
37-
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
38-
$<INSTALL_INTERFACE:include>
35+
target_include_directories(${PROJECT_NAME}
36+
INTERFACE
37+
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
38+
"$<INSTALL_INTERFACE:include/${PROJECT_NAME}>"
3939
)
40+
target_link_libraries(${PROJECT_NAME} nav2_dynamic_motion_model::nav2_dynamic_motion_model)
4041

4142

4243
add_executable(tracked_obstacle_publisher src/tracked_obstacle_publisher.cpp)
@@ -49,9 +50,37 @@ ament_target_dependencies(tracked_obstacle_publisher
4950
visualization_msgs)
5051

5152

52-
install(TARGETS tracked_obstacle_publisher
53+
add_executable(test_util_node src/test_util_node.cpp)
54+
ament_target_dependencies(test_util_node
55+
rclcpp
56+
std_msgs
57+
geometry_msgs
58+
nav2_dynamic_msgs
59+
unique_identifier_msgs
60+
# nav2_dynamic_motion_model
61+
visualization_msgs)
62+
target_link_libraries(test_util_node ${PROJECT_NAME})
63+
64+
65+
install(DIRECTORY include/
66+
DESTINATION include/${PROJECT_NAME}
67+
)
68+
69+
70+
install(TARGETS
71+
tracked_obstacle_publisher
72+
test_util_node
5373
DESTINATION lib/${PROJECT_NAME})
5474

75+
# Install libraries
76+
install(
77+
TARGETS ${PROJECT_NAME}
78+
EXPORT export_${PROJECT_NAME}
79+
ARCHIVE DESTINATION lib
80+
LIBRARY DESTINATION lib
81+
RUNTIME DESTINATION bin
82+
)
83+
5584
if(BUILD_TESTING)
5685
find_package(ament_lint_auto REQUIRED)
5786
# the following line skips the linter which checks for copyrights
@@ -66,7 +95,7 @@ endif()
6695

6796

6897
# Export package
69-
ament_export_include_directories(include)
98+
ament_export_include_directories(include/${PROJECT_NAME})
7099
ament_export_libraries(${PROJECT_NAME})
71100

72101

nav2_dynamic_util/include/nav2_dynamic_util/tracked_obstacle_utils.hpp

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,26 @@
44
#include <rclcpp/rclcpp.hpp>
55
#include <std_msgs/msg/header.hpp>
66
#include <geometry_msgs/msg/pose.hpp>
7-
7+
#include "geometry_msgs/msg/pose_stamped.hpp"
88
#include <nav2_dynamic_msgs/msg/obstacle.hpp>
99
#include <nav2_dynamic_msgs/msg/obstacle_array.hpp>
10-
#include "nav2_dynamic_motion_model/motion_model_base.hpp"
10+
#include "nav2_dynamic_motion_model/motion_model_interface.hpp"
1111

1212
#include <random>
1313
#include <vector>
1414
#include <cmath>
1515

1616
namespace nav2_dynamic_util
1717
{
18-
geometry_msgs::msg::Pose getObstaclePoseAt(const double dt,
19-
const nav2_dynamic_msgs::msg::Obstacle obstacle,
20-
const std::shared_ptr<nav2_dynamic_motion_model::MotionModelInterface> &motion_model);
18+
geometry_msgs::msg::Pose getObstaclePoseAt(
19+
double dt,
20+
const nav2_dynamic_msgs::msg::Obstacle &obstacle,
21+
const std::shared_ptr<nav2_dynamic_motion_model::MotionModelInterface> &motion_model);
2122

23+
geometry_msgs::msg::PoseArray getObstaclePoseArrayAt(
24+
double dt,
25+
const nav2_dynamic_msgs::msg::ObstacleArray &obstacle_array,
26+
const std::shared_ptr<nav2_dynamic_motion_model::MotionModelInterface> &motion_model);
2227

2328
} // namespace
2429
#endif // NAV2_DYNAMIC_UTIL__TRACKED_OBSTACLE_UTILS_HPP_

nav2_dynamic_util/src/tracked_obstacle_utils.cpp

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,18 @@
33
namespace nav2_dynamic_util
44
{
55

6-
geometry_msgs::msg::Pose getObstaclePoseAt(const double dt,
7-
const nav2_dynamic_msgs::msg::Obstacle obstacle,
8-
const std::shared_ptr<nav2_dynamic_motion_model::MotionModelInterface> &motion_model)
9-
{
10-
11-
geometry_msgs::msg::Pose predicted_pose = motion_model->predictObstaclePose(obstacle, dt);
12-
return predicted_pose;
6+
geometry_msgs::msg::Pose getObstaclePoseAt(
7+
double dt,
8+
const nav2_dynamic_msgs::msg::Obstacle &obstacle,
9+
const std::shared_ptr<nav2_dynamic_motion_model::MotionModelInterface> &motion_model){
10+
return motion_model->predictObstaclePose(obstacle, dt);
11+
}
1312

13+
geometry_msgs::msg::PoseArray getObstaclePoseArrayAt(
14+
double dt,
15+
const nav2_dynamic_msgs::msg::ObstacleArray &obstacle_array,
16+
const std::shared_ptr<nav2_dynamic_motion_model::MotionModelInterface> &motion_model){
17+
return motion_model->predictObstaclePoseArray(obstacle_array, dt);
1418
}
15-
}
19+
20+
} // namespace nav2_dynamic_util

0 commit comments

Comments
 (0)