39 JointWall(
double soft_upper_joint_position_limit,
40 double soft_lower_joint_position_limit,
43 double PD_zone_stiffness,
44 double PD_zone_damping,
45 double D_zone_damping);
101 static bool inRange(
double low,
double high,
double x);
115 void init(
double q,
double dq);
136 template <
size_t num_dof>
152 const std::array<double, num_dof>& soft_lower_joint_position_limits,
153 const std::array<double, num_dof>& PD_zone_widths,
154 const std::array<double, num_dof>& D_zone_widths,
155 const std::array<double, num_dof>& PD_zone_stiffnesses,
156 const std::array<double, num_dof>& PD_zone_dampings,
157 const std::array<double, num_dof>& D_zone_dampings) {
158 for (
size_t i = 0; i < num_dof; i++) {
160 soft_upper_joint_position_limits[i], soft_lower_joint_position_limits[i],
161 PD_zone_widths[i], D_zone_widths[i], PD_zone_stiffnesses[i], PD_zone_dampings[i],
174 std::array<double, num_dof>
computeTorque(
const std::array<double, num_dof>& q,
175 const std::array<double, num_dof>& dq) {
176 std::array<double, num_dof> torque;
177 for (
size_t i = 0; i < num_dof; i++) {
178 torque[i] =
joint_walls_[i]->computeTorque(q[i], dq[i]);