WhatCanYouSeeNow.cpp
Go to the documentation of this file.
1#include "WhatCanYouSeeNow.h"
2
4
6
7namespace armarx::skills
8{
9
10 SkillDescription WhatCanYouSeeNow::Description = skills::SkillDescription(
11 {"WhatCanYouSeeNow"},
12 "Move the head to three known configurations and search for objects",
13 nullptr,
15 visual_search::arondto::WhatCanYouSeeNowAcceptedType::ToAronType());
16
24
26 WhatCanYouSeeNow::main(const SpecializedMainInput& in)
27 {
31
32 robotReader.connect(mns);
33 objectWriter.connect(mns);
34 objectReader.connect(mns);
35
36 // //////////////////////////////
37 // get robot
38 // //////////////////////////////
39 auto robot =
40 robotReader.getSynchronizedRobot(in.parameters.robotName,
42 VirtualRobot::RobotIO::RobotDescription::eStructure);
43 if (!robot)
44 {
45 ARMARX_ERROR << "Lost robot.";
46 return {TerminatedSkillStatus::Failed, nullptr};
47 }
48
49 // Look down
50 {
51 skills::joint_control::arondto::MoveJointsToPositionAcceptedType params;
52 params.robotName = in.parameters.robotName;
53 params.jointTargetTolerance = 0.03; // Todo
54 params.jointMaxSpeed = 0.75;
55 params.accelerationTime = 500;
56 params.setVelocitiesToZeroAtEnd = true;
57 params.targetJointMap["Neck_1_Pitch"] = 0.6;
58
59 SkillProxy prx({manager,
62
63 if (prx.executeFullSkill(getSkillId().toString(in.executorName), params.toAron())
65 {
66 return {TerminatedSkillStatus::Failed, nullptr};
67 }
68 }
69
70 // //////////////////////////////
71 // get object pose
72 // //////////////////////////////
73 objectReader.requestLocalization(
74 in.parameters.objectEntityId, "", core::time::Duration::MilliSeconds(500));
75 std::this_thread::sleep_for(std::chrono::milliseconds(500));
76
77 // Look up
78 {
79 skills::joint_control::arondto::MoveJointsToPositionAcceptedType params;
80 params.robotName = in.parameters.robotName;
81 params.jointTargetTolerance = 0.03; // Todo
82 params.jointMaxSpeed = 0.75;
83 params.accelerationTime = 500;
84 params.setVelocitiesToZeroAtEnd = true;
85 params.targetJointMap["Neck_1_Pitch"] = 0.0;
86
87 SkillProxy prx({manager,
88 context.jointControlSkillProvider,
90
91 if (prx.executeFullSkill(getSkillId().toString(in.executorName), params.toAron())
93 {
94 return {TerminatedSkillStatus::Failed, nullptr};
95 }
96 }
97
98 return {TerminatedSkillStatus::Succeeded, nullptr};
99 }
100} // namespace armarx::skills
static Duration MilliSeconds(std::int64_t milliSeconds)
Constructs a duration in milliseconds.
Definition Duration.cpp:48
The memory name system (MNS) client.
void connect(armem::client::MemoryNameSystem &memoryNameSystem)
std::map< std::string, bool > requestLocalization(const ObjectID &instanceId, const armarx::core::time::Duration &until)
void connect(armem::client::MemoryNameSystem &memoryNameSystem)
virtual void connect(armem::client::MemoryNameSystem &memoryNameSystem)
VirtualRobot::RobotPtr getSynchronizedRobot(const std::string &name, const VirtualRobot::RobotIO::RobotDescription &loadMode=VirtualRobot::RobotIO::RobotDescription::eStructure, bool blocking=true)
static DateTime Now()
Definition DateTime.cpp:51
static Duration MilliSeconds(std::int64_t milliSeconds)
Constructs a duration in milliseconds.
Definition Duration.cpp:48
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
VisualSearchSkill(armem::client::MemoryNameSystem &mns, armarx::viz::Client &arviz, const std::string &layerName, VisualSearchSkillContext &c)
VisualSearchSkillContext & context
armarx::skills::visual_search::arondto::WhatCanYouSeeNowAcceptedType ArgType
static SkillDescription Description
WhatCanYouSeeNow(armem::client::MemoryNameSystem &mns, armarx::viz::Client &arviz, VisualSearchSkillContext &context)
#define ARMARX_ERROR
The logging level for unexpected behaviour, that must be fixed.
Definition Logging.h:196
This file is part of ArmarX.
const char * toString(InteractionFeedbackType type)
Definition Interaction.h:28
A result struct for th main method of a skill.
Definition Skill.h:62
armem::client::MemoryNameSystem mns