AutoAPMS
Resilient Robot Mission Management
Loading...
Searching...
No Matches
goto.cpp
Go to the documentation of this file.
1// Copyright 2024 Robin Müller
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// https://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
16#include "auto_apms_interfaces/action/go_to.hpp"
17
18#define INPUT_KEY_LATITUDE "lat"
19#define INPUT_KEY_LONGITUDE "lon"
20#define INPUT_KEY_ALTITUDE "alt"
21
22namespace auto_apms_px4
23{
24
25class GoToAction : public auto_apms_behavior_tree::RosActionNode<auto_apms_interfaces::action::GoTo>
26{
27public:
28 using RosActionNode::RosActionNode;
29
30 static BT::PortsList providedPorts()
31 {
32 return providedBasicPorts({ BT::InputPort<double>(INPUT_KEY_LATITUDE, "Target latitude"),
33 BT::InputPort<double>(INPUT_KEY_LONGITUDE, "Target longitude"),
34 BT::InputPort<double>(INPUT_KEY_ALTITUDE, "Target altitude in meter (AMSL)") });
35 }
36
37 bool setGoal(Goal& goal)
38 {
39 goal.lat = getInput<double>(INPUT_KEY_LATITUDE).value();
40 goal.lon = getInput<double>(INPUT_KEY_LONGITUDE).value();
41 goal.alt = getInput<double>(INPUT_KEY_ALTITUDE).value();
42 goal.head_towards_destination = true;
43 return true;
44 }
45};
46
47} // namespace auto_apms_px4
48
49AUTO_APMS_BEHAVIOR_TREE_REGISTER_NODE(auto_apms_px4::GoToAction)
#define INPUT_KEY_ALTITUDE
Definition goto.cpp:20
#define INPUT_KEY_LATITUDE
Definition goto.cpp:18
#define INPUT_KEY_LONGITUDE
Definition goto.cpp:19
Abstract class to wrap rclcpp_action::Client<>
#define AUTO_APMS_BEHAVIOR_TREE_REGISTER_NODE(type)
Macro for registering a behavior tree node plugin.
Definition node.hpp:30