I'm trying to find a method to control a moveo 5dof arm. My goal is to calculate the right angle to turn for each stepper motor to reach a desired point in real environment. I've spent time looking at the jacobian inverse kinematics, but it really got me confused. According to some articles I've read, Jacobian is useful to calculate joints' velocity, but as far as I know, stepper motors operate at a fixed speed. So my question is can I use this method to just calculate the necessary angles for the steppers, or should I use another method? In both cases, can you please introduce to me some helpful articles to refer to? Many thanks
Without using the Jacobian, inverse kinematics provide joint angles to put the robot at a desired pose. But using inverse kinematics to move from one pose to another does not say anything about the path the robot will take between poses. Therefore, you can choose target poses that are pretty close together to have a robot follow a desired path. When those poses are infinitesimally close to one another, you enter the subject of Jacobians. These matrices map differential joint velocities to differential Cartesian velocities for a given pose. So if you are at pose A, the inverse Jacobian will provide a joint velocity vector in the direction of pose B. These have to be updated rapidly, though, because the Jacobian is only accurate in a small neighborhood of where it is computed.
Incidentally, stepper motors are not necessarily constant-velocity motors. They move one step for every pulse they receive. You can change the rate of the pulses to change the motor’s velocity.
You will find it helpful to keep the physical robot and the math separate.
The kinematics equations map joint parameters (which are often grouped as a vector $q$) to Cartesian coordinates ($x$,$y$,$z$).
If you take the first-order partial derivative of the kinematics equations, you get a set of equations that map a change in the joint parameters to a change in the Cartesian coordinates. The Jacobian is another name for this first-order partial derivative.
It's true that if you consider a change over a fixed amount of time, you can call it a velocity, and you can use the Jacobian to map joint velocities to Cartesian velocities. But you have to be careful because these are instantaneous velocities and as soon as the position changes, the mapping between velocities changes as well.
To calculate inverse kinematics using the jacobian you will need solve or approximate inverse equations that map Cartesian changes to joint parameter changes, and then use an iterative algorithm to find the solution.
If you are not interested in learning the mathematics and numerical methods required to implement inverse kinematics, there are software libraries available that already solve the problem.
If you use an existing library, you should keep in mind that solving the inverse kinematics is a hard problem that often has no solutions or more than one solution.