-
Notifications
You must be signed in to change notification settings - Fork 408
Add admittance controller #173
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
I think you should squash my commits down to 1 👍 |
std::string sensor_frame_; | ||
|
||
// Admittance parameters | ||
// bool unified_mode_ = false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No idea what unified mode means. Needs a comment
geometry_msgs::msg::WrenchStamped measured_force_; | ||
geometry_msgs::msg::WrenchStamped measured_force_control_frame_; | ||
|
||
geometry_msgs::msg::PoseStamped current_origin_; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Current origin of what? Needs a comment
auto input_pose_cmd = input_pose_command_.readFromRT(); | ||
|
||
// Get current robot joint angles | ||
// Position has to always there |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
^ sentence doesn't make sense
|
||
The paramters are adjustable using ``dynamic_reconfigure`` functionality and rqt-plugin. | ||
|
||
The controller has following parameters: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Really appreciate this documentation!
admittance_controller/include/admittance_controller/incremental_ik_calculator.hpp
Outdated
Show resolved
Hide resolved
} | ||
} | ||
|
||
// TODO: Add here desired vector at the IK tip and not tool!!!! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm going to add notes for several lines that aren't reachable from this PR.
Line 213 (above) seems unnecessary. Please double-check
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
L227:
TODO: this formula could cause a "gimbal lock" if the angular difference is large
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Above L239, add comment:
// Acceleration is regarded as the control input. It is integrated to calculate velocity and acceleration.
tf2::doTransform(current_pose_control_frame_, desired_pose_, relative_desired_pose_); | ||
|
||
// Use Jacobian-based IK | ||
// Calculate desired Cartesian displacement of the robot |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Update the comment (prob my mistake):
// Convert desired position deltas to joint deltas
73d1b24
to
e788915
Compare
a257737
to
1739024
Compare
Outline of a class for IK calculations More outline of incremental IK Begin hooking up with MoveIt
…re is not output.
* Rename incremental_ik_calculator -> incremental_kinematics * Use Eigen double types. Rename _trafo transform variables * Fix typo in transformation matrix * Implement incremental forward kinematics
…el to 0 in ff mode.
…ulation of the refrence pose from the reference deltas.
…nsion5) branch Co-authored-by: Nathan Brooks<[email protected]> Co-authored-by: AndyZe<[email protected]>
…admittance-controller-development branch.
5b885cb
to
d99ebed
Compare
…not read properly.
…not read properly.
…date_without_reactivation parameter.
for (auto index = 0u; index < num_joints; ++index) { | ||
// TODO(destogl): ATTENTION: This does not work properly, deltas are getting neutralized and robot is not moving on external forces | ||
// TODO(anyone): Is here OK to use shortest_angular_distance? | ||
joint_deltas[index] = angles::shortest_angular_distance(current_joint_states.positions[index], (*input_joint_cmd)->points[0].positions[index]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First time looking at this in awhile!
I just wanted to note, this should probably use shortest_angular_distance_with_large_limits().
Add stock admittance controller.
Description - TBD