Giter Club home page Giter Club logo

3dof-manipulator-control's Introduction

3DOF-manipulator-control

P30D10_arm.mp4
RRRGravityNOfriction.mp4

Dynamic modeling and position control of 3DOF manipulator, using simulink.

The objective of this part of the project is to gain a hands-on understanding of the control and dynamics of robot’s manipulator with 3 degrees of freedom. In this part, I will present a simulation of the arm, with and without control.

The selected robot arm configuration is a 2 dimensional, “RRR” type of arm, as shown in the picture below:

image

Dynamics equations

We can derive the robot’s dynamic equations of motion using the Lagrange equation of the form (assuming no external forces applied and no friction):

image

Using the numeric solution of this equation, we get the vector τ ̅, which is the torque that needs to be applied on motor of each joint.

Every part of the equation will be constructed using the following methods:

Inertia matrix – To calculate this matrix, we need to find the velocities Jacobians (forward and angular) of each joint. We do that by derive each joint’s center of mass expression (P_c) with every joint’s angle.

image

Because the arm is two-dimensional in this case, the angular Jacobian will be much simple and contain “1” only on the Z values (since the rotation is only around Z axis).

After we calculate the Jacobians for each joint, we can calculate the matrix using the next expression:

image

Centrifugal and Coriolis matrix – I’ve applied these two matrices, using the following method: First, for 3DOF RRR robotic arm, Matrix C (Centrifugal) and matrix B (Coriolis) are expressed in the following way:

image

When:

image

image

This method is technically applied by 3 nested “for” loops (thus constructing the b matrix).

Gravity matrix – The gravity matrix shows the forces experienced by the robot in the negative y – direction (acceleration due to gravity).

image

The equations of my project can be found in the project’s google drive (in the link attached in the introduction). To see the equations, it is necessary to run the “My3Rarm_DynamicEquations.m” MATLAB file. I didn’t write the equations in this document since it is too long.

Simulink model

image

Model parts

The Simulink model is consisting of the following parts:

• Manipulator parameters – This block contains the parameters that define each link of the robotic arm (wight, length, inertia). By changing those parameters, the dynamic equations will change as well and affect the behavior of the arm.

• PD controller – The left part of this simulation (as can be seen in the picture), is the controller of the robotic arm of type PD. It controls directly on the torque for the arm’s motors (3 values – each torque value for each joint). The feedback for the controller is the position and the velocity of each joint. The desired position is given by a preset values (appears on the most left part of the model)

• Activate control switch – When pressing on this switch, the model will no longer have an active controller (PD controller), instead the arm will move only according to the external forces (in this case, just the gravity).

• Ode45 solver – to solve the equations on each time interval, I’ve used the built-in Simulink “Runge-Kutta” solver type called ode45.

Simulation

• No control simulation - In this simulation, I’ve added an option to simulate the movement of the arm with no control but the effects of the gravity. The purpose was to show the real dynamics of the arm as well as the effects of the joint’s characteristics (Inertia, mass, length). An animation of this simulation can be found in the project’s google drive (from the link in the introduction), under the name “RRRGravityNOfriction”.

• “Effects of the PD controller - Now the simulation contains the control of the motor’s torque of each joint. I will present this simulation with several different sets of values (P and D values). The movement will go from the start position (left) to the goal position (right) when the red joint is the base joint:

image image

image

3dof-manipulator-control's People

Contributors

oz182 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.