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

Teleoperation Programming #175

Closed
WU-HUAYANG opened this issue Jun 9, 2023 · 1 comment
Closed

Teleoperation Programming #175

WU-HUAYANG opened this issue Jun 9, 2023 · 1 comment

Comments

@WU-HUAYANG
Copy link

I want to create a teleoperation scenario, similar to what was shown in your videos: https://www.youtube.com/watch?v=R1IucWuDb5M.

I noticed that the response speed of Kinova is always insufficient when I use high-level control to send Cartesian space position commands. So, I tried using inverse kinematics to calculate joint space positions from Cartesian space, and then I used low-level control to manipulate the joint positions. The problem with this approach is that the inverse kinematics function provided in your examples takes a long time to run and doesn't achieve real-time response.

Do you have any suggestions for programming teleoperation? Or could you provide the code for the program shown in your videos? I would greatly appreciate it if you could.

@felixmaisonneuve
Copy link
Contributor

felixmaisonneuve commented Jun 16, 2023

Hi @WU-HUAYANG,

ComputeInverseKinematics in a function only available in High Level, so you cannot use this in real time.
We cannot provide the code used to compute the inverse kinematics. If you want to do this in real time, you will have to implement your own Kinematics algorithm. We provide every data you would need in the user guide in the Advanced section.
You could use this third party library to help you. You can also look at this comment from #70.

However, I think they are using cartesian velocity commands (Twist Commands) in the video. This would prevent the arm from going to a complete stop at every Cartesian Pose and allow a more "smooth" operation. I have seen similar teleoperation on a Jaco2 (another Kinova arm) that does not provide a 1GHz interface.

Another way I could think of is by having 2 threads. One that works in high level that calls ComputeInvereKinematics and another one in low level that could move the arm, but I think it would be quite complex to implement, might not work and would potentially provide similar results to what you already have.

Regards,
Felix

Edit : You could also use https://github.com/petercorke/robotics-toolbox-python/tree/master
It appears our Jaco2, Gen3 and Gen3-lite arms have been added to this library and you could use it.

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

3 participants