1 #include <kdl_parser/kdl_parser.hpp> 2 #include <kdl/chain.hpp> 3 #include <kdl/chainjnttojacsolver.hpp> 4 #include <urdf/model.h> 6 #include "support/header/conversions.h" 9 int main(
int argc,
char **argv){
12 std::string filename =
"/home/tori/UWsim/UWsim/src/uwsim/data/scenes/g500ARM5.urdf";
13 TiXmlDocument file_xml(filename);
19 if (!my_model.initXml(&file_xml)){
20 ROS_ERROR(
"Failed to parse urdf robot model");
23 if (!kdl_parser::treeFromUrdfModel(my_model, my_tree)){
24 ROS_ERROR(
"Failed to construct kdl tree");
28 my_tree.getChain(
"base_link",
"part4_base", myChain);
30 KDL::ChainJntToJacSolver solver(myChain);
32 KDL::JntArray jointpositions = KDL::JntArray(myChain.getNrOfJoints());
34 std::vector<double> pos;
40 for(
unsigned int i=0; i<myChain.getNrOfJoints(); i++){
42 jointpositions(i)=pos[i];
46 jacob.resize(myChain.getNrOfJoints());
47 solver.JntToJac(jointpositions, jacob);
50 Eigen::MatrixXd jacob_eig = CONV::jacobian_kdl2eigen(jacob);
51 std::cout << jacob.data <<
"\n\n";
52 std::cout << jacob_eig <<
"\n\n";