25
25
#include < autoware_vehicle_info_utils/vehicle_info_utils.hpp>
26
26
#include < rclcpp/rclcpp.hpp>
27
27
28
+ #include " autoware_vehicle_msgs/msg/steering_report.hpp"
28
29
#include " geometry_msgs/msg/accel_with_covariance_stamped.hpp"
29
30
#include < autoware_internal_debug_msgs/msg/float64_stamped.hpp>
30
31
#include < autoware_planning_msgs/msg/lanelet_route.hpp>
@@ -45,6 +46,7 @@ using autoware::universe_utils::LineString2d;
45
46
using autoware::universe_utils::Point2d;
46
47
using autoware::vehicle_info_utils::VehicleInfo;
47
48
using autoware_planning_msgs::msg::Trajectory;
49
+ using autoware_vehicle_msgs::msg::SteeringReport;
48
50
using geometry_msgs::msg::Point ;
49
51
using geometry_msgs::msg::Pose;
50
52
using nav_msgs::msg::Odometry;
@@ -75,6 +77,7 @@ class ControlEvaluatorNode : public rclcpp::Node
75
77
void AddLaneletInfoMsg (const Pose & ego_pose);
76
78
void AddKinematicStateMetricMsg (
77
79
const Odometry & odom, const AccelWithCovarianceStamped & accel_stamped);
80
+ void AddSteeringMetricMsg (const SteeringReport & steering_report);
78
81
79
82
void onTimer ();
80
83
@@ -93,6 +96,8 @@ class ControlEvaluatorNode : public rclcpp::Node
93
96
vector_map_subscriber_{this , " ~/input/vector_map" , rclcpp::QoS{1 }.transient_local ()};
94
97
autoware::universe_utils::InterProcessPollingSubscriber<PathWithLaneId> behavior_path_subscriber_{
95
98
this , " ~/input/behavior_path" };
99
+ autoware::universe_utils::InterProcessPollingSubscriber<SteeringReport> steering_sub_{
100
+ this , " ~/input/steering_status" };
96
101
97
102
rclcpp::Publisher<autoware_internal_debug_msgs::msg::Float64Stamped>::SharedPtr
98
103
processing_time_pub_;
@@ -107,8 +112,16 @@ class ControlEvaluatorNode : public rclcpp::Node
107
112
// Metric
108
113
const std::vector<Metric> metrics_ = {
109
114
// collect all metrics
110
- Metric::lateral_deviation, Metric::yaw_deviation, Metric::goal_longitudinal_deviation,
111
- Metric::goal_lateral_deviation, Metric::goal_yaw_deviation,
115
+ Metric::lateral_deviation,
116
+ Metric::yaw_deviation,
117
+ Metric::goal_longitudinal_deviation,
118
+ Metric::goal_lateral_deviation,
119
+ Metric::goal_yaw_deviation,
120
+ Metric::left_boundary_distance,
121
+ Metric::right_boundary_distance,
122
+ Metric::steering_angle,
123
+ Metric::steering_rate,
124
+ Metric::steering_acceleration,
112
125
};
113
126
114
127
std::array<Accumulator<double >, static_cast <size_t >(Metric::SIZE)>
@@ -119,6 +132,9 @@ class ControlEvaluatorNode : public rclcpp::Node
119
132
autoware::route_handler::RouteHandler route_handler_;
120
133
rclcpp::TimerBase::SharedPtr timer_;
121
134
std::optional<AccelWithCovarianceStamped> prev_acc_stamped_{std::nullopt};
135
+ std::optional<double > prev_steering_angle_{std::nullopt};
136
+ std::optional<double > prev_steering_rate_{std::nullopt};
137
+ std::optional<double > prev_steering_angle_timestamp_{std::nullopt};
122
138
};
123
139
} // namespace control_diagnostics
124
140
0 commit comments