IFL-CAMP/iiwa_stack

Desired Force multi-direction force

emielke12 opened this issue · 0 comments

I am trying to use the DesiredForceControlMode to apply a desired force in multiple directions. Right now, it appears that the service only supports applying a force in 1 direction at a time, i.e. force in X direction, or force in Y direction, etc. It also applies the force in the tool flange frame. This means if I want to apply a force with vector [1,1,0] for instance, I would need to rotate the tool flange to be at a 45 degree angle and apply a 1.414 force value in the X direction. This is not ideal, as I would like to keep the robot orientation the same, but be able to apply the forces in multiple directions.

I looked into creating a new service that takes an int array as a direction, and an array for force values as well, but it looks like I'd have to change the DesiredForceControlMode.class in the iiwa_msgs.jar. Admittedly, I'm not super familiar with java, so perhaps this is some beginner's frustration, but in the .class file the methods of interest to me for testing are getCartesianDof() and getDesiredForce(). which maybe extend from org.ros.internal.message.Message, except I can't seem to find that library anywhere. There appear to be a number of org.ros.internal class files amongst the binaries, but none that match.

Am I going about this correctly? Is the org.ros.internal.message.Message file somewhere? Would an easier way be to express the desired force in another frame?