BringObjectToLocation.cpp
Go to the documentation of this file.
2
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 .skillId = {.skillName = "BringObjectToLocation"},
26 .description = "Bring an object to some location",
27 .rootProfileDefaults = GetDefaultParameterization().toAron(),
28 .timeout = armarx::Duration::MilliSeconds(60000),
29 .parametersType = arondto::BringObjectToLandmarkAcceptedType::ToAronType(),
30 };
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 .providerId = ProviderID{.providerName = context.platformControlSkillProvider},
62 .skillName = skills::MovePlatformToLandmark::Description.skillId.skillName});
63
64 if (prx.executeSkill(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 .providerId = ProviderID{.providerName = context.graspControlSkillProvider},
83 .skillName = skills::GraspObjectSkill::Description.skillId.skillName});
84
85 if (prx.executeSkill(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
102 .providerId = ProviderID{.providerName = context.platformControlSkillProvider},
103 .skillName = skills::MovePlatformToLandmark::Description.skillId.skillName});
104
105 if (prx.executeSkill(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
123 .providerId = ProviderID{.providerName = context.graspControlSkillProvider},
124 .skillName = skills::PutdownObjectSkill::Description.skillId.skillName});
125
126 if (prx.executeSkill(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
This file is part of ArmarX.
A result struct for th main method of a skill.
Definition Skill.h:62