Inverse kinematics refers to the use of the kinematics equations of a robot to determine the joint parameters that provide a desired position of the end-effector. Normally, solving the inverse kinematic equations is quite a complicated process due to its multiple and nonlinear equations. The analytical solution can be found only under some certain conditions. Therefore, we decided to use Jacobian method to solve the inverse kinematics. The Jacobian matrix is a matrix that can transform the local joint speed to the Cartesian speed of the end effector. In other words, given the rotational speed of the local joint, we can easily calculate the end effector’s translational velocity and angular velocity in global coordinate. As a result, by inverting the Jacobian matrix, the rotational speed can be calculated.
Position
This robotic arm does not have any trajectory planning as the conventional robotic arm, the traditional robotic arm has to do the trajectory planning since most of them are solved by analytical method. As a result, they have to do the trajectory interpolation in the joint space; however, with jacobian inverse kinematic solver, we do not have to do any interpolation, which makes programming much easier.From the picture below, we can see the red point is defined as our target point, and the green dash line is the arm trajectory. The trajectory between every target point is linear in Cartesian space due to the linearization of jacobian inverse kinematic solver.
Orientation
These are several pictures to show how the arm moves to the same position with different orientations. We choose the roll picth yaw angles as our angle representation in the robotic arm system, since it is much more instinctive and easier. In reality, in order to know the difference of the orientation from between the target and current configuration, we must introduce the quaternion.
Load Obama’s face
The txt file can also be used as a form of input data by the user. For example, we produce a set of Obama face trajectory. After uploading these target points into this program, the arm will automatically tune parameters and track the Obama trajectory smoothly and rapidly. And this will be really practical in the manufacture industry.
Gyroscope-based RoboticArm
Traditionally, designing a trajectory for a robotic arm is not easy for people without any theoretical background. Therefore, I come up with a user-oriented design. By using an IMU sensor to sense the hand motion and solving the inverse kinematics simultaneously, the robot could “feel” our motion and move to the desired target.
Interfacing the Arduino MPU 6050
The MPU 6050 communicates with the Arduino through the I2C protocol. The MPU 6050 is connected to Arduino as shown in the following diagram. The GND of the arduino is connected to the GND of the MPU 6050. The program we will be running here, also takes advantage of the arduino’s interrupt pin. Therefore, connect arduino’s digital pin 2 (interrupt pin 0) to the pin labelled as INT on the MPU 6050. We need to set up the I2C lines. For this connect the pin labelled as SDA on the MPU 6050 to the arduino’s analog pin 4 (SDA). And the pin labelled as SCL on the MPU 6050 to the arduino’s analog pin 5 (SCL). And that’s it, you have finished wiring up the Arduino MPU 6050.