PX4 ROS 2 Interface Library
Library to interface with PX4 from a companion computer using ROS 2
message_compatibility_check.hpp
1 /****************************************************************************
2  * Copyright (c) 2023 PX4 Development Team.
3  * SPDX-License-Identifier: BSD-3-Clause
4  ****************************************************************************/
5 
6 #pragma once
7 
8 #include <rclcpp/rclcpp.hpp>
9 using namespace std::chrono_literals; // NOLINT
10 
11 // Set of all messages used by the library (<topic_name>[, <topic_type>])
12 #define ALL_PX4_ROS2_MESSAGES \
13  {"fmu/in/actuator_motors"}, \
14  {"fmu/in/actuator_servos"}, \
15  {"fmu/in/arming_check_reply"}, \
16  {"fmu/in/aux_global_position", "VehicleGlobalPosition"}, \
17  {"fmu/in/config_control_setpoints", "VehicleControlMode"}, \
18  {"fmu/in/config_overrides_request", "ConfigOverrides"}, \
19  {"fmu/in/fixed_wing_lateral_setpoint"}, \
20  {"fmu/in/fixed_wing_longitudinal_setpoint"}, \
21  {"fmu/in/goto_setpoint"}, \
22  {"fmu/in/lateral_control_configuration"}, \
23  {"fmu/in/longitudinal_control_configuration"}, \
24  {"fmu/in/mode_completed"}, \
25  {"fmu/in/register_ext_component_request"}, \
26  {"fmu/in/rover_attitude_setpoint"}, \
27  {"fmu/in/rover_position_setpoint"}, \
28  {"fmu/in/rover_rate_setpoint"}, \
29  {"fmu/in/rover_speed_setpoint"}, \
30  {"fmu/in/rover_steering_setpoint"}, \
31  {"fmu/in/rover_throttle_setpoint"}, \
32  {"fmu/in/trajectory_setpoint"}, \
33  {"fmu/in/unregister_ext_component"}, \
34  {"fmu/in/vehicle_attitude_setpoint"}, \
35  {"fmu/in/vehicle_command"}, \
36  {"fmu/in/vehicle_command_mode_executor", "VehicleCommand"}, \
37  {"fmu/in/vehicle_rates_setpoint"}, \
38  {"fmu/in/vehicle_visual_odometry", "VehicleOdometry"}, \
39  {"fmu/out/airspeed_validated"}, \
40  {"fmu/out/arming_check_request"}, \
41  {"fmu/out/battery_status"}, \
42  {"fmu/out/home_position"}, \
43  {"fmu/out/manual_control_setpoint"}, \
44  {"fmu/out/mode_completed"}, \
45  {"fmu/out/register_ext_component_reply"}, \
46  {"fmu/out/vehicle_attitude"}, \
47  {"fmu/out/vehicle_angular_velocity"}, \
48  {"fmu/out/vehicle_command_ack"}, \
49  {"fmu/out/vehicle_global_position"}, \
50  {"fmu/out/vehicle_land_detected"}, \
51  {"fmu/out/vehicle_local_position"}, \
52  {"fmu/out/vehicle_status"}, \
53  {"fmu/out/vtol_vehicle_status"}
54 
55 
56 namespace px4_ros2
57 {
63 {
64  std::string topic_name;
65  std::string topic_type{""};
66 };
67 
74  rclcpp::Node & node, const std::vector<MessageCompatibilityTopic> & messages_to_check,
75  const std::string & topic_namespace_prefix = "");
76 
78 } // namespace px4_ros2
bool messageCompatibilityCheck(rclcpp::Node &node, const std::vector< MessageCompatibilityTopic > &messages_to_check, const std::string &topic_namespace_prefix="")
Definition: message_compatibility_check.hpp:63
std::string topic_name
e.g. "fmu/out/vehicle_status"
Definition: message_compatibility_check.hpp:64