Go to the documentation of this file.
18 #ifndef VEHICLE_INTERFACE__VEHICLE_INTERFACE_NODE_HPP_
19 #define VEHICLE_INTERFACE__VEHICLE_INTERFACE_NODE_HPP_
23 #include <vehicle_interface/visibility_control.hpp>
25 #include <mpark_variant_vendor/variant.hpp>
26 #include <rclcpp/rclcpp.hpp>
30 #include <autoware_auto_msgs/msg/high_level_control_command.hpp>
31 #include <autoware_auto_msgs/msg/raw_control_command.hpp>
32 #include <autoware_auto_msgs/msg/vehicle_control_command.hpp>
33 #include <autoware_auto_msgs/msg/vehicle_odometry.hpp>
34 #include <autoware_auto_msgs/msg/vehicle_state_command.hpp>
35 #include <autoware_auto_msgs/msg/vehicle_state_report.hpp>
36 #include <autoware_auto_msgs/srv/autonomy_mode_change.hpp>
38 #include <experimental/optional>
48 namespace vehicle_interface
50 using Real = decltype(BasicControlCommand::long_accel_mps2);
74 const std::string & node_name,
75 const rclcpp::NodeOptions & options);
79 std::unique_ptr<common::reference_tracking_controller::ReferenceTrackerBase<Real>>;
80 using FilterBasePtr = std::unique_ptr<common::signal_filters::FilterBase<Real>>;
96 void set_interface(std::unique_ptr<PlatformInterface> && interface) noexcept;
98 rclcpp::Logger logger() const noexcept;
105 virtual
void on_control_send_failure();
109 virtual
void on_state_send_failure();
112 virtual
void on_mode_change_failure();
116 virtual
void on_read_timeout();
118 virtual
void on_error(std::exception_ptr eptr);
132 const std::chrono::nanoseconds & cycle_time);
150 rclcpp::TimerBase::SharedPtr m_read_timer{
nullptr};
151 rclcpp::Publisher<autoware_auto_msgs::msg::VehicleOdometry>::SharedPtr m_odom_pub{
nullptr};
152 rclcpp::Publisher<autoware_auto_msgs::msg::VehicleStateReport>::SharedPtr m_state_pub{
nullptr};
153 rclcpp::Subscription<autoware_auto_msgs::msg::VehicleStateCommand>::SharedPtr m_state_sub{};
154 rclcpp::Service<autoware_auto_msgs::srv::AutonomyModeChange>::SharedPtr m_mode_service{
nullptr};
156 using BasicSub = rclcpp::Subscription<BasicControlCommand>::SharedPtr;
157 using RawSub = rclcpp::Subscription<autoware_auto_msgs::msg::RawControlCommand>::SharedPtr;
159 rclcpp::Subscription<autoware_auto_msgs::msg::HighLevelControlCommand>::SharedPtr;
161 mpark::variant<RawSub, BasicSub, HighLevelSub> m_command_sub{};
163 std::unique_ptr<PlatformInterface> m_interface{
nullptr};
164 VehicleFilter m_filter{
nullptr,
nullptr,
nullptr,
nullptr};
165 ControllerBasePtr m_controller{
nullptr};
166 std::unique_ptr<SafetyStateMachine> m_state_machine{
nullptr};
167 std::chrono::system_clock::time_point m_last_command_stamp{};
168 std::chrono::nanoseconds m_cycle_time{};
176 #endif // VEHICLE_INTERFACE__VEHICLE_INTERFACE_NODE_HPP_
Definition: vehicle_interface_node.hpp:67
T
Definition: catr_diff.py:22
std::unique_ptr< common::signal_filters::FilterBase< Real > > FilterBasePtr
Definition: vehicle_interface_node.hpp:80
autoware_auto_msgs::srv::AutonomyModeChange_Response ModeChangeResponse
Definition: vehicle_interface_node.hpp:82
FilterBasePtr rear_steer
Definition: vehicle_interface_node.hpp:89
Definition: vehicle_interface_node.hpp:84
std::string type
Definition: vehicle_interface_node.hpp:61
Configuration class for SafetyStateMachine.
Definition: safety_state_machine.hpp:115
std::experimental::optional< autoware_auto_msgs::msg::VehicleStateCommand > MaybeStateCommand
Definition: safety_state_machine.hpp:41
FilterBasePtr longitudinal
Definition: vehicle_interface_node.hpp:86
Definition: safety_state_machine.hpp:173
This file defines the lanelet2_map_provider_node class.
Definition: quick_sort.hpp:24
#define VEHICLE_INTERFACE_LOCAL
Definition: drivers/vehicle_interface/include/vehicle_interface/visibility_control.hpp:45
This class defines an interface for simple reference tracking controllers.
std::string topic
Definition: vehicle_interface_node.hpp:55
Real cutoff_frequency
Definition: vehicle_interface_node.hpp:62
Interface definition for signal processing filters.
decltype(BasicControlCommand::long_accel_mps2) Real
Definition: vehicle_interface_node.hpp:50
Convenience struct for construction.
Definition: vehicle_interface_node.hpp:53
FilterBasePtr curvature
Definition: vehicle_interface_node.hpp:87
Convenience struct to construct filters.
Definition: vehicle_interface_node.hpp:59
std::unique_ptr< common::reference_tracking_controller::ReferenceTrackerBase< Real > > ControllerBasePtr
Definition: vehicle_interface_node.hpp:79
autoware_auto_msgs::srv::AutonomyModeChange_Request ModeChangeRequest
Definition: vehicle_interface_node.hpp:81
FilterBasePtr front_steer
Definition: vehicle_interface_node.hpp:88
Input validation state machine.
#define VEHICLE_INTERFACE_PUBLIC
Definition: drivers/vehicle_interface/include/vehicle_interface/visibility_control.hpp:44