36#include <ArmarXCore/interface/serialization/Eigen.h>
41#include <RobotAPI/interface/units/GraspCandidateProviderInterface.h>
86 GraspTrajectory(
const Eigen::Matrix4f& tcpStart,
const Eigen::VectorXf& handJointsStart);
89 const Eigen::VectorXf& handJointsTarget,
95 const Eigen::Matrix4f& tcpTarget,
96 const Eigen::VectorXf& handJointsTarget,
102 const Eigen::Matrix4f& tcpTarget,
103 const Eigen::VectorXf& handJointsTarget,
112 void getIndex(
float t,
int& i1,
int& i2,
float& f);
118 Eigen::Matrix4f
GetPose(
float t);
141 const Eigen::Matrix3f& rotation);
148 const Eigen::Vector3f& handForward = Eigen::Vector3f::UnitZ());
152 VirtualRobot::RobotNodePtr tcp = VirtualRobot::RobotNodePtr(),
164 void updateKeypointMap();
167 std::vector<KeypointPtr> keypoints;
168 std::map<float, size_t> keypointMap;
Eigen::Matrix3f getTargetOrientation() const
Eigen::VectorXf handJointsTarget
Eigen::VectorXf feedForwardHandJointsVelocity
Eigen::Vector3f getTargetPosition() const
void updateVelocities(const KeypointPtr &prev, float dt)
Eigen::Matrix4f getTargetPose() const
Eigen::Vector3f feedForwardPosVelocity
Eigen::Vector3f feedForwardOriVelocity
Keypoint(const Eigen::Matrix4f &tcpTarget, const Eigen::VectorXf &handJointsTarget)
Eigen::Matrix4f tcpTarget
Eigen::VectorXf GetHandValues(float t)
void removeKeypoint(size_t index)
float getDuration() const
Eigen::Vector3f GetOrientationDerivative(float t)
Eigen::Matrix4f getStartPose()
Eigen::Matrix4f GetPose(float t)
SimpleDiffIK::Reachability calculateReachability(VirtualRobot::RobotNodeSetPtr rns, VirtualRobot::RobotNodePtr tcp=VirtualRobot::RobotNodePtr(), SimpleDiffIK::Parameters params=SimpleDiffIK::Parameters())
Eigen::Vector3f GetPositionDerivative(float t)
void addKeypoint(const Eigen::Matrix4f &tcpTarget, const Eigen::VectorXf &handJointsTarget, float dt)
GraspTrajectoryPtr getClone()
GraspTrajectoryPtr getTranslatedAndRotated(const Eigen::Vector3f &translation, const Eigen::Matrix3f &rotation)
static GraspTrajectoryPtr ReadFromString(const std::string &xml)
size_t getKeypointCount() const
std::vector< Eigen::Vector3f > getAllKeypointPositions()
Eigen::Vector3f GetPosition(float t)
GraspTrajectoryKeypoint Keypoint
void setKeypointDt(size_t index, float dt)
std::vector< Eigen::Matrix3f > getAllKeypointOrientations()
std::shared_ptr< Keypoint > KeypointPtr
void replaceKeypoint(size_t index, const Eigen::Matrix4f &tcpTarget, const Eigen::VectorXf &handJointsTarget, float dt)
GraspTrajectory(const Eigen::Matrix4f &tcpStart, const Eigen::VectorXf &handJointsStart)
GraspTrajectory()=default
Eigen::VectorXf GetHandJointsDerivative(float t)
GraspTrajectoryPtr getTransformed(const Eigen::Matrix4f &transform)
int GetHandJointCount() const
KeypointPtr & getKeypoint(int i)
void getIndex(float t, int &i1, int &i2, float &f)
KeypointPtr & lastKeypoint()
Length calculateLength() const
std::vector< Eigen::Matrix4f > getAllKeypointPoses()
Eigen::Matrix3f GetOrientation(float t)
void insertKeypoint(size_t index, const Eigen::Matrix4f &tcpTarget, const Eigen::VectorXf &handJointsTarget, float dt)
GraspTrajectoryPtr getTransformedToGraspPose(const Eigen::Matrix4f &target, const Eigen::Vector3f &handForward=Eigen::Vector3f::UnitZ())
static GraspTrajectoryPtr ReadFromReader(const RapidXmlReaderPtr &reader)
Eigen::Vector6f GetTcpDerivative(float t)
static GraspTrajectoryPtr ReadFromFile(const grasping::GraspCandidatePtr &cnd)
void writeToFile(const std::string &filename)
Matrix< float, 6, 1 > Vector6f
This file offers overloads of toIce() and fromIce() functions for STL container types.
std::shared_ptr< RapidXmlReader > RapidXmlReaderPtr
auto transform(const Container< InputT, Alloc > &in, OutputT(*func)(InputT const &)) -> Container< OutputT, typename std::allocator_traits< Alloc >::template rebind_alloc< OutputT > >
Convenience function (with less typing) to transform a container of type InputT into the same contain...
std::shared_ptr< class GraspTrajectory > GraspTrajectoryPtr