1 #ifndef _GRL_VREP_ROBOT_ARM_JACOBIAN_HPP_ 2 #define _GRL_VREP_ROBOT_ARM_JACOBIAN_HPP_ 8 #include <boost/log/trivial.hpp> 9 #include <boost/exception/all.hpp> 10 #include <boost/algorithm/string.hpp> 12 #include <Eigen/Geometry> 21 namespace grl {
namespace vrep {
40 int numJoints =jointHandles_.size();
41 std::vector<float> ikCalculatedJointValues(numJoints,0);
47 auto ikGroupHandle_ = std::get<vrep::VrepRobotArmDriver::RobotIkGroup>(handleParams);
54 if(jacobianResult == -1)
56 BOOST_LOG_TRIVIAL(error) <<
"VrepInverseKinematicsController: couldn't compute Jacobian";
57 return Eigen::MatrixXf();
64 auto target = std::get<vrep::VrepRobotArmDriver::RobotTargetName>(handleParams);
65 auto tip = std::get<vrep::VrepRobotArmDriver::RobotTipName>(handleParams);
83 ,&ikCalculatedJointValues[0]
89 BOOST_LOG_TRIVIAL(error) <<
"VrepInverseKinematicsController: didn't run inverse kinematics";
90 return Eigen::MatrixXf();
107 #ifdef IGNORE_ROTATION 130 Eigen::Map<Eigen::Matrix<float,Eigen::Dynamic,Eigen::Dynamic,Eigen::RowMajor> > mtestjacobian(jacobian,jacobianSize[1],jacobianSize[0]);
131 Eigen::MatrixXf eigentestJacobian = mtestjacobian.rowwise().reverse().transpose();
133 return eigentestJacobian;
143 #endif // _GRL_VREP_ROBOT_ARM_JACOBIAN_HPP_ bool getState(State &state)
ptrSimGetIkGroupMatrix simGetIkGroupMatrix
C++ interface for any open chain V-REP robot arm.
ptrSimComputeJacobian simComputeJacobian
Eigen::Affine3d getObjectTransform(int objectHandle, int relativeToObjectHandle=-1)
Eigen::MatrixXf getJacobian(vrep::VrepRobotArmDriver &driver, bool jacobianOnly=false)
get the Jacobian as calculated by vrep in an Eigen::MatrixXf in column major format ...
const VrepHandleParams & getVrepHandleParams()
ptrSimCheckIkGroup simCheckIkGroup
void setObjectTransform(int objectHandle, int relativeToObjectHandle, T &transform)
const std::vector< int > & getJointHandles()
std::tuple< JointScalar, JointScalar, JointScalar, JointScalar, JointScalar, TransformationMatrices, JointStateTag, JointScalar > State