PX4 ROS 2 Interface Library
Library to interface with PX4 from a companion computer using ROS 2
Loading...
Searching...
No Matches
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>
9using namespace std::chrono_literals; // NOLINT
10
11// clang-format off
12// Set of all messages used by the library (<topic_name>[, <topic_type>])
13#define ALL_PX4_ROS2_MESSAGES \
14 {"fmu/in/actuator_motors"}, \
15 {"fmu/in/actuator_servos"}, \
16 {"fmu/in/arming_check_reply"}, \
17 {"fmu/in/aux_global_position", "VehicleGlobalPosition"}, \
18 {"fmu/in/config_control_setpoints", "VehicleControlMode"}, \
19 {"fmu/in/config_overrides_request", "ConfigOverrides"}, \
20 {"fmu/in/fixed_wing_lateral_setpoint"}, \
21 {"fmu/in/fixed_wing_longitudinal_setpoint"}, \
22 {"fmu/in/goto_setpoint"}, \
23 {"fmu/in/lateral_control_configuration"}, \
24 {"fmu/in/longitudinal_control_configuration"}, \
25 {"fmu/in/mode_completed"}, \
26 {"fmu/in/register_ext_component_request"}, \
27 {"fmu/in/rover_attitude_setpoint"}, \
28 {"fmu/in/rover_position_setpoint"}, \
29 {"fmu/in/rover_rate_setpoint"}, \
30 {"fmu/in/rover_speed_setpoint"}, \
31 {"fmu/in/rover_steering_setpoint"}, \
32 {"fmu/in/rover_throttle_setpoint"}, \
33 {"fmu/in/trajectory_setpoint"}, \
34 {"fmu/in/unregister_ext_component"}, \
35 {"fmu/in/vehicle_attitude_setpoint"}, \
36 {"fmu/in/vehicle_command"}, \
37 {"fmu/in/vehicle_command_mode_executor", "VehicleCommand"}, \
38 {"fmu/in/vehicle_rates_setpoint"}, \
39 {"fmu/in/vehicle_visual_odometry", "VehicleOdometry"}, \
40 {"fmu/out/airspeed_validated"}, \
41 {"fmu/out/arming_check_request"}, \
42 {"fmu/out/battery_status"}, \
43 {"fmu/out/home_position"}, \
44 {"fmu/out/manual_control_setpoint"}, \
45 {"fmu/out/mode_completed"}, \
46 {"fmu/out/register_ext_component_reply"}, \
47 {"fmu/out/vehicle_attitude"}, \
48 {"fmu/out/vehicle_angular_velocity"}, \
49 {"fmu/out/vehicle_command_ack"}, \
50 {"fmu/out/vehicle_global_position"}, \
51 {"fmu/out/vehicle_land_detected"}, \
52 {"fmu/out/vehicle_local_position"}, \
53 {"fmu/out/vehicle_status"}, \
54 {"fmu/out/vtol_vehicle_status"}, \
55 {"fmu/out/vehicle_odometry"}
56// clang-format on
57
58namespace px4_ros2 {
64 std::string topic_name;
65 std::string
67};
68
87bool messageCompatibilityCheck(rclcpp::Node& node,
88 const std::vector<MessageCompatibilityTopic>& messages_to_check,
89 const std::string& topic_namespace_prefix = "");
90
92} // namespace px4_ros2
bool messageCompatibilityCheck(rclcpp::Node &node, const std::vector< MessageCompatibilityTopic > &messages_to_check, const std::string &topic_namespace_prefix="")
Check for a set of messages that match the definitions used by PX4.
Definition message_compatibility_check.hpp:63
std::string topic_type
e.g. VehicleStatus. If empty, it's inferred from the topic_name // NOLINT
Definition message_compatibility_check.hpp:66
std::string topic_name
e.g. "fmu/out/vehicle_status"
Definition message_compatibility_check.hpp:64