Skip to content

Commit 23f4c86

Browse files
authored
refactor(obstacle_collision_checker): move to autoware namespace (#9047)
Signed-off-by: Maxime CLEMENT <maxime.clement@tier4.jp>
1 parent a3c7ede commit 23f4c86

15 files changed

+155
-110
lines changed

.github/CODEOWNERS

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ control/autoware_trajectory_follower_base/** takamasa.horibe@tier4.jp takayuki.m
5858
control/autoware_trajectory_follower_node/** takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp
5959
control/autoware_vehicle_cmd_gate/** takamasa.horibe@tier4.jp tomoya.kimura@tier4.jp
6060
control/control_performance_analysis/** berkay@leodrive.ai fumiya.watanabe@tier4.jp satoshi.ota@tier4.jp shumpei.wakabayashi@tier4.jp taiki.tanaka@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp tomoya.kimura@tier4.jp
61-
control/obstacle_collision_checker/** fumiya.watanabe@tier4.jp satoshi.ota@tier4.jp shumpei.wakabayashi@tier4.jp taiki.tanaka@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp tomoya.kimura@tier4.jp
61+
control/autoware_obstacle_collision_checker/** fumiya.watanabe@tier4.jp satoshi.ota@tier4.jp shumpei.wakabayashi@tier4.jp taiki.tanaka@tier4.jp takamasa.horibe@tier4.jp takayuki.murooka@tier4.jp tomoya.kimura@tier4.jp
6262
control/predicted_path_checker/** berkay@leodrive.ai
6363
evaluator/autoware_control_evaluator/** daniel.sanchez@tier4.jp kosuke.takeuchi@tier4.jp takayuki.murooka@tier4.jp temkei.kem@tier4.jp
6464
evaluator/autoware_evaluator_utils/** daniel.sanchez@tier4.jp takayuki.murooka@tier4.jp

control/obstacle_collision_checker/CMakeLists.txt control/autoware_obstacle_collision_checker/CMakeLists.txt

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
cmake_minimum_required(VERSION 3.14)
2-
project(obstacle_collision_checker)
2+
project(autoware_obstacle_collision_checker)
33

44
find_package(autoware_cmake REQUIRED)
55
autoware_package()
@@ -12,12 +12,11 @@ include_directories(
1212
)
1313

1414
ament_auto_add_library(obstacle_collision_checker SHARED
15-
src/obstacle_collision_checker_node/obstacle_collision_checker.cpp
16-
src/obstacle_collision_checker_node/obstacle_collision_checker_node.cpp
15+
DIRECTORY src
1716
)
1817

1918
rclcpp_components_register_node(obstacle_collision_checker
20-
PLUGIN "obstacle_collision_checker::ObstacleCollisionCheckerNode"
19+
PLUGIN "autoware::obstacle_collision_checker::ObstacleCollisionCheckerNode"
2120
EXECUTABLE obstacle_collision_checker_node
2221
)
2322

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// Copyright 2024 Tier IV, Inc. All rights reserved.
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
15+
#ifndef AUTOWARE__OBSTACLE_COLLISION_CHECKER__DEBUG_HPP_
16+
#define AUTOWARE__OBSTACLE_COLLISION_CHECKER__DEBUG_HPP_
17+
18+
#include "autoware/obstacle_collision_checker/obstacle_collision_checker.hpp"
19+
20+
#include <visualization_msgs/msg/marker_array.hpp>
21+
22+
namespace autoware::obstacle_collision_checker
23+
{
24+
/// @brief create debug markers of the given output
25+
/// @param output structure with output data calculated by the obstacle_collision_checker module
26+
/// @param base_link_z current z value of the base_link in map frame
27+
/// @param now current time
28+
/// @return debug markers
29+
visualization_msgs::msg::MarkerArray create_marker_array(
30+
const Output & output, const double base_link_z, const rclcpp::Time & now);
31+
} // namespace autoware::obstacle_collision_checker
32+
#endif // AUTOWARE__OBSTACLE_COLLISION_CHECKER__DEBUG_HPP_

control/obstacle_collision_checker/include/obstacle_collision_checker/obstacle_collision_checker.hpp control/autoware_obstacle_collision_checker/include/autoware/obstacle_collision_checker/obstacle_collision_checker.hpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
#ifndef OBSTACLE_COLLISION_CHECKER__OBSTACLE_COLLISION_CHECKER_HPP_
16-
#define OBSTACLE_COLLISION_CHECKER__OBSTACLE_COLLISION_CHECKER_HPP_
15+
#ifndef AUTOWARE__OBSTACLE_COLLISION_CHECKER__OBSTACLE_COLLISION_CHECKER_HPP_
16+
#define AUTOWARE__OBSTACLE_COLLISION_CHECKER__OBSTACLE_COLLISION_CHECKER_HPP_
1717

1818
#include <autoware_vehicle_info_utils/vehicle_info_utils.hpp>
1919

@@ -30,7 +30,7 @@
3030
#include <string>
3131
#include <vector>
3232

33-
namespace obstacle_collision_checker
33+
namespace autoware::obstacle_collision_checker
3434
{
3535
using autoware::universe_utils::LinearRing2d;
3636

@@ -89,6 +89,6 @@ bool will_collide(
8989
bool has_collision(
9090
const pcl::PointCloud<pcl::PointXYZ> & obstacle_pointcloud,
9191
const LinearRing2d & vehicle_footprint);
92-
} // namespace obstacle_collision_checker
92+
} // namespace autoware::obstacle_collision_checker
9393

94-
#endif // OBSTACLE_COLLISION_CHECKER__OBSTACLE_COLLISION_CHECKER_HPP_
94+
#endif // AUTOWARE__OBSTACLE_COLLISION_CHECKER__OBSTACLE_COLLISION_CHECKER_HPP_

control/obstacle_collision_checker/include/obstacle_collision_checker/obstacle_collision_checker_node.hpp control/autoware_obstacle_collision_checker/include/autoware/obstacle_collision_checker/obstacle_collision_checker_node.hpp

+6-10
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
#ifndef OBSTACLE_COLLISION_CHECKER__OBSTACLE_COLLISION_CHECKER_NODE_HPP_
16-
#define OBSTACLE_COLLISION_CHECKER__OBSTACLE_COLLISION_CHECKER_NODE_HPP_
15+
#ifndef AUTOWARE__OBSTACLE_COLLISION_CHECKER__OBSTACLE_COLLISION_CHECKER_NODE_HPP_
16+
#define AUTOWARE__OBSTACLE_COLLISION_CHECKER__OBSTACLE_COLLISION_CHECKER_NODE_HPP_
1717

18-
#include "obstacle_collision_checker/obstacle_collision_checker.hpp"
18+
#include "autoware/obstacle_collision_checker/obstacle_collision_checker.hpp"
1919

2020
#include <autoware/universe_utils/geometry/geometry.hpp>
2121
#include <autoware/universe_utils/ros/debug_publisher.hpp>
@@ -30,12 +30,11 @@
3030
#include <geometry_msgs/msg/pose_stamped.hpp>
3131
#include <nav_msgs/msg/odometry.hpp>
3232
#include <sensor_msgs/msg/point_cloud2.hpp>
33-
#include <visualization_msgs/msg/marker_array.hpp>
3433

3534
#include <memory>
3635
#include <vector>
3736

38-
namespace obstacle_collision_checker
37+
namespace autoware::obstacle_collision_checker
3938
{
4039
struct NodeParam
4140
{
@@ -101,10 +100,7 @@ class ObstacleCollisionCheckerNode : public rclcpp::Node
101100
diagnostic_updater::Updater updater_;
102101

103102
void check_lane_departure(diagnostic_updater::DiagnosticStatusWrapper & stat);
104-
105-
// Visualization
106-
visualization_msgs::msg::MarkerArray create_marker_array() const;
107103
};
108-
} // namespace obstacle_collision_checker
104+
} // namespace autoware::obstacle_collision_checker
109105

110-
#endif // OBSTACLE_COLLISION_CHECKER__OBSTACLE_COLLISION_CHECKER_NODE_HPP_
106+
#endif // AUTOWARE__OBSTACLE_COLLISION_CHECKER__OBSTACLE_COLLISION_CHECKER_NODE_HPP_

control/obstacle_collision_checker/launch/obstacle_collision_checker.launch.xml control/autoware_obstacle_collision_checker/launch/obstacle_collision_checker.launch.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
<arg name="input/reference_trajectory" default="/planning/scenario_planning/trajectory"/>
55
<arg name="input/predicted_trajectory" default="/control/trajectory_follower/predicted_trajectory"/>
66
<arg name="input/odometry" default="/localization/kinematic_state"/>
7-
<arg name="config_file" default="$(find-pkg-share obstacle_collision_checker)/config/obstacle_collision_checker.param.yaml"/>
7+
<arg name="config_file" default="$(find-pkg-share autoware_obstacle_collision_checker)/config/obstacle_collision_checker.param.yaml"/>
88
<!-- vehicle info -->
99
<arg name="vehicle_info_param_file" default="$(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml"/>
1010

11-
<node pkg="obstacle_collision_checker" exec="obstacle_collision_checker_node" name="obstacle_collision_checker_node" output="screen">
11+
<node pkg="autoware_obstacle_collision_checker" exec="obstacle_collision_checker_node" name="obstacle_collision_checker_node" output="screen">
1212
<param from="$(var config_file)"/>
1313
<param from="$(var vehicle_info_param_file)"/>
1414
<remap from="input/lanelet_map_bin" to="$(var input/lanelet_map_bin)"/>

control/obstacle_collision_checker/package.xml control/autoware_obstacle_collision_checker/package.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0"?>
22
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
33
<package format="3">
4-
<name>obstacle_collision_checker</name>
4+
<name>autoware_obstacle_collision_checker</name>
55
<version>0.1.0</version>
66
<description>The obstacle_collision_checker package</description>
77
<maintainer email="taiki.tanaka@tier4.jp">Taiki Tanaka</maintainer>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
// Copyright 2024 Tier IV, Inc. All rights reserved.
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
15+
#include "autoware/obstacle_collision_checker/debug.hpp"
16+
17+
#include <autoware/universe_utils/ros/marker_helper.hpp>
18+
19+
namespace autoware::obstacle_collision_checker
20+
{
21+
visualization_msgs::msg::MarkerArray create_marker_array(
22+
const Output & output, const double base_link_z, const rclcpp::Time & now)
23+
{
24+
using autoware::universe_utils::createDefaultMarker;
25+
using autoware::universe_utils::createMarkerColor;
26+
using autoware::universe_utils::createMarkerScale;
27+
28+
visualization_msgs::msg::MarkerArray marker_array;
29+
30+
if (output.resampled_trajectory.points.size() >= 2) {
31+
// Line of resampled_trajectory
32+
{
33+
auto marker = createDefaultMarker(
34+
"map", now, "resampled_trajectory_line", 0, visualization_msgs::msg::Marker::LINE_STRIP,
35+
createMarkerScale(0.05, 0, 0), createMarkerColor(1.0, 1.0, 1.0, 0.999));
36+
37+
for (const auto & p : output.resampled_trajectory.points) {
38+
marker.points.push_back(p.pose.position);
39+
marker.colors.push_back(marker.color);
40+
}
41+
42+
marker_array.markers.push_back(marker);
43+
}
44+
45+
// Points of resampled_trajectory
46+
{
47+
auto marker = createDefaultMarker(
48+
"map", now, "resampled_trajectory_points", 0, visualization_msgs::msg::Marker::SPHERE_LIST,
49+
createMarkerScale(0.1, 0.1, 0.1), createMarkerColor(0.0, 1.0, 0.0, 0.999));
50+
51+
for (const auto & p : output.resampled_trajectory.points) {
52+
marker.points.push_back(p.pose.position);
53+
marker.colors.push_back(marker.color);
54+
}
55+
56+
marker_array.markers.push_back(marker);
57+
}
58+
}
59+
60+
// Vehicle Footprints
61+
{
62+
const auto color_ok = createMarkerColor(0.0, 1.0, 0.0, 0.5);
63+
const auto color_will_collide = createMarkerColor(1.0, 0.0, 0.0, 0.5);
64+
65+
auto color = color_ok;
66+
if (output.will_collide) {
67+
color = color_will_collide;
68+
}
69+
70+
auto marker = createDefaultMarker(
71+
"map", now, "vehicle_footprints", 0, visualization_msgs::msg::Marker::LINE_LIST,
72+
createMarkerScale(0.05, 0, 0), color);
73+
74+
for (const auto & vehicle_footprint : output.vehicle_footprints) {
75+
for (size_t i = 0; i < vehicle_footprint.size() - 1; ++i) {
76+
const auto & p1 = vehicle_footprint.at(i);
77+
const auto & p2 = vehicle_footprint.at(i + 1);
78+
79+
marker.points.push_back(toMsg(p1.to_3d(base_link_z)));
80+
marker.points.push_back(toMsg(p2.to_3d(base_link_z)));
81+
}
82+
}
83+
84+
marker_array.markers.push_back(marker);
85+
}
86+
87+
return marker_array;
88+
}
89+
} // namespace autoware::obstacle_collision_checker
+3-3
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
#include "obstacle_collision_checker/obstacle_collision_checker.hpp"
15+
#include "autoware/obstacle_collision_checker/obstacle_collision_checker.hpp"
1616

1717
#include <autoware/universe_utils/geometry/geometry.hpp>
1818
#include <autoware/universe_utils/math/normalization.hpp>
@@ -74,7 +74,7 @@ double calc_braking_distance(
7474

7575
} // namespace
7676

77-
namespace obstacle_collision_checker
77+
namespace autoware::obstacle_collision_checker
7878
{
7979
Output check_for_collisions(const Input & input)
8080
{
@@ -253,4 +253,4 @@ bool has_collision(
253253

254254
return false;
255255
}
256-
} // namespace obstacle_collision_checker
256+
} // namespace autoware::obstacle_collision_checker
+9-79
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,20 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
#include "obstacle_collision_checker/obstacle_collision_checker_node.hpp"
15+
#include "autoware/obstacle_collision_checker/obstacle_collision_checker_node.hpp"
16+
17+
#include "autoware/obstacle_collision_checker/debug.hpp"
1618

1719
#include <autoware/universe_utils/geometry/geometry.hpp>
1820
#include <autoware/universe_utils/math/unit_conversion.hpp>
19-
#include <autoware/universe_utils/ros/marker_helper.hpp>
2021
#include <autoware/universe_utils/ros/update_param.hpp>
2122
#include <autoware_vehicle_info_utils/vehicle_info_utils.hpp>
2223

2324
#include <memory>
2425
#include <string>
2526
#include <vector>
2627

27-
namespace obstacle_collision_checker
28+
namespace autoware::obstacle_collision_checker
2829
{
2930
ObstacleCollisionCheckerNode::ObstacleCollisionCheckerNode(const rclcpp::NodeOptions & node_options)
3031
: Node("obstacle_collision_checker_node", node_options),
@@ -45,7 +46,7 @@ ObstacleCollisionCheckerNode::ObstacleCollisionCheckerNode(const rclcpp::NodeOpt
4546

4647
// Dynamic Reconfigure
4748
set_param_res_ = this->add_on_set_parameters_callback(std::bind(
48-
&::obstacle_collision_checker::ObstacleCollisionCheckerNode::param_callback, this, _1));
49+
&autoware::obstacle_collision_checker::ObstacleCollisionCheckerNode::param_callback, this, _1));
4950

5051
// Subscriber
5152
self_pose_listener_ = std::make_shared<autoware::universe_utils::SelfPoseListener>(this);
@@ -207,7 +208,8 @@ void ObstacleCollisionCheckerNode::on_timer()
207208

208209
updater_.force_update();
209210

210-
debug_publisher_->publish("marker_array", create_marker_array());
211+
debug_publisher_->publish(
212+
"marker_array", create_marker_array(output_, current_pose_->pose.position.z, this->now()));
211213

212214
time_publisher_->publish(output_.processing_time_map);
213215
}
@@ -256,79 +258,7 @@ void ObstacleCollisionCheckerNode::check_lane_departure(
256258

257259
stat.summary(level, msg);
258260
}
259-
260-
visualization_msgs::msg::MarkerArray ObstacleCollisionCheckerNode::create_marker_array() const
261-
{
262-
using autoware::universe_utils::createDefaultMarker;
263-
using autoware::universe_utils::createMarkerColor;
264-
using autoware::universe_utils::createMarkerScale;
265-
266-
visualization_msgs::msg::MarkerArray marker_array;
267-
268-
const auto base_link_z = current_pose_->pose.position.z;
269-
270-
if (output_.resampled_trajectory.points.size() >= 2) {
271-
// Line of resampled_trajectory
272-
{
273-
auto marker = createDefaultMarker(
274-
"map", this->now(), "resampled_trajectory_line", 0,
275-
visualization_msgs::msg::Marker::LINE_STRIP, createMarkerScale(0.05, 0, 0),
276-
createMarkerColor(1.0, 1.0, 1.0, 0.999));
277-
278-
for (const auto & p : output_.resampled_trajectory.points) {
279-
marker.points.push_back(p.pose.position);
280-
marker.colors.push_back(marker.color);
281-
}
282-
283-
marker_array.markers.push_back(marker);
284-
}
285-
286-
// Points of resampled_trajectory
287-
{
288-
auto marker = createDefaultMarker(
289-
"map", this->now(), "resampled_trajectory_points", 0,
290-
visualization_msgs::msg::Marker::SPHERE_LIST, createMarkerScale(0.1, 0.1, 0.1),
291-
createMarkerColor(0.0, 1.0, 0.0, 0.999));
292-
293-
for (const auto & p : output_.resampled_trajectory.points) {
294-
marker.points.push_back(p.pose.position);
295-
marker.colors.push_back(marker.color);
296-
}
297-
298-
marker_array.markers.push_back(marker);
299-
}
300-
}
301-
302-
// Vehicle Footprints
303-
{
304-
const auto color_ok = createMarkerColor(0.0, 1.0, 0.0, 0.5);
305-
const auto color_will_collide = createMarkerColor(1.0, 0.0, 0.0, 0.5);
306-
307-
auto color = color_ok;
308-
if (output_.will_collide) {
309-
color = color_will_collide;
310-
}
311-
312-
auto marker = createDefaultMarker(
313-
"map", this->now(), "vehicle_footprints", 0, visualization_msgs::msg::Marker::LINE_LIST,
314-
createMarkerScale(0.05, 0, 0), color);
315-
316-
for (const auto & vehicle_footprint : output_.vehicle_footprints) {
317-
for (size_t i = 0; i < vehicle_footprint.size() - 1; ++i) {
318-
const auto & p1 = vehicle_footprint.at(i);
319-
const auto & p2 = vehicle_footprint.at(i + 1);
320-
321-
marker.points.push_back(toMsg(p1.to_3d(base_link_z)));
322-
marker.points.push_back(toMsg(p2.to_3d(base_link_z)));
323-
}
324-
}
325-
326-
marker_array.markers.push_back(marker);
327-
}
328-
329-
return marker_array;
330-
}
331-
} // namespace obstacle_collision_checker
261+
} // namespace autoware::obstacle_collision_checker
332262

333263
#include <rclcpp_components/register_node_macro.hpp>
334-
RCLCPP_COMPONENTS_REGISTER_NODE(obstacle_collision_checker::ObstacleCollisionCheckerNode)
264+
RCLCPP_COMPONENTS_REGISTER_NODE(autoware::obstacle_collision_checker::ObstacleCollisionCheckerNode)

0 commit comments

Comments
 (0)