Industrial Robot Development: Difference between revisions

From Open Source Ecology
Jump to navigation Jump to search
No edit summary
No edit summary
Line 232: Line 232:
=Toolchain for Toolpaths (Electrical)=
=Toolchain for Toolpaths (Electrical)=


Electrical Schematic Designer (gschem) > export ( __ filetype)> PCB Layout Creator (PCB) > export (gerber filetype)> G-code generator from gerber files (PCB2gcode) > export (gcode filetype) > Machine Controller (EMC2) > export (logic signals) > Machine ( __ ) > export (work)
*Electrical Schematic Designer (gschem) > export ( __ filetype)> PCB Layout Creator (PCB) > export (gerber filetype)> G-code generator from gerber files (PCB2gcode) > export (gcode filetype) > Machine Controller (EMC2) > export (logic signals) > Machine ( __ ) > export (work)


This toolchain allows digital fabrication to be used for the production of the industrial robot's electronic components.
*This toolchain allows digital fabrication to be used for the production of the industrial robot's electronic components.
 
=Computerized Numerical Control=
 
[http://www.linuxcnc.org/ EMC2 Homepage]
 
*The enhanced machine controller 2 (EMC2) is a software program that can transform input gcode to output control signals. These control signals can be fed to the microcontroller in order for the industrial robot to perform the desired movement.
 
*Because the industrial robot rotates on 6 detached axes instead of moving parallel along xyz axes, the EMC2 kinematics module must be used to manipulate the control signals an additional time.
 
=Microcontroller Programming=
 
[http://www.arduino.cc/ Arduino Homepage]
 
*The Arduino Mega 2560 Microcontroller has a pre-burnt bootloader that allows for a direct computer boot into the open source Arduino integrated development environment (IDE). Programming can be done with C in this IDE.


=Design Resources=
=Design Resources=


[https://cours.etsmtl.ca/gpa774/Cours/old-24-03-04/Documentations/Fanuc/81015en01.boo/toc.htm FANUC Maintenance Manual]
[https://cours.etsmtl.ca/gpa774/Cours/old-24-03-04/Documentations/Fanuc/81015en01.boo/toc.htm FANUC Maintenance Manual]
=For Further Inquiry=
*[http://www.ros.org/wiki/ Robot Operating System]


=Future Development=
=Future Development=

Revision as of 07:29, 20 July 2011


Industrial Robot
   Home  |  Research & Development  |  Bill of Materials  |  Manufacturing Instructions  |  User's Manual  |  User Reviews    Industrial Robot.png

Master Diagram

IRMaster.jpg

Developers

  • Paul Azevedo
  • Yoonseo Kang
  • Matthew Markudis

Progress Report and Task List

  • Note that all development points are open to change, "completed" or not.
  • Frame
    • Frame Concept (Completed)
    • Frame Specifications (Completed)
  • Gearbox
    • Gearbox Concept (Completed)
    • Gearbox Specifications
  • Stepper Mount
    • Stepper Mount Concept (Completed)
    • Stepper Mount Specifications (Completed)
  • Shaft Encoder
    • Shaft Encoder Electrical Concept (Completed)
    • Shaft Encoder Electrical Specifications
    • Shaft Encoder Mechanical Concept (Completed)
    • Shaft Encoder Mechanical Specifications
  • Hydraulics
    • Hydraulics Concept (Completed)
    • Hydraulics Specifications
  • Electronics
    • Electronics Concept (Completed)
    • Electronics Specifications
  • Programming
    • Microcontroller Programming
  • Operation
    • Control instructions

Design Rationale

  • Hydraulic Drive
    • Scales to very high payloads
    • Requires low gear reduction
  • Needle Valves and Solenoid Valves
    • Simplifies design and fabrication
  • Basic Frame
    • Simplifies design and fabrication
  • Spur gearbox
    • Achieves high efficiency
    • Incurs no axial force onto shaft
    • Simplifies design and fabrication
  • Incremental Encoder
    • Simplifies design and fabrication
    • Achieves high resolution
    • Achieves absolute position encoding through homing

Mass

Given density of A36 steel as 0.28 pounds per cubic inch (numbers are in pounds):

  • Frame
    • Foundation Underplate: 81
    • Foundation Pillar: 14
    • Foundation Overplate: 36
    • Base Angle: 84
    • Main Arm: 16.8
    • Forearm Angle: 42
    • Forearm Plate A: 5
    • Wrist Angle: 42
  • Hydraulic Motors
    • Hydraulic Motor 1: 20
    • Hydraulic Motor 2: 20
    • Hydraulic Motor 3: 20
    • Hydraulic Motor 4: 20
    • Hydraulic Motor 5: 20
    • Hydraulic Motor 6: 20
  • Gearboxes
    • Gearbox 1:
    • Gearbox 2:
    • Gearbox 3:
    • Gearbox 4:
    • Gearbox 5:
    • Gearbox 6:

Hydraulic Motor

Wikipedia on Hydraulic Motors

Damen Technical Agencies on Types of Hydraulic Motors

  • Hydraulic motors turn the industrial robot at each of its 6 axes.
  • Given an input flow pressure of X, the torque at the shaft of the hydraulic motor (in-lbs)
    • Hydraulic Motor 1:
    • Hydraulic Motor 2:
    • Hydraulic Motor 3:
    • Hydraulic Motor 4:
    • Hydraulic Motor 5:
    • Hydraulic Motor 6:

Gearbox

Presentation Slides on Gearbox Design

  • The gearbox allows the industrial robot to make a tradeoff of speed for torque at each of its degrees of freedom.
  • The encoder can be mounted onto the robot more easily near a gearbox.
  • The gearbox permits a rigid connection between separate frame components.
  • Gear reduction from input shaft to output shaft (revolutions of I to revolutions of O)
    • Gearbox 1:
    • Gearbox 2:
    • Gearbox 3:
    • Gearbox 4:
    • Gearbox 5:
    • Gearbox 6:

Repeatability

  • Explaining Repeatability
    • When a robotic arm is commanded to move its end-effector to a particular point in space, the end-effector may arrive a location close to the desired point but not quite. Through testing, the maximum possible inaccuracy (the distance from the desired point) can be observed and recorded. The value of this measurement is called the repeatability of the robotic arm; hence, if a robotic arm is said to have a repeatability of 1mm, then the robot's greatest margin of error when moving its end-effector to a desired point is 1mm.
    • Visually, the repeatability of the robotic arm can be represented by a sphere centered at the desired point of movement with a radius equal to the repeatability; when moving to that desired point, the robotic arm will always finish at a point within the sphere.
    • Note that the repeatability of a robotic arm is determined by a repetition test where the arm moves to and from a desired point a given number of times while measuring the inaccuracy each time it stops; it follows that the observed value of repeatability is imperfect, though a high number of trials can reduce the uncertainty.
  • Improving Repeatability
    • Repeatability can be improved by lowering the deflection that occurs when the frame of the robotic arm is placed under stress. Deflection minimization can be achieved by increasing the rigidity of all components placed under stress.
    • When a robotic arm is commanded to move and stop its end-effector at a certain location, shaft encoders determine where the robot stops moving. Shaft encoders measure the angular position of the shaft (ex. 45.6 degrees) but must do so in intervals (ex. between 1 and 4 degrees, between 4 and 7 degrees, ...). Therefore, the resolution of the shaft encoders significantly affects the repeatability of the robotic arm (the higher the resolution, the smaller the intervals); increasing the encoder resolution will improve repeatability.

Stepper Motor

Solarbotics on Stepper Motors

Wikipedia on Stepper Motors

  • Stepper motors are brushless DC motors that rotate their shaft in "steps", each of which has consists of a minute angle. Hence, stepper motors can be accurately controlled even with open-loop control (no shaft encoder or such feedback devices).
  • Stepper motors can be mounted onto one side of a metal angle then connected via a shaft coupling to a needle valve. This allows for flow control of the hydraulic system using electronically operated stepper motors.
  • The torque of the stepper motors:

Kinematic Parameters

Wikipedia on Denavit-Hartenberg Parameters (video included)

Formal Lecture Notes on Denavit-Hartenberg

  • The Denavit-Hartenberg parameters define the position relationships between 2 motors of the industrial robot. More specifically, the robot has 6 motors, hence one parameter would be between motor 1 and 2; another between motor 2 and 3, 3 and 4, 4 and 5, and 5 and 6.
  • The Denavit-Hartenberg parameters are as follows, for joint(i): depth(i), normal length(i), z angle (i), x angle (i).
    • Joint(1): Depth(1)= , Normal Length(1)= , Z Angle(1)=90deg , X Angle(1)=*
    • Joint(2): Depth(2)= , Normal Length(2)= , Z Angle(2)=00deg , X Angle(2)=*
    • Joint(3): Depth(3)= , Normal Length(3)= , Z Angle(3)=90deg , X Angle(3)=*
    • Joint(4): Depth(4)= , Normal Length(4)= , Z Angle(4)=90deg , X Angle(4)=*
    • Joint(5): Depth(5)= , Normal Length(5)= , Z Angle(5)=90deg , X Angle(5)=*
    • where * is the joint variable

Force Analysis

  • Format
    • Force is expressed in newtons (N)
    • Maximum absolute displacement is expressed in millimeters (mm)
    • Dimensions are expressed in inches (“)
  • A36 Steel Specifications
    • Poisson Ratio = 0.285
    • Young's Modulus = 200GPa

Toolchain for Toolpaths (Mechanical)

  • CAD (FreeCAD) > export (stl, dxf, svg) > CAM (PyCAM) > export (gcode) > Machine Controller (EMC2) > export (logic signals) > Machine (CNC milling, various) > export (work)
  • In FreeCAD, a 3d mesh drawing can be exported as an stl file; alternatively, a 2d drawing can be exported as a dxf or svg file. Any of these files can then be imported in PyCAM, in which toolpaths can be generated for those drawings. These toolpaths can then be exported from PyCAM as a gcode file. EMC2 can then import the gcode file and simulate the toolpath, plus send logic signals to an external electronic controller that moves a machine to correspond to the toolpath. This toolchain allows digital fabrication to be utilized for the construction of the industrial robot.

Micro-controller

  • The microcontroller is the programmable command unit of the industrial robot. The microcontroller can send signals to the stepper motor drivers and solenoid drivers to move the robot; the microcontroller can receive signals from the shaft encoder to determine how far the robot has moved at each of the 6 axes points.
  • Microcontroller connections:
    • 6 digital outputs to the solenoid drivers
    • 12 digital outputs to the stepper motor drivers
    • 6 digital inputs from the shaft encoders
    • 1 universal serial bus (USB) port for interfacing with the computer

Solenoid Driver

  • The function of the solenoid driver is to power on or off the solenoid valves. The solenoid driver receives a digital signal (high or low) from the microcontroller and correspondingly switches the solenoid valve on or off.

Stepper Motor Driver

  • The function of the stepper motor driver is to power the stepper motors in discrete increments based on control signals from the microcontroller.

Shaft Encoder

Denneys on optical incremental encoders

Mechatronics on Digital Encoders

Wikipedia on Rotary Encoders

Resource for Incremental Encoder Design

Society of Robots on Incremental Encoder Design

  • The function of the shaft encoder is to determine the position of a motor shaft as time passes. This function is necessary for the industrial robot to perform tasks with accuracy, because the robot's movement is determined not only by the power supplied to the motors but also the load being moved. For instance, more power is required to lift a boulder than a baseball for the same distance. It is easier, more practical, and more accurate to have a position sensor (shaft encoder) than having to calculate different power inputs for each load.
  • An absolute encoder can identify different positions of the measured shaft, but is more complex than an incremental encoder. However, an incremental encoder only provides relative position information. An incremental encoder can be used as an "absolute" one by saving the relative movement information; for instance, for day 1, joint A moves 5 degrees clockwise from the home position, then day 2, joint A moves 10 more degrees clockwise; by saving the information from day 1, the microcontroller can understand that joint A has moved a total of 15 degrees clockwise from the home position, not just 10 degrees.
  • Combining that with schmidt trigger'd comparators, 2 digital outputs can carry signals to the microcontroller, one output to determine direction of shaft rotation and the other output to determine speed of shaft rotation. (if output B changes when output A is high, the shaft is rotating in one direction; if output B changes when output A is low, the shaft is rotating in the other direction).

Toolchain for Toolpaths (Electrical)

  • Electrical Schematic Designer (gschem) > export ( __ filetype)> PCB Layout Creator (PCB) > export (gerber filetype)> G-code generator from gerber files (PCB2gcode) > export (gcode filetype) > Machine Controller (EMC2) > export (logic signals) > Machine ( __ ) > export (work)
  • This toolchain allows digital fabrication to be used for the production of the industrial robot's electronic components.

Computerized Numerical Control

EMC2 Homepage

  • The enhanced machine controller 2 (EMC2) is a software program that can transform input gcode to output control signals. These control signals can be fed to the microcontroller in order for the industrial robot to perform the desired movement.
  • Because the industrial robot rotates on 6 detached axes instead of moving parallel along xyz axes, the EMC2 kinematics module must be used to manipulate the control signals an additional time.

Microcontroller Programming

Arduino Homepage

  • The Arduino Mega 2560 Microcontroller has a pre-burnt bootloader that allows for a direct computer boot into the open source Arduino integrated development environment (IDE). Programming can be done with C in this IDE.

Design Resources

FANUC Maintenance Manual

For Further Inquiry

Future Development

  • As various components of the industrial robot shift from commercial purchase to open source fabrication, design flexibility will increase, improving performance while reducing input resource usage.