Skip to content

Commit 3ca802f

Browse files
2 parents 59681ca + cc5d4f2 commit 3ca802f

File tree

3 files changed

+19
-19
lines changed

3 files changed

+19
-19
lines changed

libraries/robotutils/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ src/ImpedanceController.cpp
99
src/CartesianVelocityController.cpp
1010
src/RippleFilter.cpp
1111
src/ViewFiltering.cpp
12+
src/InertiaAwareRippleFilter.cpp
13+
src/JointImpedanceControl.cpp
1214
)
1315

1416
target_link_libraries(robotutils

libraries/robotutils/include/robotutils/InertiaAwareRippleFilter.h

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,28 +16,27 @@ namespace massripple{
1616
double delta = 0.0;
1717
size_t critical_index = 0;
1818

19-
Eigen::Matrix<double,n_joints,n_joints> B;
20-
Eigen::Matrix<double,n_joints,n_joints> K;
21-
Eigen::Matrix<double,n_joints,n_joints> D;
22-
Eigen::Matrix<double,n_joints,n_joints> Kt;
23-
Eigen::Matrix<double,n_joints,n_joints> R;
19+
Eigen::Matrix<double,n_joints,1> B;
20+
Eigen::Matrix<double,n_joints,1> K;
21+
Eigen::Matrix<double,n_joints,1> D;
22+
Eigen::Matrix<double,n_joints,1> Kt;
23+
Eigen::Matrix<double,n_joints,1> R;
2424

25-
Damper(const Eigen::Matrix<double,n_joints,n_joints>& in_B,
26-
const Eigen::Matrix<double,n_joints,n_joints>& in_K,
27-
const Eigen::Matrix<double,n_joints,n_joints>& in_D,
28-
const Eigen::Matrix<double,n_joints,n_joints>& in_Kt,
29-
const Eigen::Matrix<double,n_joints,n_joints>& in_R) : B{in_B}, K{in_K}, D{in_D}, Kt{in_Kt}, R{in_R}
25+
Damper(const Eigen::Matrix<double,n_joints,1>& in_B,
26+
const Eigen::Matrix<double,n_joints,1>& in_K,
27+
const Eigen::Matrix<double,n_joints,1>& in_D,
28+
const Eigen::Matrix<double,n_joints,1>& in_Kt,
29+
const Eigen::Matrix<double,n_joints,1>& in_R) : B{in_B}, K{in_K}, D{in_D}, Kt{in_Kt}, R{in_R}
3030
{
3131
}
3232

3333

3434
void compute(const Eigen::Matrix<double,n_joints,n_joints>& M,const Eigen::Matrix<double,n_joints,1>& dq,double sample_time){
3535
Eigen::Matrix<double,n_joints,1> w = 2*R(dq.array().abs().matrix());
3636
Eigen::Matrix<double,n_joints,1> G = Eigen::Matrix<double,n_joints,1>::Zero();
37-
for(double& g : G.rowwise()){
38-
39-
}
40-
double amplitude = G.array().abs().maxCoeff(critical_index);
37+
for(size_t j = 0; j < n_joints; ++j)
38+
G[j] = Kt[j]/std::sqrt(std::pow(1+Kt[j]+B[j]/M(j,j)-w[j]*w[j]/(K[j]*B[j]),2)+std::pow(w[j]*D[j]/K[j]+w[j]*B[j]*D[j]/(K[j]*M(j,j)),2));
39+
G.array().abs().maxCoeff(critical_index);
4140
value = std::min((dq[critical_index]*dq[critical_index])/(0.1*0.1),1.0);
4241
delta = std::abs(dq[critical_index]*sample_time);
4342
};

libraries/robotutils/src/JointImpedanceControl.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include "robotutils/JointImpedanceController.h"
1+
#include "robotutils/JointImpedanceControl.h"
22

33
namespace curan {
44
namespace robotic {
@@ -11,12 +11,11 @@ namespace robotic {
1111
/*
1212
We remove some energy from the system whilst moving the robot in free space. Thus we guarantee that the system is passive
1313
*/
14-
Eigen::Matrix<double,7,1> desired_velocity = Eigen::Matrix<double,7,1>::Ones()*actuation;
14+
//Eigen::Matrix<double,7,1> desired_velocity = Eigen::Matrix<double,7,1>::Ones()*actuation;
1515

1616
//state.cmd_tau = 35*(desired_velocity-filtered_velocity);
17-
state.cmd_tau = 35*iiwa.mass()*(desired_velocity-filtered_velocity);
18-
state.user_defined = filtered_velocity;
19-
timer += iiwa.sample_time();
17+
state.cmd_tau = Eigen::Matrix<double,7,1>::Zero();
18+
//state.user_defined = filtered_velocity;
2019

2120

2221
/*

0 commit comments

Comments
 (0)