UR5工业机械臂控制(robotic arm control algorithm)
The control of robotic arm involves few steps as below. firstly, given each joint conditions, the end effector’s condition (posture and position) can be obtained, the process of which is called forward kinematics. Additionally, if the joint is by servo or rotator, the joint is called rotation joint; or the joint is by direct motor, the joint is called prismatic joint. However, sometimes, the user just know where the end effector goes, not caring how the joint move. The inverse kinematics is a process to solve each joint’s conditions (rotate and translate), given the conditions of end effector. Moreover, sometimes we do not want the joint moving too fast in case collision or the maximum rate not withstanding such high acceleration, the joint velocity need to be controlled. Similar to the position calculation, the velocity calculation also can be classed into forward and inverse process, called forward and inverse Jacobian. To achieve even higher reliability and safety factor, finally we need to control the error shooting, for example the avoidance of obstacles on the trajectory, or selection to multi-solution when redundant conditions.
DH (Denavit Hartenberg) table:
First of all, one of the best practice to create the forward kinetics matrix is to have a Denavit Hartenberg table. DH table follows four rules as below:
- Z axis must be the axis of revolution / direction of move
- X must be perpendicular to Z of the frame before it (e.g. X2 -> Z1)
- X must intersect Z axis of the frame before it (e.g. X2 -> Z1)
- Y must follow right hand rule
Following the formula below to solve the homogeneous matrix
只有三十分钟来写,太忙了,所以只是简单描述了一下,语言描述上不准确的地方请见谅。