15 std::map<std::string, float>
16 MoveJointsWithVelocity::filterJointTargetValues(
17 const NameValueMap& jointsTargetValues,
18 const std::vector<std::string>& disabledJoints)
const
20 std::map<std::string, float> filtered;
21 for (
const auto& [jointName, v] : jointsTargetValues)
23 if (std::find(disabledJoints.begin(), disabledJoints.end(), jointName) !=
27 <<
" because it was explictly disabled in skill params.";
30 filtered[jointName] = v;
38 auto filtered = this->filterJointTargetValues(in.parameters.jointsTargetVelocities,
39 in.parameters.disabledJoints);
41 auto jointNames = simox::alg::get_keys(filtered);
43 for (
auto& [k, v] : filtered)
54 ::armarx::skills::Skill::MainResult
57 auto filtered = this->filterJointTargetValues(in.parameters.jointsTargetVelocities,
58 in.parameters.disabledJoints);
60 auto jointNames = simox::alg::get_keys(filtered);
66 srv_.kinematicUnit->requestJoints(jointNames);
68 catch (
const armarx::KinematicUnitUnavailable& e)
70 ARMARX_IMPORTANT <<
"Failed to request joints. Terminating. Joints unavailable:"
76 ARMARX_INFO <<
"Moving joints with vel " << filtered;
78 switchControlMode(filtered, eVelocityControl);
80 moveJoints(filtered, in.parameters.duration);
85 MoveJointsWithVelocity::switchControlMode(
const NameValueMap& jointsTargetValues,
86 const ControlMode controlMode)
88 armarx::NameControlModeMap modeMap;
89 for (
const auto& [jointName, _] : jointsTargetValues)
91 modeMap[jointName] = controlMode;
93 srv_.kinematicUnit->switchControlMode(modeMap);
97 MoveJointsWithVelocity::moveJoints(
const NameValueMap& jointsTargetVelocities,
98 const armarx::core::time::Duration& dur)
100 srv_.kinematicUnit->setJointVelocities(jointsTargetVelocities);
109 clock.waitFor(sleepTime);
static Duration MilliSeconds(std::int64_t milliSeconds)
Constructs a duration in milliseconds.
::armarx::skills::SkillDescription GetSkillDescription()
MoveJointsWithVelocity(const Services &)
arondto::MoveJointsWithVelocityParams ParamType
armarx::core::time::DateTime started
static MainResult MakeSucceededResult(aron::data::DictPtr data=nullptr)
virtual MainResult main()
Override this method with the actual implementation.
void throwIfSkillShouldTerminate(const std::string &abortedMessage="") const
virtual ExitResult exit()
Override this method with the actual implementation.
static MainResult MakeFailedResult(aron::data::DictPtr data=nullptr)
#define ARMARX_INFO
The normal logging level.
#define ARMARX_IMPORTANT
The logging level for always important information, but expected behaviour (in contrast to ARMARX_WAR...
armarx::core::time::Duration Duration
This file offers overloads of toIce() and fromIce() functions for STL container types.
This file is part of ArmarX.
std::chrono::system_clock Clock
::armarx::KinematicUnitInterfacePrx kinematicUnit
A result struct for skill exit function.