Skip to content

Commit 1055738

Browse files
committed
Avoid extra copy when assigning std::array to KDL::JntArray
1 parent 0feb61e commit 1055738

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

franka_gazebo/src/model_kdl.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ std::array<double, 16> ModelKDL::pose(
122122

123123
KDL::ChainFkSolverPos_recursive solver(chain);
124124

125-
kq.data = Eigen::Matrix<double, 7, 1>(q.data());
125+
kq.data = Eigen::Matrix<double, 7, 1>::Map(q.data());
126126

127127
int error = solver.JntToCart(kq, kp, segment(frame));
128128
if (error != KDL::SolverI::E_NOERROR) {
@@ -146,7 +146,7 @@ std::array<double, 42> ModelKDL::bodyJacobian(
146146
const {
147147
KDL::JntArray kq;
148148
KDL::Jacobian J(7); // NOLINT(readability-identifier-naming)
149-
kq.data = Eigen::Matrix<double, 7, 1>(q.data());
149+
kq.data = Eigen::Matrix<double, 7, 1>::Map(q.data());
150150

151151
// Augment the chain with the two virtual frames 'EE' and 'K'
152152
KDL::Chain chain = this->chain_; // copy
@@ -189,7 +189,7 @@ std::array<double, 42> ModelKDL::zeroJacobian(
189189
const {
190190
KDL::JntArray kq;
191191
KDL::Jacobian J(7); // NOLINT(readability-identifier-naming)
192-
kq.data = Eigen::Matrix<double, 7, 1>(q.data());
192+
kq.data = Eigen::Matrix<double, 7, 1>::Map(q.data());
193193

194194
// Augment the chain with the two virtual frames 'EE' and 'K'
195195
KDL::Chain chain = this->chain_; // copy
@@ -222,7 +222,7 @@ std::array<double, 49> ModelKDL::mass(
222222
const {
223223
KDL::JntArray kq;
224224
KDL::JntSpaceInertiaMatrix M(7); // NOLINT(readability-identifier-naming)
225-
kq.data = Eigen::Matrix<double, 7, 1>(q.data());
225+
kq.data = Eigen::Matrix<double, 7, 1>::Map(q.data());
226226

227227
KDL::Chain chain = this->chain_; // copy
228228
augmentFrame("load", F_x_Ctotal, m_total, I_total, chain);
@@ -247,8 +247,8 @@ std::array<double, 7> ModelKDL::coriolis(
247247
const std::array<double, 3>& F_x_Ctotal) // NOLINT(readability-identifier-naming)
248248
const {
249249
KDL::JntArray kq, kdq, kc(7);
250-
kq.data = Eigen::Matrix<double, 7, 1>(q.data());
251-
kdq.data = Eigen::Matrix<double, 7, 1>(dq.data());
250+
kq.data = Eigen::Matrix<double, 7, 1>::Map(q.data());
251+
kdq.data = Eigen::Matrix<double, 7, 1>::Map(dq.data());
252252

253253
KDL::Chain chain = this->chain_; // copy
254254
augmentFrame("load", F_x_Ctotal, m_total, I_total, chain);
@@ -272,7 +272,7 @@ std::array<double, 7> ModelKDL::gravity(
272272
const std::array<double, 3>& gravity_earth) const {
273273
KDL::JntArray kq, kg(7);
274274
KDL::Vector grav(gravity_earth[0], gravity_earth[1], gravity_earth[2]);
275-
kq.data = Eigen::Matrix<double, 7, 1>(q.data());
275+
kq.data = Eigen::Matrix<double, 7, 1>::Map(q.data());
276276

277277
KDL::Chain chain = this->chain_; // copy
278278
augmentFrame("load", F_x_Ctotal, m_total, {1, 0, 0, 0, 1, 0, 0, 0, 1}, chain);

0 commit comments

Comments
 (0)