We have been trying out the different ways of making our reachy arm move.
We have a series of XYZ coordinates in 3D space which we want to send the arm to.
We started with sending them, one by one, to the
goto() function through your API. While that sent the arm, there was a jittery motion between each call to
We then took a different approach. Let’s say we want the arm to go from point A to point B. We generated a list of 200 coordinates between points A and B, added them into a dictionary, and then used:
smoothed_trajectories1 = cubic_smooth(angles_dictionary, nb_kp=10) trajectory.TrajectoryPlayer(reachy, smoothed_trajectories1).play(wait=True, fade_in_duration=1)
to make the arm move in a smooth way. The same was done between point B and C, and so on.
This produced a much smoother motion, but there is one problem. Calling
reachy.left_arm.inverse_kinematics() (even with a
max_iter=10) 200 times took about 20 second. Of course, we cannot afford to invest 20 seconds of computation for every single motion (if we want to send the arm to 100 different XYZ coords then that would take at least 30 minutes of computation!).
Is anyone aware of any other way we can overcome this problem?