Skip to content

Commit ff1af93

Browse files
brkay54Berkay Karaman
and
Berkay Karaman
authored
refactor(obstacle_collision_checker): add some debugs, change QoS (#2191)
Signed-off-by: Berkay Karaman <berkay@leodrive.ai> Signed-off-by: Berkay Karaman <berkay@leodrive.ai> Co-authored-by: Berkay Karaman <berkay@leodrive.ai>
1 parent 3a69438 commit ff1af93

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

control/obstacle_collision_checker/src/obstacle_collision_checker_node/obstacle_collision_checker.cpp

+5-3
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ autoware_auto_planning_msgs::msg::Trajectory ObstacleCollisionChecker::cutTrajec
163163
const auto remain_distance = length - total_length;
164164

165165
// Over length
166-
if (remain_distance <= 0) {
166+
if (remain_distance <= 0.0) {
167167
break;
168168
}
169169

@@ -239,7 +239,9 @@ bool ObstacleCollisionChecker::willCollide(
239239
const pcl::PointCloud<pcl::PointXYZ> & obstacle_pointcloud,
240240
const std::vector<LinearRing2d> & vehicle_footprints)
241241
{
242-
for (const auto & vehicle_footprint : vehicle_footprints) {
242+
for (size_t i = 1; i < vehicle_footprints.size(); i++) {
243+
// skip first footprint because surround obstacle checker handle it
244+
const auto & vehicle_footprint = vehicle_footprints.at(i);
243245
if (hasCollision(obstacle_pointcloud, vehicle_footprint)) {
244246
RCLCPP_WARN(
245247
rclcpp::get_logger("obstacle_collision_checker"), "ObstacleCollisionChecker::willCollide");
@@ -254,7 +256,7 @@ bool ObstacleCollisionChecker::hasCollision(
254256
const pcl::PointCloud<pcl::PointXYZ> & obstacle_pointcloud,
255257
const LinearRing2d & vehicle_footprint)
256258
{
257-
for (const auto & point : obstacle_pointcloud) {
259+
for (const auto & point : obstacle_pointcloud.points) {
258260
if (boost::geometry::within(
259261
tier4_autoware_utils::Point2d{point.x, point.y}, vehicle_footprint)) {
260262
RCLCPP_WARN(

control/obstacle_collision_checker/src/obstacle_collision_checker_node/obstacle_collision_checker_node.cpp

+10-3
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ ObstacleCollisionCheckerNode::ObstacleCollisionCheckerNode(const rclcpp::NodeOpt
7676
transform_listener_ = std::make_shared<tier4_autoware_utils::TransformListener>(this);
7777

7878
sub_obstacle_pointcloud_ = create_subscription<sensor_msgs::msg::PointCloud2>(
79-
"input/obstacle_pointcloud", 1,
79+
"input/obstacle_pointcloud", rclcpp::SensorDataQoS(),
8080
std::bind(&ObstacleCollisionCheckerNode::onObstaclePointcloud, this, _1));
8181
sub_reference_trajectory_ = create_subscription<autoware_auto_planning_msgs::msg::Trajectory>(
8282
"input/reference_trajectory", 1,
@@ -199,8 +199,15 @@ void ObstacleCollisionCheckerNode::onTimer()
199199
current_pose_ = self_pose_listener_->getCurrentPose();
200200
if (obstacle_pointcloud_) {
201201
const auto & header = obstacle_pointcloud_->header;
202-
obstacle_transform_ = transform_listener_->getTransform(
203-
"map", header.frame_id, header.stamp, rclcpp::Duration::from_seconds(0.01));
202+
try {
203+
obstacle_transform_ = transform_listener_->getTransform(
204+
"map", header.frame_id, header.stamp, rclcpp::Duration::from_seconds(0.01));
205+
} catch (tf2::TransformException & ex) {
206+
RCLCPP_INFO(
207+
this->get_logger(), "Could not transform map to %s: %s", header.frame_id.c_str(),
208+
ex.what());
209+
return;
210+
}
204211
}
205212

206213
if (!isDataReady()) {

0 commit comments

Comments
 (0)