37
A PROJECT REPORT ON THREE DEGREE-OF-FREEDOM AUTONOMOUS ROBOTIC ARM MINOR PROJECT-I BACHELOR OF TECHNOLOGY IN ELECTRONICS AND COMMUNICATION ENGINEERING Submitted By: Under the Guidance Of MEHUL GARG (9911102255) DR. PULI KISHORE KUMAR MANIK CHAWLA (9911102249) ADITYA GAHLAUT (9911102157) DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING JAYPEE INSTITUTE OF INFORMATION TECHNOLOGY, NOIDA (U.P.)

Final Reportv3

Embed Size (px)

Citation preview

Page 1: Final Reportv3

A PROJECT REPORT

ON

THREE DEGREE-OF-FREEDOM AUTONOMOUS ROBOTIC ARM

MINOR PROJECT-I

BACHELOR OF TECHNOLOGY

IN

ELECTRONICS AND COMMUNICATION

ENGINEERING

Submitted By: Under the Guidance Of

MEHUL GARG (9911102255) DR. PULI KISHORE KUMAR

MANIK CHAWLA (9911102249)

ADITYA GAHLAUT (9911102157)

DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING

JAYPEE INSTITUTE OF INFORMATION TECHNOLOGY, NOIDA (U.P.)

November, 2013

Page 2: Final Reportv3

CERTIFICATE

This is to certify that the work titled THREE DEGREE-OF-FREEDOM AUTONOMOUS ROBOTIC ARM submitted by Mehul Garg , Manik Chawla & Aditya Gahlaut of 3rd year e of B. Tech. Program in Electronics and Communication Engineering of Jaypee Institute of Information Technology University, Noida has been carried out under my supervision. This work has not been submitted partially or wholly to any other University or Institute for the award of this or any other degree or diploma.

Signature of Supervisor :

Name of Supervisor : Dr. Puli Kishore Kumar

Designation : Assistant Professor

Date : 2th November 2013

2

Page 3: Final Reportv3

ABSTRACT

A robotic arm is a robotic manipulator, usually programmable, with similar functions to a human arm .DC motor is used for joint rotation. It has about same number of degree of freedom as in human arm. Humans pick things up without thinking about the steps involved. In order for a robot or a robotic arm to pick up or move something, someone has to tell it to perform several actions in a particular order — from moving the arm, to rotating the “wrist” to opening and closing the “hand” or “fingers.”

3

Page 4: Final Reportv3

SALIENT FEATURES / INNOVATIONS

The arm has three dc motors which can be operated by the arduino single board microcontroller

The arm could grab things approximately in the hemisphere of cm

The arm can lift objects upto weight of 500 gm It has been coded to function autonomously It has been fixed on a moving base which stops autonomously

when it detects an obstruction in its path

4

Page 5: Final Reportv3

DECLARATION

A We hereby declare that this submission is our own work to the best of our knowledge and belief , it contains no materials published or written by another person or material which to substantial extent has been accepted for the award of degree or diploma of any university or other institutes of higher learning except where due acknowledgement has been made in the text.

MEHUL GARG

(9911102255)

MANIK CHAWLA

(9911102249)

ADITYA GAHLAUT

(9911102157)

5

Page 6: Final Reportv3

ACKNOWLEDGEMENT

We take this opportunity to express our profound sense of gratitude and respect to all those who helped us to think about the idea of the project. Preparing a project report is never a unilateral effort no matter the ultimate credit may go to the author. We wish to acknowledge the guidance and support of the professors and academics in bringing up a real picture of the concept for which the report is prepared. We would like to make a special mention of support, help and encouragement received from our project mentor Dr. Puli Kishore Kumar.

Name of Student : Mehul Garg, Manik Chawla , Aditya Gahlaut

Enrollment Number : 9911102255 9911102249 9911102157

6

Page 7: Final Reportv3

Table of Contents

Chapter 1

1.1 Introduction 10

1.1.1 General Introduction 10

1.1.2 Problem Statement 11

Chapter 2

2.1 Robotic Component 12

2.1.1 Introduction 12

2.1.2 Arduino 13

2.1.3 Arduino IDE 14

2.1.4 Dual H-Bridge 15

2.1.5 Infrared Sensors 16

2.2 DC Geared Motor 17

2.2.1 Working Principle of DC geared Motors 17

2.2.2 Force & Torque Calculation 19

2.3 Control Unit 20

2.3.1 Microcontroller 21

2.3.2 L293D Motor Driver IC Chip 22

Chapter 3

3.1 Algorithm 23

3.2 Algorithm Flowchart 24

3.3 Arduino Code 267

Page 8: Final Reportv3

Chapter 4

4.1 Circuit Assembly 28

4.2 Robotic Arm Applications 30

4.2 Future Scope 31

References 32

8

Page 9: Final Reportv3

List of Figures

Figure 2.1: Freeduino Board

Figure 2.2: Arduino Board

Figure 2.3: Arduino IDE example

Figure 2.4: Dual H-Bridge

Figure 2.5: Infrared Sensor Circuit

Figure 2.6-2.7: DC Geared Motor

Figure 2.8- 2.9: Working of DC motor

Figure 2.10: Control Unit

Figure 2.11 Atemga8 Pin Configurations

Figure 2.12: L293D Motor Driver IC

Figure 4.1: L293D with Arduino

Figure 4.2: L293D Dual H-Bridge Circuit

Figure 4.3 Final Circuit

Chapter 19

Page 10: Final Reportv3

1.1 Introduction

1.1.1 General Introduction

This report presents robotic arm system with 3 DOF assembled from the commercially available parts. Other than the previous research works where a complex systems were designed, we have designed a very simple arm which is able to move in any direction and can remove an obstacle in its path by simply picking it up and moving it clearing its path for further movement. The given robotic arm system is low cost implementation compared to the previous ones. In this system, a two Infra-Red sensors are used perceive the obstacle ahead. Program is written in C language using Arduino library functions which runs in a specialized Arduino IDE on a computer. The program sends control commands over the serial port to the controller of robotic arm via RS-232 port.

1.1.2 Problem Statement

Although seemingly an easy thing to do, A robotic arm poses major challenges as it has to be regularly calibrated according to the dimensions of the obstacle. Also as there are many ways to produce a viable robotic arm, doing so using the most innovative and cost effective, as well as energy efficient way was a difficult task. Selecting the most efficient motor of the many available motors was another major challenge as we had to look at the advantages and disadvantages and then select the most profitable

10

Page 11: Final Reportv3

Chapter 2

2.1 Robotic Arm Components

2.1.1 Introduction

The various components used to design and complete a Three DOF robotic arm are mentioned below. The study of these has been an additional bonus to making this project as these are vital in the electronics industry and thus provided us a hands on experience to study and work on them.

2.1.2 Arduino Board

Arduino is a single-board microcontroller to make using electronics in multidisciplinary projects more accessible. The hardware consists of an open-source hardware board designed around an 8-bit Atmel AVR microcontroller, or a 32-bit Atmel ARM. The software consists of a standard programming language compiler and a boot loader that executes on the microcontroller.

A 3rd-party Arduino board with a RS-232 serial interface (upper left) and an Atmel ATmega8 microcontroller chip (black, lower right); the 14 digital I/O pins are located at the top and the six analog input pins at the lower right.

Figure 2.1: Freeduino Board

Figure 2.2: Arduino Board

11

Figure 2.1 Figure 2.2

Page 12: Final Reportv3

An Arduino board consists of an Atmel 8-bit AVR microcontroller with complementary components to facilitate programming and incorporation into other circuits. An important aspect of the Arduino is the standard way that connectors are exposed, allowing the CPU board to be connected to a variety of interchangeable add-on modules known as shields. An Arduino's microcontroller is also pre-programmed with a boot loader that simplifies uploading of programs to the on-chip flash memory, compared with other devices that typically need an external programmer.

Current Arduino boards are programmed via USB, implemented using USB-to-serial adapter chips such as the FTDI FT232. Some variants, such as the Arduino Mini and the unofficial Freeduino, use a detachable USB-to-serial adapter board or cable, Bluetooth or other methods. (When used with traditional microcontroller tools instead of the Arduino IDE, standard AVR ISP programming is used.)The Arduino board exposes most of the microcontroller's I/O pins for use by other circuits.

2.1.3 Arduino Software

The Arduino integrated development environment (IDE) is a cross-platform application written in Java, and is derived from the IDE for the Processing programming language and the Wiring projects. It is designed to introduce programming to artists and other newcomers unfamiliar with software development. It includes a code editor with features such as syntax highlighting, brace matching, and automatic indentation, and is also capable of compiling and uploading programs to the board with a single click. A program or code written for Arduino is called a "sketch".

Arduino programs are written in C or C++. The Arduino IDE comes with a software library called "Wiring" from the original Wiring project, which makes many common input/output operations much easier. Users only need define two functions to make a runnable cyclic executive program:

setup(): a function run once at the start of a program that can initialize settings

loop(): a function called repeatedly until the board powers off

12

Page 13: Final Reportv3

Figure 2.3: Arduino IDE

2.1.4 Dual H-Bridge

An H bridge is an electronic circuit that enables a voltage to be applied across a load in either direction. These circuits are often used in robotics and other applications to allow DC motors to run forwards and backwards.

Most DC-to-AC converters (power inverters), most AC/AC converters, the DC-to-DC push–pull converter, most motor controllers, and many other kinds of power electronics use H bridges. In particular, a bipolar stepper motor is almost invariably driven by a motor controller containing two H bridges.

13

Figure 2.3

Page 14: Final Reportv3

Figure 2.4: Dual H-Bridge

A solid-state H bridge is typically constructed using opposite polarity devices, such as PNP BJTs or P-channel MOSFETs connected to the high voltage bus and NPN BJTs or N-channel MOSFETs connected to the low voltage bus.

The most efficient MOSFET designs use N-channel MOSFETs on both the high side and low side because they typically have a third of the ON resistance of P-channel MOSFETs.

2.1.5 Infrared Sensors

IR Distance sensors are a low-cost, easy to use analog distance sensor. IR Sensors produce a constantly updated analog output signal depending upon the intensity of the reflected IR, which in turn can be used to calculate approximate range. These sensors are perfect for obstacle avoidance, line following, and even map building! Browse a large selection of IR Sensors with different distance ranges, applications, and output types. IR Photo reflectors are generally used in line following or encoder application, at short distances to detect white or black colors. These sensors are easy to

14

Figure 2.4

Page 15: Final Reportv3

Figure 2.5: Infrared Sensor Circuitry

use and low in cost, making them the perfect addition to our next autonomous robot project.

2.2 DC Geared Motors

A DC motor is a mechanically commutated electric motor powered from direct current (DC). The stator is stationary in space by definition and therefore the current in the rotor is switched by the commutator to also be stationary in space. This is how the relative angle between the stator and rotor magnetic flux is maintained near 90 degrees, which generates the maximum torque. In this project we have used two types of variations of the DC motorone conventional and the other a high torque low rpm motor.

15

Figure 2.6 Figure 2.7

Figure 2.5

Page 16: Final Reportv3

Figure 2.6: DC Geared Motor (Low RPM)

Figure 2.7: DC Geared Motor (Low RPM High Power)

2.2.1 Working Principle of DC motors

It is based on the principle that when a current-carrying conductor is placed in a magnetic field, it experiences a mechanical force whose direction is given by Fleming's Left-hand rule and whose magnitude is given by Force,

F = B I l newton

Where B is the magnetic field in weber/m2

I is the current in amperes

l is the length of the coil in meter

The force, current and the magnetic field are all in different directions. If an Electric current flows through two copper wires that are between the poles of a magnet, an upward force will move one wire upend a downward force will move the other wire down.

16

Figure 2.8

Page 17: Final Reportv3

Figure 2.8(a): Force in DC Motor

Figure 2.8(b): Magnetic Field in DC Motor

Figure 2.9(a): Torque in DC Motor

Figure 2.9(b): Current Flow in DC Motor

 The loop can be made to spin by fixing a half circle of copper which is known as commutator, to each end of the loop. Current is passed into and out of the loop by brushes that press onto the strips. The brushes do not go round so the wire does not get twisted. This arrangement also makes sure that the current always passes down on the right and back on the left so that the rotation continues. This is how a simple Electric motor is made

2.2.2 Force and Torque Calculations

Force and Torque CalculatorMass (lbs)

Length (in)

Center of Mass

Linkage 1 1 5 2.5

Linkage 2 1 5 2.5note: the center of mass, estimated to be half of length

Joint 2 1Object 1

Efficiency 90%

Joint 1 Acc 10

Joint 2 Acc 10 deg/s^2

calculating:Joint 1 Torque 64.139 lbs/in

17

Figure 2.9

Page 18: Final Reportv3

Joint 2 Torque 14.394 lbs/in

2.3 Control Unit

Control unit refers to an electronic system which takes inputs from the various sensors which collect data from the environment and can drive the output devices according to the conditions which are applied due to various constraints. The control unit consists of a programmable logic device called microcontroller. The microcontroller is a type of electronic device which can be pre-programmed according to our requirements. Every microcontroller has various input and output pins where different I/O devices can be connected. The microcontroller also has other peripherals like ADC, USART, PWM, etc. embedded inside the same chip. Therefore microcontroller is nothing but a microprocessor with all other peripherals embedded inside the same chip. Whenever we have to control the systems dynamically according to the conditions of system environment, we use a microcontroller as the control unit.

Figure 2.10: Control Unit for Robot

18

Microcontroller

Microprocessor

Peripherals

Output devices like

Motors etc.

Input Devices like:

IR sensors etc.

Figure 2.10

Page 19: Final Reportv3

2.3.1 Microcontroller

A microcontroller is a small computer on a single integrated circuit containing a processor core, memory, and programmable output peripherals. In this project we have used Atemga8 Microcontroller which has been used to contruct the Arduino board purchased. Atmega8 has 8 Kb of Flash program memory (10,000 Write/Erase cycles durability), 512 Bytes of EEPROM (100,000 Write/Erase Cycles).  1Kbyte Internal SRAM, 23 I/ line, two External Interrupt source, 19 different interrupt vectors supporting 19 events generated by internal peripherals. Three Internal Timers are available, two 8 bit, one 16 bit, supporting internal or external clocking. Analog Comparator: A comparator module is integrated in the IC that provides comparison facility between two voltages connected to the two inputs of the Analog comparator via External pins attached to the micro controller. An inbuilt analog to digital converter can convert an analog input signal into digital data of 10bit resolution.

Figure 2.11: Pin Diagram for Atmega8

19

Figure 2.11

Page 20: Final Reportv3

2.3.2 L293D Motor Driver IC chip

L293D is a dual H-bridge motor driver integrated circuit (IC). Motor drivers act as current amplifiers since they take a low-current control signal and provide a higher-current signal. This higher current signal is used to drive the motors.

L293D contains two inbuilt H-bridge driver circuits. In its common mode of operation, two DC motors can be driven simultaneously, both in forward and reverse direction. The motor operations of two motors can be controlled by input logic at pins 2 & 7 and 10 & 15. Input logic 00 or 11 will stop the corresponding motor. Logic 01 and 10 will rotate it in clockwise and anticlockwise directions, respectively.

Figure 2.12:L293D Circuit for 2 motor Control

Enable pins 1 and 9 (corresponding to the two motors) must be high for motors to start operating. When an enable input is high, the associated driver

20

Figure 2.12

Page 21: Final Reportv3

gets enabled. As a result, the outputs become active and work in phase with their inputs. When the enable input is low, that driver is disabled, and their outputs are off and in the high-impedance state.

EN 1A 2A FUNCTIONH L H Turn rightH H L Turn leftH L L Fast motor stopH H H Fast motor stopL X X Fast motor stop

21

Page 22: Final Reportv3

Chapter 3

3.1 Algorithm

1. Firstly the robot starts moving and checking for obstruction with the help of the infrared sensors.

2. If the obstruction is present then the wheel motor stops and the robotic arm motor starts.

3. The robotic arm completes its movemets and waits for the IR sensor to be in RESET

4. The process is repeated as many times as the the code requires

22

Page 23: Final Reportv3

3.2 Algorithm Flowchart

23

START

THE ROBOT MOVES AUTONOMOUSLY AND

CHECKS FOR OBSTRUCTION

IS OBSTRUCTION PRESENT ?

WHEEL MOTOR STOPS

ROBOTIC ARM MOTOR STARTS

ARM PICKS UP ANY OBSTRUCTION AND

REMOVES IT FROM PATH

RETURNS TO ORIGINAL POSITION AND STARTS TO

MOVE AGAIN AFTER DELAY OF 10 SECONDS

STOP

Page 24: Final Reportv3

3.3 Arduino Code

The code mentioned below is the basic layout for the arm to pick up an object and place it on the right side. This code can be modified to do any pick-and-place procedure.

const int rs = 10;const int ls = 11; const int rmotor1 = 2;const int lmotor1 = 3;const int motor21 = 4;const int motor22 = 5;const int motor31 = 6; // Armconst int motor32 = 7;const int motor41 = 8; // Flapconst int motor42 = 9;

int lsState = 0; int rsState = 0;

void setup(){ pinMode(ls, INPUT); pinMode(rs, INPUT); pinMode(lmotor1, OUTPUT); pinMode(rmotor1, OUTPUT); pinMode(motor21, OUTPUT); pinMode(motor22, OUTPUT); pinMode(motor31, OUTPUT); pinMode(motor32, OUTPUT); pinMode(motor41, OUTPUT); pinMode(motor42, OUTPUT); }

void loop(){ lsState = digitalRead(ls); rsState = digitalRead(rs); if ((lsState == LOW)&&(rsState == LOW)) { digitalWrite(lmotor1, HIGH); digitalWrite(rmotor1, HIGH); // Move Forward } if ((lsState == HIGH)&&(rsState == HIGH)) // when obstacle is detected { digitalWrite(lmotor1, LOW); digitalWrite(rmotor1, LOW); // Stop digitalWrite(motor41, LOW); digitalWrite(motor42, HIGH); // Open flap delay(1000); digitalWrite(motor41, LOW); digitalWrite(motor42, LOW); digitalWrite(motor31, LOW); digitalWrite(motor32, HIGH); // Arm down delay(1000); digitalWrite(motor31, LOW);

24

Page 25: Final Reportv3

digitalWrite(motor32, LOW); digitalWrite(motor42, LOW); digitalWrite(motor41, HIGH); // Close flap delay(1000); digitalWrite(motor42, LOW); digitalWrite(motor41, LOW); digitalWrite(motor32, LOW); digitalWrite(motor31, HIGH); // Arm up delay(1000); digitalWrite(motor32, LOW); digitalWrite(motor31, LOW); digitalWrite(motor21, LOW); digitalWrite(motor22, HIGH); delay(1000); digitalWrite(motor22, LOW); digitalWrite(motor21, LOW); digitalWrite(motor31, LOW); digitalWrite(motor32, HIGH); // Arm down delay(1000); digitalWrite(motor31, LOW); digitalWrite(motor32, LOW); digitalWrite(motor41, LOW); digitalWrite(motor42, HIGH); // Open flap delay(1000); digitalWrite(motor41, LOW); digitalWrite(motor42, LOW); digitalWrite(motor32, LOW); digitalWrite(motor31, HIGH); // Arm up delay(1000); digitalWrite(motor32, LOW); digitalWrite(motor31, LOW);

digitalWrite(motor22, LOW); digitalWrite(motor21, HIGH); delay(1000); digitalWrite(motor22, LOW); digitalWrite(motor21, LOW);

digitalWrite(motor31, LOW); digitalWrite(motor32, HIGH); // Arm down delay(1000); digitalWrite(motor31, LOW); digitalWrite(motor32, LOW);

} }

Chapter 4

4.1 Circuit Assembly 25

Page 26: Final Reportv3

Firstly the L293D IC was connected to the Arduino and is checked if it can drive the dc motor properly.

Figure 4.1: L293D with Arduino Board

Then we checked if the h-bridge was able to drive two motors simultaneously.

Figure 4.2: Arduino, Dual H- Bridge and Motors.

26

Figure 4.1

Figure 4.2

Page 27: Final Reportv3

Then we assembled the final circuit using the arduino board, h-bridge, L293D IC and dc motors.

4.2 Robotic Arm Applications

Robotic Arm can be used to reach out to areas inaccessible to the reach of a human, such as in a manhole deep enough to be a danger to the rescue workers. In that case a robotic arm can be used to reach out to the depths and perform the required activity such as rescuing, searching etc.

The robotic arm can be designed to perform any desired task such as welding, gripping, spinning etc., depending on the application. For example robot arms in automotive assembly line perform a variety of tasks such as wielding and parts rotation and placement during assembly.

In space the space shuttle Remote Manipulator System have multi degree of freedom robotic arms that have been used to perform a variety of tasks such as inspections of the Space Shuttle using a specially deployed boom with cameras and sensors attached at the end effector.

The robot arms can be autonomous or controlled manually and can be

used to perform a variety of tasks with great accuracy. The robotic arm can be fixed or mobile (i.e. wheeled) and can be designed for industrial or home applications. Robotic hands often have built-in pressure sensors that tell the computer how hard the robot is gripping a particular object. This keeps the robot from dropping or breaking whatever it's carrying. Other end effectors include blowtorches, drills and spray painters. This improves their performance.

In medical science: "Neuroarm" uses miniaturized tools such as laser scalpels with pinpoint accuracy and it can also perform soft tissue manipulation, needle insertion, suturing, and cauterization.

4.3 Future work that can be done:

27

Page 28: Final Reportv3

Increasing the degrees of freedom of the robotic arm by implanting more DC motors.

Increasing the weight capacity of the Robotic Arm so as to enable it to pick up heavier loads such as even a human being.

Implementing the inverse kinematics technique in robotic arm. Developing the graphical user interface for making the arm more user

friendly Developing a web interface so that arm could be controlled in remote

place by your web browser.

References

For pwm generation through atmega microcontroller

28

Page 29: Final Reportv3

http://enricorossi.org/blog/2010/avr_atmega16_fast_pwm/

2. For developing the graphical user interface using the opencv

The best way to learn opencv is to read the o’reilly’ s book “ Learning OpenCV:computer

vision with opencv library.

http://opencv.willowgarage.com/documentation/highgui._highlevel_gui_and_media_io.htm

http://www.aishack.in/

3. For articles related to robotics and the servo motors

http://www.robosapiens-india.com/cookbook/robotics%20virtual%20book/index.html

http://www.engineersgarage.com/articles/servo-motor

http://www.engineersgarage.com/embedded/avr-microcontroller-projects/atmega16-

servo-motor-circuit

29