I have a 6 DOF robot arm that I am programming. I want to be able to move the arm's claw to a 3D point in space. In order to do that, it needs to know the best combination of movements that will take the arm to that position.

I am programming in Java, if anyone has any language specific suggestions.

The design of the claw is shown below: Robot Arm Design

My Research

The best existing code template have found is Processing.org's Reach example (https://processing.org/examples/reach2.html)

I have made a few attempts to adapt this code to my needs, but I have not been able to fully do so: (https://editor.p5js.org/codeLink100/full/EuZAnpQfz)

I like the example code because it moves the front of the tentacle (smallest components in my case) first, therefore saving the robot some energy.

However, there are a few things with that I will need to change before I can use it as my code:

  1. Each segment needs to be a different length.
  2. The segments should not cross thru each other.
  3. The segments should only be allowed to go within a specific angle range.
  4. The example does not consider the 3D rotation of the base motor.
  5. The program should tell me if the claw cannot reach the point.


I understand that this problem is best solved using inverse kinematics. Does anyone know any good tutorials for absolute beginners. I have looked around quite a bit and haven't found much.


1 Answer 1


As far as I understand, you want to build a robot manipulation program by scratch. It will involve bit complex calculations but it is really good if you want to understand these transformations.

But if you do not want to start from zero, I would suggest to take a look at Robot Operating System (ROS/ROS2). It involve several useful packages e.g. MoveIt, which is exactly designed for robot arm manipulation fulfilling your listed requirements also.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.