Skip to content
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

How do you compute the inverse kinematics? #19

Open
elenacliu opened this issue Nov 8, 2023 · 5 comments
Open

How do you compute the inverse kinematics? #19

elenacliu opened this issue Nov 8, 2023 · 5 comments

Comments

@elenacliu
Copy link

elenacliu commented Nov 8, 2023

First thank you for all your excellent work! When we want the end-effector to go somewhere in the world frame, we just call the goto_pose function, but where do you compute the ik?

@mohitsharma0690
Copy link
Contributor

We don't directly compute IK (although you can add that functionality if you wanted and we would be more than happy to integrate it), instead we rely on Franka's IK (by directly using their position control). Alternatively, we implement an OSC controller that uses jacobians that you can use as well.

@elenacliu
Copy link
Author

Thank you. So the position control is implemented by franka_ros or libfranka? I will try the OSC controller!

@elenacliu elenacliu reopened this Nov 14, 2023
@elenacliu
Copy link
Author

elenacliu commented Dec 1, 2023

sorry to bother you, but I noticed that somoetimes the arm would reach joint limits when executing goto_pose or goto_joints in the trajectory, what can I do then?

p.s. It's not because the virtual wall because I have modified the value in franka-interface repo and pass virtual_walls=False in my code.

@mohitsharma0690
Copy link
Contributor

well if the target_configuration ($q_{target}$) is close to the joint limit of the robot then there is not much you can do. But since we do linear interpolation between $q_{src}$ and $q_{target}$, there can be some edge cases where the robot reaches some limit during interpolation. For such cases, you can always break up the target pose into intermediate poses and manually combine them, this ensures that you're within the configuration space of the robot and not close to singularity.

For more complex scenarios, you may want to implement some traj opt based system which takes forward kinematics into account and can reason about these issues.

@elenacliu
Copy link
Author

elenacliu commented Dec 3, 2023

Thank you for your thorough explanation! By the way, can I use other planner and controller with frankapy, like MoveIt and joint trajectory controller provided by ROS?

upd: I see a PR in this repo (#15) which tries integrating moveit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants