Undergrad Arm reaching algorithm determine angles

Click For Summary
An algorithm for extending an arm towards an object involves determining the closest configuration using the shoulder, elbow, and hand positions. The object must be within reach, defined by the distance from the shoulder to the object being less than or equal to the arm's fully extended length. The shoulder's rotation sets a movement plane for the upper and lower arm, allowing the hand to trace a line segment to the object through complementary elbow and shoulder rotations. For less realistic video game scenarios, a fixed movement plane at a 45-degree angle can simplify the process. Optimizing arm movement can also consider factors like speed and energy efficiency, applying constraints to refine the solution.
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 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
 
Here is a little puzzle from the book 100 Geometric Games by Pierre Berloquin. The side of a small square is one meter long and the side of a larger square one and a half meters long. One vertex of the large square is at the center of the small square. The side of the large square cuts two sides of the small square into one- third parts and two-thirds parts. What is the area where the squares overlap?

Similar threads

  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 9 ·
Replies
9
Views
4K
  • · Replies 1 ·
Replies
1
Views
5K