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_