19 #ifndef NE_RAPTOR_INTERFACE__NE_RAPTOR_INTERFACE_HPP_ 20 #define NE_RAPTOR_INTERFACE__NE_RAPTOR_INTERFACE_HPP_ 28 #include <raptor_dbw_msgs/msg/accelerator_pedal_cmd.hpp> 29 #include <raptor_dbw_msgs/msg/brake_cmd.hpp> 30 #include <raptor_dbw_msgs/msg/gear_cmd.hpp> 31 #include <raptor_dbw_msgs/msg/global_enable_cmd.hpp> 32 #include <raptor_dbw_msgs/msg/misc_cmd.hpp> 33 #include <raptor_dbw_msgs/msg/steering_cmd.hpp> 35 #include <raptor_dbw_msgs/msg/brake_report.hpp> 36 #include <raptor_dbw_msgs/msg/gear_report.hpp> 37 #include <raptor_dbw_msgs/msg/misc_report.hpp> 38 #include <raptor_dbw_msgs/msg/other_actuators_report.hpp> 39 #include <raptor_dbw_msgs/msg/steering_report.hpp> 40 #include <raptor_dbw_msgs/msg/wheel_speed_report.hpp> 42 #include <raptor_dbw_msgs/msg/actuator_control_mode.hpp> 43 #include <raptor_dbw_msgs/msg/door_request.hpp> 44 #include <raptor_dbw_msgs/msg/door_state.hpp> 45 #include <raptor_dbw_msgs/msg/gear.hpp> 46 #include <raptor_dbw_msgs/msg/high_beam.hpp> 47 #include <raptor_dbw_msgs/msg/high_beam_state.hpp> 48 #include <raptor_dbw_msgs/msg/horn_state.hpp> 49 #include <raptor_dbw_msgs/msg/ignition.hpp> 50 #include <raptor_dbw_msgs/msg/low_beam.hpp> 51 #include <raptor_dbw_msgs/msg/parking_brake.hpp> 52 #include <raptor_dbw_msgs/msg/turn_signal.hpp> 53 #include <raptor_dbw_msgs/msg/wiper_front.hpp> 54 #include <raptor_dbw_msgs/msg/wiper_rear.hpp> 56 #include <autoware_auto_msgs/msg/high_level_control_command.hpp> 57 #include <autoware_auto_msgs/msg/raw_control_command.hpp> 58 #include <autoware_auto_msgs/msg/vehicle_control_command.hpp> 59 #include <autoware_auto_msgs/msg/vehicle_state_command.hpp> 61 #include <autoware_auto_msgs/msg/vehicle_state_report.hpp> 62 #include <autoware_auto_msgs/msg/vehicle_odometry.hpp> 63 #include <autoware_auto_msgs/msg/vehicle_kinematic_state.hpp> 65 #include <autoware_auto_msgs/srv/autonomy_mode_change.hpp> 67 #include <std_msgs/msg/bool.hpp> 69 #include <rclcpp/rclcpp.hpp> 70 #include <rclcpp/clock.hpp> 82 using raptor_dbw_msgs::msg::AcceleratorPedalCmd;
83 using raptor_dbw_msgs::msg::BrakeCmd;
84 using raptor_dbw_msgs::msg::GearCmd;
85 using raptor_dbw_msgs::msg::GlobalEnableCmd;
86 using raptor_dbw_msgs::msg::MiscCmd;
87 using raptor_dbw_msgs::msg::SteeringCmd;
89 using raptor_dbw_msgs::msg::BrakeReport;
90 using raptor_dbw_msgs::msg::GearReport;
91 using raptor_dbw_msgs::msg::MiscReport;
92 using raptor_dbw_msgs::msg::OtherActuatorsReport;
93 using raptor_dbw_msgs::msg::SteeringReport;
94 using raptor_dbw_msgs::msg::WheelSpeedReport;
96 using raptor_dbw_msgs::msg::ActuatorControlMode;
97 using raptor_dbw_msgs::msg::DoorRequest;
98 using raptor_dbw_msgs::msg::DoorState;
99 using raptor_dbw_msgs::msg::Gear;
100 using raptor_dbw_msgs::msg::HighBeam;
101 using raptor_dbw_msgs::msg::HighBeamState;
102 using raptor_dbw_msgs::msg::HornState;
103 using raptor_dbw_msgs::msg::Ignition;
104 using raptor_dbw_msgs::msg::LowBeam;
105 using raptor_dbw_msgs::msg::ParkingBrake;
106 using raptor_dbw_msgs::msg::TurnSignal;
107 using raptor_dbw_msgs::msg::WiperFront;
108 using raptor_dbw_msgs::msg::WiperRear;
110 using autoware_auto_msgs::msg::HighLevelControlCommand;
111 using autoware_auto_msgs::msg::RawControlCommand;
113 using autoware_auto_msgs::msg::VehicleStateCommand;
115 using autoware_auto_msgs::msg::VehicleStateReport;
116 using autoware_auto_msgs::msg::VehicleOdometry;
119 using autoware_auto_msgs::srv::AutonomyModeChange;
151 uint16_t ecu_build_num,
158 float32_t acceleration_positive_jerk_limit,
159 float32_t deceleration_negative_jerk_limit
168 bool8_t update(std::chrono::nanoseconds timeout)
override;
174 bool8_t send_state_command(
const VehicleStateCommand & msg)
override;
180 bool8_t send_control_command(
const HighLevelControlCommand & msg);
186 bool8_t send_control_command(
const RawControlCommand & msg)
override;
199 bool8_t handle_mode_change_request(ModeChangeRequest::SharedPtr request)
override;
205 void kinematic_bicycle_model(
210 rclcpp::Publisher<AcceleratorPedalCmd>::SharedPtr m_accel_cmd_pub;
211 rclcpp::Publisher<BrakeCmd>::SharedPtr m_brake_cmd_pub;
212 rclcpp::Publisher<GearCmd>::SharedPtr m_gear_cmd_pub;
213 rclcpp::Publisher<GlobalEnableCmd>::SharedPtr m_global_enable_cmd_pub;
214 rclcpp::Publisher<MiscCmd>::SharedPtr m_misc_cmd_pub;
215 rclcpp::Publisher<SteeringCmd>::SharedPtr m_steer_cmd_pub;
216 rclcpp::Publisher<std_msgs::msg::Empty>::SharedPtr m_dbw_enable_cmd_pub;
217 rclcpp::Publisher<std_msgs::msg::Empty>::SharedPtr m_dbw_disable_cmd_pub;
220 rclcpp::Publisher<VehicleStateReport>::SharedPtr m_vehicle_state_pub;
221 rclcpp::Publisher<VehicleOdometry>::SharedPtr m_vehicle_odo_pub;
222 rclcpp::Publisher<VehicleKinematicState>::SharedPtr m_vehicle_kin_state_pub;
225 rclcpp::SubscriptionBase::SharedPtr
226 m_brake_rpt_sub, m_gear_rpt_sub, m_misc_rpt_sub,
227 m_other_acts_rpt_sub, m_steering_rpt_sub, m_wheel_spd_rpt_sub;
229 rclcpp::Logger m_logger;
230 uint16_t m_ecu_build_num;
237 float32_t m_acceleration_positive_jerk_limit;
238 float32_t m_deceleration_negative_jerk_limit;
239 std::unique_ptr<DbwStateMachine> m_dbw_state_machine;
240 uint8_t m_rolling_counter_vsc;
241 uint8_t m_rolling_counter_hlcc;
242 uint8_t m_rolling_counter_vcc;
243 rclcpp::Clock m_clock;
252 VehicleOdometry m_vehicle_odometry{};
253 VehicleStateReport m_vehicle_state_report{};
255 BrakeCmd m_brake_cmd{};
256 bool8_t m_seen_brake_rpt{
false};
257 bool8_t m_seen_gear_rpt{
false};
258 bool8_t m_seen_misc_rpt{
false};
259 bool8_t m_seen_steering_rpt{
false};
260 bool8_t m_seen_wheel_spd_rpt{
false};
261 bool8_t m_seen_vehicle_state_cmd{
false};
265 std::mutex m_vehicle_odometry_mutex;
266 std::mutex m_vehicle_state_report_mutex;
267 std::mutex m_vehicle_kin_state_mutex;
268 std::mutex m_brake_cmd_mutex;
275 void on_brake_report(
const BrakeReport::SharedPtr & msg);
282 void on_gear_report(
const GearReport::SharedPtr & msg);
292 void on_misc_report(
const MiscReport::SharedPtr & msg);
300 void on_other_actuators_report(
const OtherActuatorsReport::SharedPtr & msg);
308 void on_steering_report(
const SteeringReport::SharedPtr & msg);
315 void on_wheel_spd_report(
const WheelSpeedReport::SharedPtr & msg);
319 #endif // NE_RAPTOR_INTERFACE__NE_RAPTOR_INTERFACE_HPP_ constexpr float32_t PI
pi = tau / 2
Definition: types.hpp:40
Definition: ne_raptor_interface.launch.py:1
autoware_auto_msgs::msg::VehicleKinematicState VehicleKinematicState
Definition: trajectory_spoofer.hpp:44
autoware_auto_msgs::srv::AutonomyModeChange_Request ModeChangeRequest
Definition: ne_raptor_interface.hpp:120
float float32_t
Definition: types.hpp:36
static constexpr float32_t KPH_TO_MPS_RATIO
Definition: ne_raptor_interface.hpp:130
autoware_auto_msgs::srv::AutonomyModeChange_Response ModeChangeResponse
Definition: ne_raptor_interface.hpp:121
bool bool8_t
Definition: types.hpp:33
This file includes common type definition.
autoware_auto_msgs::msg::VehicleControlCommand VehicleControlCommand
Definition: pure_pursuit.hpp:41
static constexpr float32_t DEGREES_TO_RADIANS
Definition: ne_raptor_interface.hpp:131
DbwState
Definition: dbw_state_machine.hpp:41
static constexpr int64_t CLOCK_1_SEC
Definition: ne_raptor_interface.hpp:132
Base class for vehicle drivers.
constexpr float32_t TAU
tau = 2 pi
Definition: types.hpp:44
Class for maintaining the DBW state.
Definition: dbw_state_machine.hpp:50
This file defines the lanelet2_map_provider_node class.
Definition: quick_sort.hpp:24
Class for interfacing with NE Raptor DBW.
Definition: ne_raptor_interface.hpp:134