BringObjectToHuman.cpp
Go to the documentation of this file.
2
3namespace armarx::skills
4{
6 .skillId = {.skillName = "BringObjectToHuman"},
7 .description = "Bring an object to some location",
8 .timeout = armarx::Duration::MilliSeconds(60000),
9 };
10
11 /*BringObjectToHuman::BringObjectToHuman(armem::client::MemoryNameSystem& mns, armarx::viz::Client& arviz, GraspControlSkillContext& context) :
12 Skill(BringObjectToHumanDesc),
13 mns(mns),
14 arviz(arviz),
15 context(context),
16 graspObject(mns, arviz, context),
17 handoverObject(mns, arviz, context),
18 movePlatformToLandmark(mns, arviz, context.platformControlSkillContext)
19 {
20 }
21
22 void BringObjectToHuman::_reset()
23 {
24 graspObject.reset();
25 handoverObject.reset();
26 movePlatformToLandmark.reset();
27 Skill::_reset();
28 }
29
30 void BringObjectToHuman::_notifyStopped()
31 {
32 graspObject.notifyStopped();
33 handoverObject.notifyStopped();
34 movePlatformToLandmark.notifyStopped();
35 Skill::_notifyStopped();
36 }
37
38 void BringObjectToHuman::_notifyTimeoutReached()
39 {
40 graspObject.notifyTimeoutReached();
41 handoverObject.notifyTimeoutReached();
42 movePlatformToLandmark.notifyTimeoutReached();
43 Skill::_notifyTimeoutReached();
44 }
45
46 Skill::Status BringObjectToHuman::_execute(const aron::data::DictPtr& in, const CallbackT& callback)
47 {
48 std::string objName = "Kitchen/green-cup/0";
49 std::string objLandmarkName = "sideboard";
50 std::string targetLandmarkName = "delivernode";
51 std::string graspSetName = "TCP L";
52 std::string kinematicChainName = "LeftArm";
53 std::string otherKinematicChainName = "RightArm";
54 std::string robot = "Armar3";
55
56 Skill::Status ret = Skill::Status::Succeeded;
57
58 // move to landmark1
59 {
60 platform_control::arondto::MovePlatformToLandmarkAcceptedType args;
61 args.landmark = objLandmarkName;
62 args.orientationalAccuracy = 0.1;
63 args.positionalAccuracy = 20;
64
65 ret = movePlatformToLandmark._execute(args, callback);
66 }
67
68 if (ret != Skill::Status::Succeeded)
69 {
70 return ret;
71 }
72
73 // grasp Object
74 {
75 grasp_object::arondto::GraspObjectAcceptedType args;
76 args.graspSetName = graspSetName;
77 args.kinematicChainNames = "LeftArm";
78 args.objectEntityId = objName;
79 args.orientationalAccuracy = 0.1;
80 args.positionalAccuracy = 20;
81 args.robot = robot;
82
83 ret = graspObject._execute(args, callback);
84 }
85
86 if (ret != Skill::Status::Succeeded)
87 {
88 return ret;
89 }
90
91 // Move to target landmark
92 {
93 platform_control::arondto::MovePlatformToLandmarkAcceptedType args;
94 args.landmark = targetLandmarkName;
95 args.orientationalAccuracy = 0.1;
96 args.positionalAccuracy = 20;
97
98 ret = movePlatformToLandmark._execute(args, callback);
99 }
100
101 if (ret != Skill::Status::Succeeded)
102 {
103 return ret;
104 }
105
106 // putdown object
107 {
108 grasp_object::arondto::PutdownObjectAcceptedType args;
109 args.kinematicChainName = kinematicChainName;
110 args.objectEntityId = objName;
111 args.orientationalAccuracy = 0.1;
112 args.otherArmKinematicChainName = otherKinematicChainName;
113 args.positionalAccuracy = 20;
114 args.robot = robot;
115
116 ret = handoverObject._execute(args, callback);
117 }
118
119 return ret;
120 }*/
121} // namespace armarx::skills
static Duration MilliSeconds(std::int64_t milliSeconds)
Constructs a duration in milliseconds.
Definition Duration.cpp:48
This file is part of ArmarX.
const SkillDescription BringObjectToHumanDesc