diff --git a/src/axial-handle.cc b/src/axial-handle.cc index 0ef632faddeb3ba7a731194cd7d7749476aabdd1..42dc75a80ed7e249972b962a2bd01104b4961b0d 100644 --- a/src/axial-handle.cc +++ b/src/axial-handle.cc @@ -35,61 +35,66 @@ namespace hpp { (const GripperPtr_t& gripper) const { using boost::assign::list_of; - std::vector <bool> mask = list_of (true)(true)(true)(false)(true)(true); - Transform3f transform = inverse (localPosition()) * gripper->objectPositionInJoint (); - return RelativeTransformation::create ("Transformation_(1,1,1,0,1,1)_" + name () + "_" + gripper->name (), - gripper->joint()->robot(), gripper->joint (), joint(), - inverse (localPosition()) * gripper->objectPositionInJoint (), mask); + std::vector <bool> mask = list_of (true)(true)(true)(true)(true)(false); + return RelativeTransformation::create + ("Transformation_(1,1,1,1,1,1)_" + name () + "_" + gripper->name (), + gripper->joint()->robot(), gripper->joint (), joint (), + gripper->objectPositionInJoint (), localPosition(), mask); } DifferentiableFunctionPtr_t AxialHandle::createGraspComplement (const GripperPtr_t& gripper) const { using boost::assign::list_of; - std::vector <bool> mask = list_of (true)(false)(false); - Transform3f transform = inverse (localPosition()) * gripper->objectPositionInJoint (); - return RelativeOrientation::create ("Orientation_(1,0,0)_" + name () + "_" + gripper->name (), - gripper->joint()->robot(), gripper->joint (), joint(), transform.getRotation (), mask); + std::vector <bool> mask = list_of (false)(false)(false)(false)(true) + (false); + return RelativeTransformation::create + ("Transformation_(0,0,0,0,0,0)_" + name () + "_" + gripper->name (), + gripper->joint()->robot(), gripper->joint (), joint (), + gripper->objectPositionInJoint (), localPosition(), mask); } DifferentiableFunctionPtr_t AxialHandle::createPreGrasp (const GripperPtr_t& gripper) const { using boost::assign::list_of; - std::vector <bool> mask = list_of (false)(true)(true)(false)(true)(true); - return RelativeTransformation::create ("Transformation_(0,1,1,0,1,1)_" + name () + "_" + gripper->name (), - gripper->joint()->robot(), gripper->joint (), joint(), - inverse (localPosition()) * gripper->objectPositionInJoint (), mask); + std::vector <bool> mask = list_of (false)(true)(true)(true)(true)(false); + return RelativeTransformation::create + ("Transformation_(0,1,1,1,1,1)_" + name () + "_" + gripper->name (), + gripper->joint()->robot(), gripper->joint (), joint (), + gripper->objectPositionInJoint (), localPosition(), mask); } DifferentiableFunctionPtr_t AxialHandle::createPreGraspComplement - (const GripperPtr_t& gripper) const + (const GripperPtr_t& gripper) const { using boost::assign::list_of; - std::vector <bool> mask = list_of (true)(false)(false); - Transform3f transform = inverse (localPosition()) * gripper->objectPositionInJoint (); - fcl::Vec3f target = transform.getTranslation () - + fcl::Vec3f (clearance () + gripper->clearance (),0,0); - return RelativePosition::create ("Position_(1,0,0)_" + name () + "_" + gripper->name (), - gripper->joint()->robot(), gripper->joint (), joint(), target, fcl::Vec3f (0,0,0), mask); + std::vector <bool> mask = list_of (true)(false)(false)(false)(true) + (false); + Transform3f transform (gripper->objectPositionInJoint ().getRotation (), + gripper->objectPositionInJoint ().getTranslation () + + fcl::Vec3f (gripper->clearance () + + clearance (),0,0)); + return RelativeTransformation::create + ("Transformation_(1,0,0,0,0,0)_" + name () + "_" + gripper->name (), + gripper->joint()->robot(), gripper->joint (), joint (), + transform, localPosition(), mask); } - DifferentiableFunctionPtr_t AxialHandle::createPreGraspComplement - (const GripperPtr_t& gripper, const value_type& shift) const + (const GripperPtr_t& gripper, const value_type& shift) const { - //using boost::assign::list_of; - //std::vector <bool> mask = list_of (true)(false)(false)(true)(false)(false); - //Transform3f transform = inverse (localPosition()) * gripper->objectPositionInJoint (); - //transform.setTranslation (transform.getTranslation () + fcl::Vec3f (shift,0,0)); - //return RelativeTransformation::create - //(gripper->joint()->robot(), gripper->joint (), joint(), transform, mask); using boost::assign::list_of; - std::vector <bool> mask = list_of (true)(false)(false); - Transform3f transform = inverse (localPosition()) * gripper->objectPositionInJoint (); - fcl::Vec3f target = transform.getTranslation () + fcl::Vec3f (shift,0,0); - return RelativePosition::create ("Position_(1,0,0)_" + name () + "_" + gripper->name (), - gripper->joint()->robot(), gripper->joint (), joint(), target, fcl::Vec3f (0,0,0), mask); + std::vector <bool> mask = list_of (true)(false)(false)(false)(true) + (false); + Transform3f transform (gripper->objectPositionInJoint ().getRotation (), + gripper->objectPositionInJoint ().getTranslation () + + fcl::Vec3f (gripper->clearance () + + clearance () + shift,0,0)); + return RelativeTransformation::create + ("Transformation_(1,0,0,0,0,0)_" + name () + "_" + gripper->name (), + gripper->joint()->robot(), gripper->joint (), joint (), + transform, localPosition(), mask); } HandlePtr_t AxialHandle::clone () const diff --git a/src/handle.cc b/src/handle.cc index b456ea69e934f9d7bb541bc8e449ec940b1b5c71..473f7d9895a0f770db5e7da4821de771f1ff4fb5 100644 --- a/src/handle.cc +++ b/src/handle.cc @@ -17,6 +17,7 @@ // hpp-manipulation. If not, see // <http://www.gnu.org/licenses/>. +#include <hpp/util/debug.hh> #include <hpp/manipulation/handle.hh> #include <boost/assign/list_of.hpp> @@ -37,19 +38,22 @@ namespace hpp { { using boost::assign::list_of; std::vector <bool> mask = list_of (true)(true)(true)(true)(true)(true); - return RelativeTransformation::create ("Transformation_(1,1,1,1,1,1)_" + name () + "_" + gripper->name (), - gripper->joint()->robot(), gripper->joint (), joint(), - inverse (localPosition()) * gripper->objectPositionInJoint (), mask); + return RelativeTransformation::create + ("Transformation_(1,1,1,1,1,1)_" + name () + "_" + gripper->name (), + gripper->joint()->robot(), gripper->joint (), joint (), + gripper->objectPositionInJoint (), localPosition(), mask); } DifferentiableFunctionPtr_t Handle::createGraspComplement (const GripperPtr_t& gripper) const { using boost::assign::list_of; - std::vector <bool> mask = list_of (false)(false)(false)(false)(false)(false); - return RelativeTransformation::create ("Transformation_(0,0,0,0,0,0)_" + name () + "_" + gripper->name (), - gripper->joint()->robot(), gripper->joint (), joint(), - inverse (localPosition()) * gripper->objectPositionInJoint (), mask); + std::vector <bool> mask = list_of (false)(false)(false)(false)(false) + (false); + return RelativeTransformation::create + ("Transformation_(0,0,0,0,0,0)_" + name () + "_" + gripper->name (), + gripper->joint()->robot(), gripper->joint (), joint (), + gripper->objectPositionInJoint (), localPosition(), mask); } DifferentiableFunctionPtr_t Handle::createPreGrasp @@ -57,32 +61,42 @@ namespace hpp { { using boost::assign::list_of; std::vector <bool> mask = list_of (false)(true)(true)(true)(true)(true); - Transform3f transform = inverse (localPosition()) * gripper->objectPositionInJoint (); - return RelativeTransformation::create ("Transformation_(0,1,1,1,1,1)_" + name () + "_" + gripper->name (), - gripper->joint()->robot(), gripper->joint (), joint(), transform, mask); + return RelativeTransformation::create + ("Transformation_(0,1,1,1,1,1)_" + name () + "_" + gripper->name (), + gripper->joint()->robot(), gripper->joint (), joint (), + gripper->objectPositionInJoint (), localPosition(), mask); } DifferentiableFunctionPtr_t Handle::createPreGraspComplement (const GripperPtr_t& gripper) const { using boost::assign::list_of; - std::vector <bool> mask = list_of (true)(false)(false); - Transform3f transform = inverse (localPosition()) * gripper->objectPositionInJoint (); - fcl::Vec3f target = transform.getTranslation () - + fcl::Vec3f (clearance () + gripper->clearance (),0,0); - return RelativePosition::create ("Position_(1,0,0)_" + name () + "_" + gripper->name (), - gripper->joint()->robot(), gripper->joint (), joint(), target, fcl::Vec3f (0,0,0), mask); + std::vector <bool> mask = list_of (true)(false)(false)(false)(false) + (false); + Transform3f transform (gripper->objectPositionInJoint ().getRotation (), + gripper->objectPositionInJoint ().getTranslation () + + fcl::Vec3f (gripper->clearance () + + clearance (),0,0)); + return RelativeTransformation::create + ("Transformation_(1,0,0,0,0,0)_" + name () + "_" + gripper->name (), + gripper->joint()->robot(), gripper->joint (), joint (), + transform, localPosition(), mask); } DifferentiableFunctionPtr_t Handle::createPreGraspComplement (const GripperPtr_t& gripper, const value_type& shift) const { using boost::assign::list_of; - std::vector <bool> mask = list_of (true)(false)(false); - Transform3f transform = inverse (localPosition()) * gripper->objectPositionInJoint (); - fcl::Vec3f target = transform.getTranslation () + fcl::Vec3f (shift,0,0); - return RelativePosition::create ("Position_(1,0,0)_" + name () + "_" + gripper->name (), - gripper->joint()->robot(), gripper->joint (), joint(), target, fcl::Vec3f (0,0,0), mask); + std::vector <bool> mask = list_of (true)(false)(false)(false)(false) + (false); + Transform3f transform (gripper->objectPositionInJoint ().getRotation (), + gripper->objectPositionInJoint ().getTranslation () + + fcl::Vec3f (gripper->clearance () + + clearance () + shift,0,0)); + return RelativeTransformation::create + ("Transformation_(1,0,0,0,0,0)_" + name () + "_" + gripper->name (), + gripper->joint()->robot(), gripper->joint (), joint (), + transform, localPosition(), mask); } HandlePtr_t Handle::clone () const