Arm reaching algorithm determine angles

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
3 replies · 2K views
kolleamm
Messages
476
Reaction score
44
I'm trying to find an algorithm for extending an arm as close as possible to an object. There's two bones the upper arm bone and the lower arm bone, and three points : shoulder , elbow, hand

How can I figure out the closest possible configuration towards a fourth point which is the object it's reaching for?

Keep in mind the object may sometimes be closer or further than the arms length . This is for a video game where a characters hand attempts to reach for something.
 
Mathematics news on Phys.org
For any point within reach there are an infinite number of possible solutions, corresponding to the rotation of the upper arm in the shoulder joint. Which of those solutions is chosen depends on other things like what looks more natural, what the character wants to do next (eg one would approach an object from a different angle if one were about to throw it than if one were about to pull it downwards) and what, if any, obstacles, lie between the shoulder and the object..

Ignoring the degrees of freedom in the wrist joint, one can place a hand in the location of any object within reach as follows.

1. draw a line segment from the shoulder joint to the object. The object is within reach if the length of the segment is no greater than the length of the fully-extended arm
2. choose a rotation of the shoulder. This determines a plane within which the upper and lower arm sections will move as they reach out.
3. starting with the hand on the shoulder, the upper and lower arms can now move, using complementary rotation in the elbow and shoulder, in such a way that the hand traces out the line segment from the shoulder to the object. The relationship between the shoulder and elbow angle is straightforward 2D geometry.

This is best understood by going through the process with one's own arm and observing the relative movements.

If the video game is not aiming to be super-realistic, we could ignore the subtleties discussed in the first para and use a plane of movement of the two arm parts that is at 45 degrees to the horizontal, which seems to me to be fairly natural.
 
  • Like
Likes   Reactions: kolleamm
Thank you so much for your help you gave some really good suggestions. Perhaps if I move both joints at the same time it would narrow down the solution for the problem, to the best of my knowledge that is how we usually move our arms.
 
A robot arm is modeled in 6 dimensions, optimisation strategies can deliver the "hand" to a point in this space in say, the quickest time, or using the least energy, the paths will be different. You will have to apply some constraint like this.

Cheers