0
$\begingroup$

I need to plan path for robotic arm(having a tennis racquet as end-effector) whose aim is to hit a tennis ball in a specific direction(to return ball to the opponent). Now I have an algorithm which moves the arm to the position(in the desired position and orientation of the racquet) where ball is expected to be(in a linear path shown in image below) . But the racquet just touches the ball because there is no momentum. Due to this, the ball falls nearby and does not reaches the opponent.

In the image below:

  • Red Dot -> Starting position of end effector.
  • Dark Blue Dot -> End position of end effector.
  • Pink Line -> The desired orientation(face of the racquet) to hit the ball.
  • Dotted Light Blue Line -> Desired ball trajectory after being hit by the racquet.
  • Green Line -> Current trajectory.

CurrebtTrajectory

I need to find a curvy trajectory(how humans hit the tennis ball, how they generate a swing) between 2 given points to achieve a desired momentum at the end point so that the ball can reach the opponent. Refer the desired trajectory image below.

In the image below:

  • Red Dot -> Starting position of end effector.
  • Dark Blue Dot -> End position of end effector.
  • Pink Line -> The desired orientation(face of the racquet) to hit the ball.
  • Dotted Light Blue Line -> Desired ball trajectory after being hit by the racquet.
  • Green Line -> Desired trajectory.

DesiredTrajectory

In this image, the green trajectory is expected to generate a better momentum in the desired direction(the light blue line).

QUESTION:

  • How to generate trajectory between 2 points to achieve a desired(or maximum) momentum at the end point(second point)?
$\endgroup$
4
  • $\begingroup$ What about accounting for spin? top, side makes SO much difference $\endgroup$
    – Solar Mike
    Commented Jul 12 at 8:28
  • $\begingroup$ @SolarMike What do you mean by spin? What i need is just a path and to follow the path i already us Inverse Kinematic solver. $\endgroup$
    – Pratham
    Commented Jul 12 at 8:31
  • $\begingroup$ Go hit the white on a billiards table with top, side, bottom and understand the effects. Or watch footballers who curve the ball due to where they hit it. $\endgroup$
    – Solar Mike
    Commented Jul 12 at 8:33
  • $\begingroup$ @SolarMike Got you point. If you mean to account for spin in the ball after being hit by the racquet, then i think it would be very complex for now. For now we would be just hitting the ball directly in the direction where we want it to land. We wont be using any strategic hit to swing the ball(like in case of a footballer who curve the ball). We just need the path which the end effector must follow to hit the ball from the front. without considering what happens next. $\endgroup$
    – Pratham
    Commented Jul 12 at 8:45

2 Answers 2

0
$\begingroup$

There are a few options,

  1. put it "all in the wrist", move the wrist fulcrum in the correct position and orientation to strike the ball with the racket and then time the wrist to swing at the correct time to hit the ball. You can pick other joints further up the arm to be the primary swing fulcrum and perhaps add some momentum from the other joints. But that gets trickier as you need to ensure the contact point isn't in line with the swing joint axis and the contact is not near the limits of the swing joint's movement range.

  2. building off of that once you solved the IK for the contact position find the direction for all the joints that moves the racket back from the contact point, given that when you move the arm make every joint approach the contact position from that direction holding back the final move forward until it's time to swing.

$\endgroup$
2
  • $\begingroup$ From what I understood from your answer, move the end effector from wherever it is to the desired position and orientation(following any path). Then keep the orientation same and move the arm back and forward at the correct time to generate enough momentum and hit the ball. This is a good answer but it make the movement feel more robotic. Can we have a direct path from any location to the point of contact(more human like moment)? $\endgroup$
    – Pratham
    Commented Jul 12 at 9:11
  • $\begingroup$ option 1 is indeed the most robotic looking, while option 2 with will be a lot more fluid depending on how you adjust the timings. If you want true human ability then you need to study how humans achieve the desired motion $\endgroup$ Commented Jul 12 at 11:13
0
$\begingroup$

The telemetry problem should be handled by a learning algorithm. I'd start by nesting a couple different approaches. For any one shot, I'd predict a set of contact points, create a small set of racket state vectors at each contact point, and then create a big set of trajectories. I'd bin the trajectories according to the contact location and state vector conditions. Then I'd run a post swat trajectory prediction on each, choose one trajectory using some parametrized strategy, take the swing, and compare the results to the prediction. You can now use a set of genetic learning algorithms to sort the mechanical issues of getting hits in the middle of the racket (requires a module for ball state vector prediction and racket state vector prediction), to improve the telemetry prediction issues of trajectories when you do hit the middle of the racket, and to improve the effectiveness of the shot selection strategy.

And after trolling though some papers, that seems to be a verified approach to the problem now - https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9185249/

$\endgroup$

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.