54 if (!
scene_->AlwaysUpdatesCollisionScene())
55 cscene_->UpdateCollisionObjectTransforms();
58 for (
int i = 0; i <
dim_; ++i)
61 if (proxies.size() == 0)
69 closest_proxy.
distance = std::numeric_limits<double>::max();
70 for (
const auto& tmp_proxy : proxies)
72 const bool is_robot_to_robot = (tmp_proxy.e1->is_robot_link || tmp_proxy.e1->closest_robot_link.lock()) && (tmp_proxy.e2->is_robot_link || tmp_proxy.e2->closest_robot_link.lock());
74 if ((tmp_proxy.distance - margin) < closest_proxy.
distance)
76 closest_proxy = tmp_proxy;
85 KDL::Frame arel = KDL::Frame(closest_proxy.
e1->frame.Inverse(KDL::Vector(
87 KDL::Frame brel = KDL::Frame(closest_proxy.
e2->frame.Inverse(KDL::Vector(
90 Eigen::MatrixXd tmpJ =
scene_->GetKinematicTree().Jacobian(
91 closest_proxy.
e1, arel,
nullptr, KDL::Frame());
92 J.row(i) += (closest_proxy.
normal1.transpose() * tmpJ.topRows<3>());
93 tmpJ =
scene_->GetKinematicTree().Jacobian(closest_proxy.
e2, brel,
nullptr,
95 J.row(i) -= (closest_proxy.
normal1.transpose() * tmpJ.topRows<3>());