Support admittance control - #598
Conversation
0d0b1d7 to
0a944a5
Compare
…ERPOLATION, which should respect kinematic constraints. 2. Also Update the max_distance to a much smaller value (0.1 radians) to scale down velocity and acceleration commands for setpoints that exceed this value
4d250e5 to
1c10d91
Compare
…It cannot be changed during runtime
| stiffness_param = self.declare_parameter( | ||
| "target_pose_stiffness", [10.0, 10.0] | ||
| ).value | ||
| self.target_pose_stiffness = [stiffness_param[0]] * 3 + [stiffness_param[1]] * 3 |
There was a problem hiding this comment.
Based on how this script handles target_pose_stiffness and target_pose_damping, it seems like the test_joint_targets.launch.py and test_pose_targets.launch.py needs to provide a list as such: [target_pose_stiffness, target_pose_damping] as opposed to the six element list:
target_joint_stiffness": [
175.0,
175.0,
175.0,
125.0,
50.0,
50.0,
]
It might be good to re-verify on hardware that our chosen rotational damping parameters make sense because of this.
There was a problem hiding this comment.
Good catch, sorry I didn't catch this. I will modify the script and we can test it again.
| target_mass->set_data(21, critical_mass.rx()); | ||
| target_mass->set_data(28, critical_mass.ry()); | ||
| target_mass->set_data(35, critical_mass.rz()); | ||
| if (data_->critical_mass_.size() >= 6) { |
There was a problem hiding this comment.
We use this pattern of setting diagonal elements using indices 0, 7, 14, 21, 28, 35 multiple times throughout this file. Consider adding a function to replace this?
inline void SetDiagonal6x6(google::protobuf::RepeatedField<double>* field, const std::vector<double>& diag) {
field->Resize(36, 0.0);
for (int i = 0; i < 6; ++i) {
field->Set(i * 7, diag[i]);
}
}
kaushikbalasundar
left a comment
There was a problem hiding this comment.
Some minor comments.
Could you verify if my understanding of how we use the target_stiffness and target_damping in test_robot_control_bridge.py is correct? If so, I'd like to reverify if the rotational stiffness and damping params make sense on hardware.
…ng are being used
Yes what you mentioned is correct, it would only use the first 2 values of the array and ignore the rest. Thanks for catching this, we should test it again to verify. I have fixed the issue and addressed your comments in commits e465546 and c2b021b |
Overview
This PR updates the
robot_control_bridgeto support Cartesian admittance control as the default Cartesian controller. It makes the following changes:MotionUpdateorJointMotionUpdatemessagescritical_massas a config parameterLINEAR_INTERPOLATIONtoREFLEXXES.TODO
USE_FIXED_CONTROL_PARAMETERSto trueflowstate/aic_flowstate_ros_bridge/CHANGELOG.rst