3#include <VirtualRobot/Grasping/GraspSet.h>
4#include <VirtualRobot/ManipulationObject.h>
5#include <VirtualRobot/RobotNodeSet.h>
8#include <RobotAPI/libraries/skills/provider/SkillProxy.h>
14 grasp_object::arondto::PutdownObjectAcceptedType
15 GetDefaultParameterization()
17 grasp_object::arondto::PutdownObjectAcceptedType ret;
18 ret.platformOrientationalAccuracy = 0.1;
19 ret.platformPositionalAccuracy = 10;
20 ret.tcpOrientationalAccuracy = 0.1;
21 ret.tcpPositionalAccuracy = 20;
28 "Putdown an object already in hand of robot",
31 grasp_object::arondto::PutdownObjectAcceptedType::ToAronType(),
32 GetDefaultParameterization().toAron()};
50 robotReader.connect();
51 objectReader.connect();
52 graspReader.connect();
53 objectWriter.connect();
59 robotReader.getSynchronizedRobot(in.parameters.robotName,
61 VirtualRobot::RobotIO::RobotDescription::eStructure);
66 auto objInstance = objectReader.queryLatestObjectInstance(in.parameters.objectEntityId);
74 ARMARX_CHECK(objInstance->attachment->agentName == in.parameters.robotName);
76 std::string kinematicChainName =
"LeftArm";
77 if (simox::alg::ends_with(objInstance->attachment->frameName,
" R"))
79 kinematicChainName =
"RightArm";
88 skills::grasp_object::arondto::MovePlatformForPutdownAcceptedType params;
89 params.robotName = in.parameters.robotName;
90 params.orientationalAccuracy = in.parameters.platformOrientationalAccuracy;
91 params.positionalAccuracy = in.parameters.platformPositionalAccuracy;
92 params.objectEntityId = in.parameters.objectEntityId;
93 params.tcpName = robot->getRobotNodeSet(kinematicChainName)->getTCP()->getName();
107 skills::grasp_object::arondto::ExecutePutdownAcceptedType params;
108 params.robotName = in.parameters.robotName;
109 params.orientationalAccuracy = in.parameters.platformOrientationalAccuracy;
110 params.positionalAccuracy = in.parameters.platformPositionalAccuracy;
111 params.objectEntityId = in.parameters.objectEntityId;
124 skills::grasp_object::arondto::OpenHandAndDetachAcceptedType params;
125 params.kinematicChainName = kinematicChainName;
126 params.objectEntityId = in.parameters.objectEntityId;
127 params.robotName = in.parameters.robotName;
143 Eigen::Matrix4f tcpOffset = Eigen::Matrix4f::Identity();
144 tcpOffset(0, 3) = 90;
145 tcpOffset(1, 3) = 10;
147 Eigen::Matrix4f tcpTargetPoseGlobal =
148 robot->getRobotNodeSet(kinematicChainName)->getTCP()->getGlobalPose() * tcpOffset;
150 skills::tcp_control::arondto::MoveTCPToTargetPoseAcceptedType params;
151 params.robotName = in.parameters.robotName;
152 params.kinematicChainName = kinematicChainName;
153 params.targetPoseGlobal = tcpTargetPoseGlobal;
154 params.orientationalAccuracy = in.parameters.tcpOrientationalAccuracy;
155 params.positionalAccuracy = in.parameters.tcpPositionalAccuracy;
158 context.tcpControlSkillProvider,
170 skills::joint_control::arondto::MoveJointsToPositionAcceptedType params;
171 params.robotName = in.parameters.robotName;
172 params.jointTargetTolerance = 0.03;
173 params.jointMaxSpeed = 0.75;
174 params.accelerationTime = 500;
175 params.setVelocitiesToZeroAtEnd =
true;
177 for (
const auto& j : robot->getRobotNodeSet(kinematicChainName)->getAllRobotNodes())
179 params.targetJointMap[j->getName()] = 0.0;
183 context.jointControlSkillProvider,
195 skills::grasp_object::arondto::MovePlatformAfterPutdownAcceptedType params;
196 params.robotName = in.parameters.robotName;
197 params.orientationalAccuracy = in.parameters.platformOrientationalAccuracy;
198 params.positionalAccuracy = in.parameters.platformPositionalAccuracy;
static Duration MilliSeconds(std::int64_t milliSeconds)
Constructs a duration in milliseconds.
The memory name system (MNS) client.
The VirtualRobotReader class.
static SkillDescription Description
static SkillDescription Description
static SkillDescription Description
static SkillDescription Description
static SkillDescription Description
PutdownObjectSkill(armem::client::MemoryNameSystem &mns, armarx::viz::Client &arviz, TwoArmGraspControlSkillContext &)
grasp_object::arondto::PutdownObjectAcceptedType ArgType
manager::dti::SkillManagerInterfacePrx manager
virtual MainResult main()
Override this method with the actual implementation.
SkillID getSkillId() const
Get the id of the skill.
TwoArmGraspControlSkill(armem::client::MemoryNameSystem &mns, armarx::viz::Client &arviz, const std::string &layerName, TwoArmGraspControlSkillContext &c)
TwoArmGraspControlSkillContext & context
#define ARMARX_CHECK(expression)
Shortcut for ARMARX_CHECK_EXPRESSION.
#define ARMARX_ERROR
The logging level for unexpected behaviour, that must be fixed.
This file is part of ArmarX.
const char * toString(InteractionFeedbackType type)
A result struct for th main method of a skill.
armarx::viz::Client arviz
armem::client::MemoryNameSystem mns