Arm reaching algorithm determine angles

Click For Summary

Discussion Overview

The discussion revolves around developing an algorithm for extending an arm in a video game to reach an object. It involves considerations of arm kinematics, joint movements, and the impact of various constraints on the reaching process.

Discussion Character

  • Exploratory, Technical explanation, Conceptual clarification

Main Points Raised

  • One participant describes the challenge of determining the closest arm configuration to reach an object, considering the arm's length and joint constraints.
  • Another participant notes that for any reachable point, there are infinite configurations based on shoulder rotation, influenced by factors like natural movement and potential obstacles.
  • A method is proposed involving drawing a line from the shoulder to the object, determining a shoulder rotation, and using 2D geometry to calculate the necessary angles for the upper and lower arms.
  • One participant suggests that simultaneous movement of both joints may help narrow down the solution, reflecting typical human arm movement.
  • A different perspective introduces the concept of modeling a robotic arm in six dimensions, emphasizing optimization strategies that could affect the reaching path based on constraints like time or energy efficiency.

Areas of Agreement / Disagreement

Participants express various approaches and considerations for the arm reaching algorithm, but no consensus is reached on a single method or solution. Multiple competing views remain regarding the best way to model the arm's movement.

Contextual Notes

Limitations include the complexity of joint movements, the influence of external factors like obstacles, and the potential for different optimization criteria in robotic versus human-like movements.

Who May Find This Useful

Game developers, robotics engineers, and those interested in kinematics and motion planning may find this discussion relevant.

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
 

Similar threads

  • · Replies 6 ·
Replies
6
Views
4K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 6 ·
Replies
6
Views
14K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 21 ·
Replies
21
Views
2K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 1 ·
Replies
1
Views
3K