32#include <VirtualRobot/VirtualRobot.h>
34#include <RobotAPI/interface/units/GraspCandidateProviderInterface.h>
52 std::optional<std::string>
shape;
62 const std::optional<std::string>&
shape = std::nullopt);
70 const std::optional<std::string>&
shape = std::nullopt);
96 const armarx::NameValueMap& handJointsStart,
97 const std::optional<std::string>& shape = std::nullopt);
100 const armarx::NameValueMap& handJointsTarget,
102 const std::optional<std::string>& shape = std::nullopt);
108 const Eigen::Matrix4f& tcpTarget,
109 const armarx::NameValueMap& handJointsTarget,
111 const std::optional<std::string>& shape = std::nullopt);
116 const Eigen::Matrix4f& tcpTarget,
117 const armarx::NameValueMap& handJointsTarget,
119 const std::optional<std::string>& shape = std::nullopt);
127 void getIndex(
float t,
int& i1,
int& i2,
float& f)
const;
133 Eigen::Matrix4f
GetPose(
float t)
const;
140 std::optional<std::string>
GetShape(
float t)
const;
156 const Eigen::Matrix3f& rotation)
const;
163 const Eigen::Matrix4f& target,
164 const Eigen::Vector3f& handForward = Eigen::Vector3f::UnitZ())
const;
168 VirtualRobot::RobotNodePtr tcp = VirtualRobot::RobotNodePtr(),
179 void setFrame(
const std::string& frame);
180 const std::optional<std::string>&
getFrame()
const;
183 void updateKeypointMap();
186 std::vector<KeypointPtr> keypoints;
187 std::map<float, size_t> keypointMap;
189 std::optional<std::string> frame_;
Eigen::Matrix3f getTargetOrientation() const
void updateVelocities(const GraspTrajectoryKeypointPtr &prev, float deltat)
std::shared_ptr< GraspTrajectoryKeypoint > GraspTrajectoryKeypointPtr
GraspTrajectoryKeypoint()=default
armarx::NameValueMap handJointsTarget
Eigen::VectorXf feedForwardHandJointsVelocity
Eigen::Vector3f getTargetPosition() const
Eigen::Matrix4f getTargetPose() const
Eigen::Vector3f feedForwardPosVelocity
Eigen::Vector3f feedForwardOriVelocity
Eigen::Matrix4f tcpTarget
std::optional< std::string > shape
Eigen::VectorXf GetHandValues(float t)
void removeKeypoint(size_t index)
float getDuration() const
static GraspTrajectoryPtr ReadFromString(const std::string &xml)
std::optional< std::string > GetShape(float t) const
Eigen::Vector3f GetOrientationDerivative(float t)
Eigen::Matrix4f getStartPose()
Eigen::Matrix4f GetPose(float t)
const std::vector< KeypointPtr > & getAllKeypoints() const
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)
static GraspTrajectoryPtr ReadFromFile(const std::string &filename)
void setFrame(const std::string &frame)
GraspTrajectoryPtr getClone()
static GraspTrajectoryPtr ReadFromJSON(const std::string &filename)
GraspTrajectoryPtr getTranslatedAndRotated(const Eigen::Vector3f &translation, const Eigen::Matrix3f &rotation)
GraspTrajectoryPtr getTransformedToOtherHand() const
size_t getKeypointCount() const
const std::optional< std::string > & getFrame() const
std::vector< Eigen::Vector3f > getAllKeypointPositions()
Eigen::Vector3f GetPosition(float t)
Length calculateLength() const
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()=default
Eigen::VectorXf GetHandJointsDerivative(float t)
GraspTrajectoryPtr getTransformed(const Eigen::Matrix4f &transform)
KeypointPtr & getKeypoint(int i)
void getIndex(float t, int &i1, int &i2, float &f)
static GraspTrajectoryPtr ReadFromReader(const RapidXmlReaderPtr &reader)
KeypointPtr & lastKeypoint()
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())
Eigen::Vector6f GetTcpDerivative(float t)
void writeToFile(const std::string &filename)
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