Hello,
we are currently working on a project where we want to catch a basketball with a basketball hoop attached to the lbr iiwa 7. We did some work in simulation using ros and gazebo and it is working fine so far. Currently we can solve the inverse kinematics for the desired pose and also implemented a spline interpolation from the current joint position towards the goal, which can handle goal updates on the fly.
When it comes to the lbr hardware, we are still very new and have not found a lot of documentation.
We tried to use the standard move / moveAsync methods by just passing the goal positions without any manual interpolation. The problem we see is that we have to update the goal multiple times while the robot should move towards it already. We tried to append the new goal positions to the IMotion and set the relative blending to 1, but this does not seem to be enough to skip to the latest goal position instantly.
Another idea is to use FRI and send all intermediate joint positions from start to finish using our manual interpolation. We did not try FRI yet, but reading about it the concept of adding a motion overlay confused us and we are not sure if FRI can do what we want.
We would appreciate any hint about the concept of FRI and if it can do what we expect from it, or any other options we might have.
Thanks
---
UPDATE:
We tried the LBRJointSineOverlay examples and got it to work on the iiwa. From what we understand, FRI enables us to get access to the interpolator commands and change them if we want to. But for this to work we still have to start moving the robot with iiwa.move(...) / iiwa.moveAsync(...) while applying the motion overlay. We cannot set a desired goal from FRI directly. Is this correct?
The workaround we can think of is to start a movement towards some pose but never use the interpolator commands but use our own interpolation to move the robot to the desired goal. Once we are finished with what we want to do we can drive the robot to the initial goal that iiwa.move(...) wants to reach and stop the robot application.
Is this what we have to do or is there another option we have that we don't see.
Thanks