BringObjectToLocation.cpp
Go to the documentation of this file.
2
3#include <RobotAPI/libraries/skills/provider/SkillProxy.h>
4
5#include <RobotSkillTemplates/libraries/skill_bring_object/aron/BringObjectToLandmarkAcceptedType.aron.generated.h>
6
7namespace armarx::skills
8{
9 namespace
10 {
11 arondto::BringObjectToLandmarkAcceptedType
12 GetDefaultParameterization()
13 {
14 arondto::BringObjectToLandmarkAcceptedType ret;
15 ret.robotName = "Armar3";
16 ret.graph = "KitchenKK";
17 ret.objectEntityId = "Kitchen/green-cup/0";
18 ret.landmarkFrom = "sideboard";
19 ret.landmarkTo = "sink";
20 return ret;
21 }
22 } // namespace
23
25 SkillDescription{"BringObjectToLocation",
26 "Bring an object to some location",
27 {},
29 arondto::BringObjectToLandmarkAcceptedType::ToAronType(),
30 GetDefaultParameterization().toAron()};
31
37
39 BringObjectToLocation::main(const SpecializedMainInput& in)
40 {
41 std::string objName = in.parameters.objectEntityId;
42 std::string graphName = in.parameters.graph;
43 std::string objLandmarkName = in.parameters.landmarkFrom;
44 std::string targetLandmarkName = in.parameters.landmarkTo;
45 std::string robotName = in.parameters.robotName;
46 float platformOrientationalAccuracy = 0.1;
47 float platformPositionalAccuracy = 20;
48 float tcpOrientationalAccuracy = 0.3;
49 float tcpPositionalAccuracy = 40;
50
51 // move to landmark1
52 {
53 platform_control::arondto::MovePlatformToLandmarkAcceptedType params;
54 params.landmark = objLandmarkName;
55 params.robotName = robotName;
56 params.graph = graphName;
57 params.orientationalAccuracy = platformOrientationalAccuracy;
58 params.positionalAccuracy = platformPositionalAccuracy;
59
61 context.platformControlSkillProvider,
63
64 if (prx.executeFullSkill(getSkillId().toString(in.executorName), params.toAron())
66 {
67 return {TerminatedSkillStatus::Failed, nullptr};
68 }
69 }
70
71 // grasp Object
72 {
73 grasp_object::arondto::GraspObjectAcceptedType params;
74 params.objectEntityId = objName;
75 params.robotName = robotName;
76 params.tcpOrientationalAccuracy = tcpOrientationalAccuracy;
77 params.tcpPositionalAccuracy = tcpPositionalAccuracy;
78 params.platformOrientationalAccuracy = platformOrientationalAccuracy;
79 params.platformPositionalAccuracy = platformPositionalAccuracy;
80
82 context.graspControlSkillProvider,
84
85 if (prx.executeFullSkill(getSkillId().toString(in.executorName), params.toAron())
87 {
88 return {TerminatedSkillStatus::Failed, nullptr};
89 }
90 }
91
92 // Move to target landmark
93 {
94 platform_control::arondto::MovePlatformToLandmarkAcceptedType params;
95 params.landmark = targetLandmarkName;
96 params.robotName = robotName;
97 params.graph = graphName;
98 params.orientationalAccuracy = platformOrientationalAccuracy;
99 params.positionalAccuracy = platformPositionalAccuracy;
100
101 SkillProxy prx({manager,
102 context.platformControlSkillProvider,
104
105 if (prx.executeFullSkill(getSkillId().toString(in.executorName), params.toAron())
107 {
108 return {TerminatedSkillStatus::Failed, nullptr};
109 }
110 }
111
112 // putdown object
113 {
114 grasp_object::arondto::PutdownObjectAcceptedType params;
115 params.objectEntityId = objName;
116 params.robotName = robotName;
117 params.tcpOrientationalAccuracy = tcpOrientationalAccuracy;
118 params.tcpPositionalAccuracy = tcpPositionalAccuracy;
119 params.platformOrientationalAccuracy = platformOrientationalAccuracy;
120 params.platformPositionalAccuracy = platformPositionalAccuracy;
121
122 SkillProxy prx({manager,
123 context.graspControlSkillProvider,
125
126 if (prx.executeFullSkill(getSkillId().toString(in.executorName), params.toAron())
128 {
129 return {TerminatedSkillStatus::Failed, nullptr};
130 }
131 }
132
133 return {TerminatedSkillStatus::Succeeded, nullptr};
134 }
135} // namespace armarx::skills
static Duration MilliSeconds(std::int64_t milliSeconds)
Constructs a duration in milliseconds.
Definition Duration.cpp:48
BringObjectSkill(const BringObjectSkillContext &c)
const BringObjectSkillContext & context
BringObjectToLocation(const BringObjectSkillContext &context)
static SkillDescription Description
Definition GraspObject.h:41
static SkillDescription Description
manager::dti::SkillManagerInterfacePrx manager
Definition Skill.h:363
virtual MainResult main()
Override this method with the actual implementation.
Definition Skill.cpp:542
SkillID getSkillId() const
Get the id of the skill.
Definition Skill.cpp:587
This file is part of ArmarX.
A result struct for th main method of a skill.
Definition Skill.h:62