30#include <ArmarXCore/interface/observers/ObserverInterface.h>
33#include <RobotAPI/interface/components/TrajectoryPlayerInterface.h>
34#include <RobotAPI/interface/units/RobotPoseUnitInterface.h>
55 "Name of the KinematicUnit to which the joint values should be sent");
57 "Name of the KinematicUnit reporting topic");
62 "Comma-separated list with names of ArmarXProjects (e.g. 'Armar3,Armar4'). The MMM "
63 "XML File can be specified relatively to a data path of one of these projects.");
67 "FPS with which the recording should be executed. Velocities will be adapted.");
69 "LoopPlayback",
false,
"Specify whether motion should be repeated after execution");
73 "Specify whether the PID Controller should be used (==velocity control)");
80 "The PID will never set a velocity above this threshold (degree/s)");
84 "The name of the robot node set to be used (only need for PIDController mode)");
87 "If this value is set, the root pose of the motion "
88 "is set for this node instead of the root joint.");
92 "Specify whether RobotPoseUnit should be used to move the "
93 "robot's position. Only useful in simulation.");
97 "Name of the RobotPoseUnit to which the robot position should be sent");
99 "Offset.x", 0.f,
"x component of initial robot position (mm)");
101 "Offset.y", 0.f,
"y component of initial robot position (mm)");
103 "Offset.z", 0.f,
"z component of initial robot position (mm)");
105 "Offset.roll", 0.f,
"Initial robot pose: roll component of RPY angles (radian)");
107 "Offset.pitch", 0.f,
"Initial robot pose: pitch component of RPY angles (radian)");
109 "Offset.yaw", 0.f,
"Initial robot pose: yaw component of RPY angles (radian)");
126 public armarx::TrajectoryPlayerInterface
136 return "TrajectoryPlayer";
146 const ::Ice::Current& = Ice::emptyCurrent)
override;
163 const ::Ice::Current& = Ice::emptyCurrent)
override;
165 const ::Ice::Current& = Ice::emptyCurrent)
override;
216 bool setJointsInUse(
const std::string& jointName,
bool inUse,
const Ice::Current&)
override;
223 const Ice::Current&)
override
230 const Ice::Current&)
override;
256 const Ice::Current&)
override
328 std::map<std::string, PIDControllerPtr>
PIDs;
352 void updatePIDController(
const NameValueMap& angles);
356 IceUtil::Time startCal;
359 std::recursive_mutex motionMutex;
360 NameValueMap latestJointAngles;
361 std::mutex jointAnglesMutex;
365 VirtualRobot::RobotNodePtr customRootNode;
Default component property definition container.
ComponentPropertyDefinitions(std::string prefix, bool hasObjectNameParameter=true)
Baseclass for all ArmarX ManagedIceObjects requiring properties.
IceUtil::Handle< PeriodicTask< T > > pointer_type
Shared pointer type for convenience.
std::string prefix
Prefix of the properties such as namespace, domain, component name, etc.
PropertyDefinition< PropertyType > & defineOptionalProperty(const std::string &name, PropertyType defaultValue, const std::string &description="", PropertyDefinitionBase::PropertyConstness constness=PropertyDefinitionBase::eConstant)
PropertyDefinition< PropertyType > & defineRequiredProperty(const std::string &name, const std::string &description="", PropertyDefinitionBase::PropertyConstness constness=PropertyDefinitionBase::eConstant)
TrajectoryPlayerPropertyDefinitions(std::string prefix)
Brief description of class TrajectoryPlayer.
void reportJointAccelerations(const NameValueMap &, Ice::Long, bool, const Ice::Current &) override
void updateTargetValues()
KinematicUnitInterfacePrx kinematicUnit
void setIsVelocityControl(bool isVelocity, const ::Ice::Current &=Ice::emptyCurrent) override
void onInitComponent() override
void setOffset(const Eigen::Matrix4f &offset, const Ice::Current &) override
std::map< std::string, PIDControllerPtr > PIDs
Ice::StringSeq jointNames
void reportJointStatuses(const NameStatusMap &, Ice::Long, bool, const Ice::Current &) override
bool pauseTrajectoryPlayer(const Ice::Current &) override
std::string modelFileName
double getEndTime(const Ice::Current &) override
void reportJointAngles(const NameValueMap &angles, Ice::Long, bool, const Ice::Current &) override
void onDisconnectComponent() override
bool setJointsInUse(const std::string &jointName, bool inUse, const Ice::Current &) override
void considerConstraints(bool, const Ice::Current &) override
NameValueMap targetPositionValues
bool resetTrajectoryPlayer(bool moveToFrameZeroPose, const Ice::Current &) override
bool checkSelfCollision()
double getCurrentTime(const Ice::Current &) override
void reportJointCurrents(const NameValueMap &, Ice::Long, bool, const Ice::Current &) override
armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
double getTrajEndTime(const Ice::Current &) override
NameValueMap nullVelocities
void loadJointTraj(const TrajectoryBasePtr &trajs, const ::Ice::Current &=Ice::emptyCurrent) override
std::string armarxProject
void reportControlModeChanged(const NameControlModeMap &, Ice::Long, bool, const Ice::Current &) override
void setIsPreview(bool isPreview, const Ice::Current &) override
bool startTrajectoryPlayer(const Ice::Current &) override
void reportJointMotorTemperatures(const NameValueMap &, Ice::Long, bool, const Ice::Current &) override
DebugObserverInterfacePrx debugObserver
void onConnectComponent() override
NameValueMap targetVelocityValues
std::map< std::string, bool > jointNamesUsed
std::map< std::string, bool > limitlessMap
void setLoopPlayback(bool loop, const Ice::Current &) override
VirtualRobot::RobotPtr localModel
bool stopTrajectoryPlayer(const Ice::Current &) override
PeriodicTask< TrajectoryPlayer >::pointer_type task
void reportJointVelocities(const NameValueMap &, Ice::Long, bool, const Ice::Current &) override
void setEndTime(double end, const Ice::Current &) override
void onExitComponent() override
void loadBasePoseTraj(const TrajectoryBasePtr &trajs, const ::Ice::Current &=Ice::emptyCurrent) override
void enableRobotPoseUnit(bool isRobotPose, const Ice::Current &) override
bool robotPoseUnitEnabled
std::string getDefaultName() const override
IceUtil::Time motionStartTime
DebugDrawerInterfacePrx debugDrawer
void reportJointTorques(const NameValueMap &, Ice::Long, bool, const Ice::Current &) override
::armarx::TrajectoryPtr basePoseTraj
::armarx::TrajectoryPtr jointTraj
#define ARMARX_WARNING
The logging level for unexpected behaviour, but not a serious problem.
std::shared_ptr< class Robot > RobotPtr
This file offers overloads of toIce() and fromIce() functions for STL container types.
::IceInternal::ProxyHandle<::IceProxy::armarx::DebugObserverInterface > DebugObserverInterfacePrx
IceInternal::Handle< Trajectory > TrajectoryPtr
IceInternal::Handle< Pose > PosePtr
::IceInternal::Handle<::armarx::TrajectoryPlayer > TrajectoryPlayerPtr
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.
::IceInternal::ProxyHandle<::IceProxy::armarx::DebugDrawerInterface > DebugDrawerInterfacePrx