GuideHumanToRoom.h
Go to the documentation of this file.
1/*
2 * This file is part of ArmarX.
3 *
4 * ArmarX is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * ArmarX is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * @author Fabian Reister ( fabian dot reister at kit dot edu )
17 * @date 2023
18 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
19 * GNU General Public License
20 */
21
22#pragma once
23
24#include <optional>
25#include <string>
26
28
34
41#include <armarx/navigation/skills/aron/GuideHumanToRoom.aron.generated.h>
43
45{
47 virtual public armarx::skills::SimpleSpecializedSkill<arondto::GuideHumanToRoomParams>
48 {
49 public:
50 using Params = arondto::GuideHumanToRoomParams;
52
64
66 {
68 "distance_to_obstacle_costmap_provider"; // FIXME
69 std::string roomsProvider = "R003"; // FIXME
70 std::string robotName = "Armar6"; // FIXME
71 };
72
74 const NavigatingSkillHelper::Services& helperSrv,
75 const Services& srv);
76
77
78
79 private:
80 using Base::init;
81 ::armarx::skills::Skill::InitResult init(const Base::SpecializedInitInput& in) override;
82
83 using Base::main;
84 ::armarx::skills::Skill::MainResult main(const Base::SpecializedMainInput& in) override;
85
86 void onStopRequested() override;
87
88 core::Pose getTargetInFrontOfRoom(const std::string& roomName) const;
89
90 public:
93 {
94 ParamType defaultParameters;
95 defaultParameters.navigatingSkillParams =
97 // TODO(): set parameter defaults
98
100 .skillId = {.skillName = constants::skill_names::GuideHumanToRoom},
101 .description = "",
102 .rootProfileDefaults = defaultParameters.toAron(),
103 .timeout = armarx::core::time::Duration(),
104 .parametersType = Params::ToAronType()};
105 }
106
107 protected:
108 private:
110 std::optional<Services> srv_;
111 const Properties properties;
112 };
113
114} // namespace armarx::navigation::skills
Represents a duration.
Definition Duration.h:17
::armarx::skills::SimpleSpecializedSkill< Params > Base
arondto::GuideHumanToRoomParams Params
GuideHumanToRoom(const NavigatingSkillHelper::Properties &helperProperties, const NavigatingSkillHelper::Services &helperSrv, const Services &srv)
static armarx::skills::SkillDescription DefaultSkillDescription()
static arondto::NavigatingSkillParams DefaultSkillDescription()
virtual Skill::MainResult main(const SpecializedMainInput &)
virtual Skill::InitResult init(const SpecializedInitInput &)
Eigen::Isometry3f Pose
Definition basic_types.h:31
armem::robot_state::VirtualRobotReader & virtualRobotReader
A result struct for skill initialization.
Definition Skill.h:50
A result struct for th main method of a skill.
Definition Skill.h:62