Skip to content

Commit 81cff56

Browse files
zulfaqar-azmi-t4KhalilSelyan
authored and
KhalilSelyan
committed
feat(pure_pursuit): add polling subscriber (#7330)
RT1-6699 add polling subscriber Signed-off-by: Muhammad Zulfaqar Azmi <zulfaqar.azmi@tier4.jp>
1 parent e835e0f commit 81cff56

File tree

2 files changed

+7
-21
lines changed

2 files changed

+7
-21
lines changed

control/pure_pursuit/include/pure_pursuit/pure_pursuit_node.hpp

+5-3
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
#include "pure_pursuit/pure_pursuit_viz.hpp"
3535

3636
#include <rclcpp/rclcpp.hpp>
37+
#include <tier4_autoware_utils/ros/polling_subscriber.hpp>
3738
#include <tier4_autoware_utils/ros/self_pose_listener.hpp>
3839

3940
#include <autoware_control_msgs/msg/lateral.hpp>
@@ -48,7 +49,6 @@
4849
#include <tf2_ros/transform_listener.h>
4950

5051
#include <memory>
51-
#include <vector>
5252

5353
namespace pure_pursuit
5454
{
@@ -79,8 +79,10 @@ class PurePursuitNode : public rclcpp::Node
7979
private:
8080
// Subscriber
8181
tier4_autoware_utils::SelfPoseListener self_pose_listener_{this};
82-
rclcpp::Subscription<autoware_planning_msgs::msg::Trajectory>::SharedPtr sub_trajectory_;
83-
rclcpp::Subscription<nav_msgs::msg::Odometry>::SharedPtr sub_current_odometry_;
82+
tier4_autoware_utils::InterProcessPollingSubscriber<autoware_planning_msgs::msg::Trajectory>
83+
sub_trajectory_{this, "input/reference_trajectory"};
84+
tier4_autoware_utils::InterProcessPollingSubscriber<nav_msgs::msg::Odometry>
85+
sub_current_odometry_{this, "input/current_odometry"};
8486

8587
autoware_planning_msgs::msg::Trajectory::ConstSharedPtr trajectory_;
8688
nav_msgs::msg::Odometry::ConstSharedPtr current_odometry_;

control/pure_pursuit/src/pure_pursuit/pure_pursuit_node.cpp

+2-18
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,6 @@ PurePursuitNode::PurePursuitNode(const rclcpp::NodeOptions & node_options)
7171
param_.reverse_min_lookahead_distance =
7272
this->declare_parameter<double>("reverse_min_lookahead_distance");
7373

74-
// Subscribers
75-
using std::placeholders::_1;
76-
sub_trajectory_ = this->create_subscription<autoware_planning_msgs::msg::Trajectory>(
77-
"input/reference_trajectory", 1, std::bind(&PurePursuitNode::onTrajectory, this, _1));
78-
sub_current_odometry_ = this->create_subscription<nav_msgs::msg::Odometry>(
79-
"input/current_odometry", 1, std::bind(&PurePursuitNode::onCurrentOdometry, this, _1));
80-
8174
// Publishers
8275
pub_ctrl_cmd_ =
8376
this->create_publisher<autoware_control_msgs::msg::Lateral>("output/control_raw", 1);
@@ -118,21 +111,12 @@ bool PurePursuitNode::isDataReady()
118111
return true;
119112
}
120113

121-
void PurePursuitNode::onCurrentOdometry(const nav_msgs::msg::Odometry::ConstSharedPtr msg)
122-
{
123-
current_odometry_ = msg;
124-
}
125-
126-
void PurePursuitNode::onTrajectory(
127-
const autoware_planning_msgs::msg::Trajectory::ConstSharedPtr msg)
128-
{
129-
trajectory_ = msg;
130-
}
131-
132114
void PurePursuitNode::onTimer()
133115
{
134116
current_pose_ = self_pose_listener_.getCurrentPose();
135117

118+
current_odometry_ = sub_current_odometry_.takeData();
119+
trajectory_ = sub_trajectory_.takeData();
136120
if (!isDataReady()) {
137121
return;
138122
}

0 commit comments

Comments
 (0)