.. _program_listing_file__tmp_ws_src_aerostack2_as2_aerial_platforms_as2_platform_ign_gazebo_include_as2_platform_ign_gazebo_ignition_platform.hpp: Program Listing for File ignition_platform.hpp ============================================== |exhale_lsh| :ref:`Return to documentation for file ` (``/tmp/ws/src/aerostack2/as2_aerial_platforms/as2_platform_ign_gazebo/include/as2_platform_ign_gazebo/ignition_platform.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp /*!******************************************************************************************* * \file ignition_platform.hpp * \brief Implementation of an Ignition Gazebo UAV platform * \authors Miguel Fernández Cortizas * Pedro Arias Pérez * David Pérez Saura * Rafael Pérez Seguí * * \copyright Copyright (c) 2022 Universidad Politécnica de Madrid * All Rights Reserved * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. Neither the name of the copyright holder nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ********************************************************************************/ #ifndef IGNITION_PLATFORM_HPP_ #define IGNITION_PLATFORM_HPP_ #include #include #include #include "as2_core/aerial_platform.hpp" #include "as2_core/core_functions.hpp" #include "as2_core/names/topics.hpp" #include "as2_core/utils/control_mode_utils.hpp" #include "as2_core/utils/tf_utils.hpp" #include #include namespace ignition_platform { class IgnitionPlatform : public as2::AerialPlatform { public: IgnitionPlatform(); ~IgnitionPlatform(){}; public: void configureSensors(){}; bool ownSendCommand() override; bool ownSetArmingState(bool state) override; bool ownSetOffboardControl(bool offboard) override; bool ownSetPlatformControlMode(const as2_msgs::msg::ControlMode &msg) override; void ownKillSwitch() override; void ownStopPlatform() override; bool ownTakeoff() override; bool ownLand() override; // Publishers rclcpp::Publisher::SharedPtr twist_pub_; rclcpp::Publisher::SharedPtr arm_pub_; // Subscribers rclcpp::Subscription::SharedPtr twist_state_sub_; private: as2_msgs::msg::ControlMode control_in_; double yaw_rate_limit_ = M_PI_2; bool enable_takeoff_ = false; bool enable_land_ = false; bool state_received_ = false; double current_height_ = 0.0; double current_vertical_speed_ = 0.0; std::shared_ptr tf_handler_; private: void resetCommandTwistMsg(); void state_callback(const geometry_msgs::msg::TwistStamped::SharedPtr _twist_msg); }; } // namespace ignition_platform #endif // IGNITION_PLATFORM_HPP_