Package Summary

Tags No category tags.
Version 1.3.0
License GPL
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/shadow-robot/sr_interface.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2020-09-01
Dev Status UNMAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Provides additionnal KDL functions or modified functions to handle coupling in joints as well as 3D IK solutions for less than 6 DOF chains.

Additional Links

Maintainers

  • Shadow Robot's software team

Authors

  • Juan Antonio Corrales Ramon (UPMC)
Copyright UPMC 2012

This package contains KDL functions augmented with coupling capabilities.
It can be used in any IK module that requires coupling capable FK/IK. It is based on an URDF chain.

It should not be Shadow hand specific as the coupling coefficient can be set to anything from an outer function call
(for example hand_kinematics uses it as well as cartesian controller, setting the coupling coefficient accordingly)

Usage :
------

    * Init the KDL chain

KDL::Chain_coupling from this package inherits standard KCL::Chain and so can be filled correctly by standard functions
as long as you cast KDL::Chain_coupling to KDL:Chain before. Make sure you correctly fill additionnal parts of
KDL::Chain_coupling to your needs (coupling function etc...)

look at robot_mechanism_controllers for the cartesian controller to see how to fill a KDL chain from an URDF chain

ex :
  KDL::Chain_coupling kdl_chain_;
  KDL::Tree kdl_tree;
  kdl_parser::treeFromUrdfModel(robot_state->model_->robot_model_,kdl_tree);
  KDL::Chain kdl_chain_base= (KDL::Chain &)kdl_chain_; //cast to parent class
  kdl_tree.getChain(root_name_,tip_name,kdl_chain_base);
  chain_.init(robot_state_, root_name_, tip_name); //chain_ is a pr2_mechanism chain
  chain_.toKDL(kdl_chain_base);

   // Initialize coupling information in KDL chain
  kdl_chain_.setUpdateCouplingFunction(updateCouplingFF);

    * Updating the coupling

Before each IK/FK call, you should call the update coupling function (so variable coupling is possible)

best is to create a coupling function returning an Eigen matrix 

ex :
Eigen::MatrixXd updateCouplingFF(const KDL::JntArray& q)
{
  Eigen::MatrixXd cm(4,3); // must be the correct size
  //fill the matrix here
  return cm;
}




tutorial later to come.



CHANGELOG
No CHANGELOG found.

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

System Dependencies

No direct system dependencies.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged kdl_coupling at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.3.0
License GPL
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/shadow-robot/sr_interface.git
VCS Type git
VCS Version melodic-devel
Last Updated 2021-12-10
Dev Status UNMAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Provides additionnal KDL functions or modified functions to handle coupling in joints as well as 3D IK solutions for less than 6 DOF chains.

Additional Links

Maintainers

  • Shadow Robot's software team

Authors

  • Juan Antonio Corrales Ramon (UPMC)
Copyright UPMC 2012

This package contains KDL functions augmented with coupling capabilities.
It can be used in any IK module that requires coupling capable FK/IK. It is based on an URDF chain.

It should not be Shadow hand specific as the coupling coefficient can be set to anything from an outer function call
(for example hand_kinematics uses it as well as cartesian controller, setting the coupling coefficient accordingly)

Usage :
------

    * Init the KDL chain

KDL::Chain_coupling from this package inherits standard KCL::Chain and so can be filled correctly by standard functions
as long as you cast KDL::Chain_coupling to KDL:Chain before. Make sure you correctly fill additionnal parts of
KDL::Chain_coupling to your needs (coupling function etc...)

look at robot_mechanism_controllers for the cartesian controller to see how to fill a KDL chain from an URDF chain

ex :
  KDL::Chain_coupling kdl_chain_;
  KDL::Tree kdl_tree;
  kdl_parser::treeFromUrdfModel(robot_state->model_->robot_model_,kdl_tree);
  KDL::Chain kdl_chain_base= (KDL::Chain &)kdl_chain_; //cast to parent class
  kdl_tree.getChain(root_name_,tip_name,kdl_chain_base);
  chain_.init(robot_state_, root_name_, tip_name); //chain_ is a pr2_mechanism chain
  chain_.toKDL(kdl_chain_base);

   // Initialize coupling information in KDL chain
  kdl_chain_.setUpdateCouplingFunction(updateCouplingFF);

    * Updating the coupling

Before each IK/FK call, you should call the update coupling function (so variable coupling is possible)

best is to create a coupling function returning an Eigen matrix 

ex :
Eigen::MatrixXd updateCouplingFF(const KDL::JntArray& q)
{
  Eigen::MatrixXd cm(4,3); // must be the correct size
  //fill the matrix here
  return cm;
}




tutorial later to come.



CHANGELOG
No CHANGELOG found.

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

System Dependencies

No direct system dependencies.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged kdl_coupling at Robotics Stack Exchange