frankaemika / libfranka

C++ library for Franka research robots
https://frankaemika.github.io
Apache License 2.0
221 stars 147 forks source link

Meaning of Elbow #109

Closed peetCreative closed 2 years ago

peetCreative commented 2 years ago

Hey, This might be up to a lack of understanding for robotarms in general or of the Franka Emika in particular. As I work with FCI I keep stumbeling upon the elbow. It is given by robot_state and can be sepperatly commanded in cartesian motion generation. I wonder what it is there for. What is the purpose additionally being able to configure Position of the 3rd joint in [rad] and Sign of the 4th joint? It just looks random to me. Why can I only change the sign of the 4th joint and not the whole position? What would it be anyway good for? I suspect I'm just missing some insights of robotics, or it would be nice to have a bit more documentation. Thanks!

marcbone commented 2 years ago

You have 6 DoF in cartesian space (x, y, z, roll, pitch, yaw). However, the robot has 7 DoF. Therefore, you can freely choose the position of one joint, which is the 3rd in our case. There are then 2 solutions for the 4th joint. However, in general the best idea is to set the desired sign of the 4th joint to the current one.

If you want, you can run the "generate_elbow_motion" example to see the effect of the elbow value.

peetCreative commented 2 years ago

OK, I think than it's just that. I think I got it.