Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Introduction to robotics - module 4, Slides of Introduction to Robotics

Introduction to robotics - module 4

Typology: Slides

2024/2025

Available from 07/06/2025

varun-31
varun-31 🇮🇳

44 documents

1 / 26

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
MODULE-4
Robot Programming
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a

Partial preview of the text

Download Introduction to robotics - module 4 and more Slides Introduction to Robotics in PDF only on Docsity!

MODULE-

Robot Programming

Introduction

  • (^) A robot program is a set of instructions given to the robot to define and control its actions. Robots are programmed to make them perform complex tasks, and these programs can be edited or changed when required.
  • (^) The various steps in robot programming include training the robot on the task to be performed, saving and executing the program, and debugging procedure to correct the code if needed.
  • (^) Robot programs can be simple or complex based on the actions to be performed.
  • (^) A simple program contains codes to tell the robot how to respond to a particular event that can be expected.
  • (^) Complex programs direct robots on how to perform when complex situations arise and are trained to learn from past series of events and to predict things that are yet to happen and respond accordingly.
  • (^) A robot program commands or instruct them to operate the end-effectors, grippers, etc. how to take a decision based on certain events, movement, etc.

Introduction

  • (^) The simple method of programming a robot was to guide the robot manually to perform some specific set of tasks.
  • (^) In each step, the robot is made to move to the desired location, and each position change and corresponding coordinates of various joints are recorded in the controller.
  • (^) Then, all the steps in the task like opening gripper, moving, activating a tool like welding torch, closing gripper, etc. are done precisely so that all the corresponding actions and specific locations are recorded.
  • (^) All these will be recorded as a "program" in the controller of the robot and can be later executed so that the robot can perform the same task or series of tasks in the exact fashion. This method of teaching by showing or guiding technique is called lead through programming.

Introduction

  • (^) This method was considered advantageous as it is cost-effective and did not require a general-purpose computer for the purpose.
  • (^) Its drawback was that, the main advantages of programming like using of "loops" to repeat a set of operations or "conditional statements" where the task has to be done based on particular conditions could not be implemented.
  • (^) In the manual lead through technique, the operator can specify a single sequence of tasks for execution.
  • (^) Both manual lead-through programming and teach by pendant method and come under online programming.
  • (^) In teach by showing method, a robot is taught about the movement it should make or path it should follow.
  • (^) After this teaching phase, the robot will do the same movement by itself.
  • (^) In teach by showing method, teaching is done using a device called teach pendant, where an operator makes the robot move to specific points through the trajectory.
  • (^) In certain cases, devices like joystick can be used for teaching.
  • (^) The guiding process is simpler and better for simple applications like material handling.

Introduction

Powered lead-through programming (Teach by pendent)  (^) This is a very simple method of programming and does not require highly skilled programmers.  (^) This programming technique is utilized when a robot needs to perform simple and direct tasks.  (^) Programming can be done by describing system coordinates, coordinates of tools, end-effector, work piece, etc.  (^) Pendants used by programmers during programming and debugging are called programmer's pendants, and pendants utilized by robot operators during normal working of a robot are called operator's pendants.  (^) The major components of teach pendant are Liquid Crystal Display (LCD), emergency stop switch, data entry motion, speed bars to control speed, etc.  (^) As complex motions cannot be controlled or taught easily by teach pendant, this type of programming is limited to point-to-point motion rather than continuous movements.

Manual lead-through programming  (^) As the name suggests, the robot is led or guided manually to perform specific tasks by moving the end-effectors through the specific locations.  (^) The operator moves along with the robot to different positions of the workspace.  (^) All these operations are recorded by the controller and saved so that it can be replayed when set to the automatic mode.  (^) The procedure is similar to teach by pendant where the robot is taught what to do, but not with pendants.  (^) The coordinates of motion and velocities of various joints may be stored during this process of demonstration for later use.  (^) The operator who teaches the robot is in physical contact with the robot, and it takes complete control and walks along with the robot throughout the operation with safeguarding devices inactivated.  (^) This increases the potential danger to the operator.  (^) In both manual lead-through method and teach by pendant method, the operator gives a detailed demonstration to the robot of the task to be performed, how to move in workspace, and clearly specifying the position of end-effectors, joint velocities, etc.  (^) Thus, these techniques do not demand highly skilled programmers, and inverse kinematics need not be applied.  (^) Through a simple method of robot programming, complex and diverse new tasks cannot be performed by the robot using this technique.  (^) Also, during the programming phase, a robot cannot perform any tasks. The manual lead-through programming technique is preferred for continuous movements of robot as movements in smooth curves can be taught in this method rather than the teach by pendant method.  (^) It includes operations like spray painting where the wrist of the robot should move smoothly with a spray-painting gun as the end- effector.

Major requirements to be addressed in robot

programming

  • (^) Sensing
  • (^) World Modelling
  • (^) Motion Specification
  • (^) Control Flow

Sensing

  • (^) The robot tasks and their applications are largely dependent on its environment and other factors that need to be sensed.
  • (^) Sensors are used to identify if the part has reached, whether it is properly gripped, whether any error is detected during dipping or taken out of the tank, position of placing the part for drying, taking it to the next conveyor belt, etc.
  • (^) Robot programming should include necessary commands for acquiring data from various sensors.
  • (^) Robot programming allows the function of sensing in robots for controlling, initiating, and terminating their motion, to select the decision branch based on the output of sensor and hence decide the action to be taken, to get the data regarding the position and orientation of object, etc.

World Modelling

  • (^) For specifying the task of gripping, the part approaching through a conveyor belt, the position of gripper with respect to the part need to be specified. The position of the object is determined using vision sensors.
  • (^) A homogeneous transform matrix is a common method of representing the object positions. It allows to define the relation of a coordinate frame to another in terms of rotation and translation.
  • (^) In some cases, world modelling enables some defined objects to become "affixed."
  • (^) The advantage is that, when some objects are affixed based on a particular step or task in the action, later on, if one of those affixed objects is moved using a statement, all other defined objects affixed to it are also moved with it.
  • (^) Thus, world modelling defines combining information of all the objects that the robot has to deal with along with the information about the robot or the manipulator.

Motion Specification

  • (^) Programming enables the robot to move as per the requirement or it enables the guiding of robot. It is simple only if positions and motion are known at the time of programming.
  • (^) In most of the cases, the motion of the robot cannot be completely specified by the final position.
  • (^) Instead, the entire path needs to be specified. For grasping an object in this task, the robot should approach from above and should avoid collisions.
  • (^) Thus, the path to be followed by the robot should be completely specified by adding the intermediate points called via points between the starting and ending points.

Motion Specification

  • (^) Paths may be defined as uncoordinated joint motions, straight line paths in joint coordinate system, or straight line path in the Cartesian space.
  • (^) The major issue while specifying motion is that there is no unique mapping between the Cartesian and joint coordinates due to which the best solution needs to be identified by the system.
  • (^) VAL language provides some commands for selecting the best out of the many solutions available.
  • (^) Some applications like arc welding demands fine control of speed as well as shape of the path.
  • (^) This is done by providing separate commands for trajectory control like commands for specifying the speed or acceleration of the robot.
  • (^) When all the via points are listed completely, it may result in very long motions and take much more time.
  • (^) It can be avoided by specifying a nominal path in the Cartesian space and specifying the allowable deviation from the path.
  • (^) Later, on executing, the trajectory is formed on the basis of these constraints.

Control Flow

  • (^) Programming allows to select and execute a set of commands based on a particular condition or sensor data or control signals.
  • (^) Control flow refers to the situation when If (condition) is checked, then (set of actions to perform).
  • (^) This is also useful for error detection and correction. When a robotic arm is grasping a part, the extent of opening can be assessed based on the if condition by checking the current value with the expected value. The conditional statement "if then" is added in almost all languages for completion of various tasks efficiently.
  • (^) Even though the robot is a single system, it is comprised of many components like end-effectors, sensors, tools, conveyors, etc.
  • (^) They should be cooperated and communicated well dynamically for completing a task and need to share the information among each other.
  • (^) In many applications, when more than 1 robots are working in parallel, commands signal and wait are used for checking certain conditions using data from sensors and perform an action based on that.

Joint-level programming:

  • (^) It is the simplest and basic level of robot programming where instruction is provided for the movement of each individual joints. Robot-oriented programming:
  • (^) In this programming mode, commands are given for monitoring and controlling the position and orientation of the end-effector.
  • (^) A task is described step-by step in assembly code, and the programmer can also verify the code at each step before proceeding to the next instruction.
  • (^) The program completely controls and manages the manipulator or robot throughout the specified task.
  • (^) The program for picking and placing a part from one conveyer belt to the other consists picking the part from first conveyer belt, move the part above the second conveyer belt and place it over it. High-level programming:
  • (^) Commands are given at the task level or application level, instead of giving instructions at the joint level as in the case of joint- or robot-level programming.
  • (^) High-level programming can be done at the object or task level. Robot programming levels
  • (^) In object-level programming, instructions are given regarding the operations to be performed like PICK X or MOVE X or DROP Y.
  • (^) To execute these operations, the robot has to be instructed on how to move the joints, how to generate trajectory, transformation of coordinates, etc., which are done by the software itself.
  • (^) In task-level programming, the programmer has very less burden of just specifying the task to do like ASSEMBLE the system or INSPECT X.
  • (^) Detailed instructions and commands needed to perform the task will be generated by the software. This level of programming is not completely commercialized and is in the developing stage.
  • (^) Thus, high-level programming is more useful as the programming phase is made smaller as less codes are needed for implementation.
  • (^) Also, programming is independent of the robot in high-level programming, while it is robot- dependent in joint-level programming or robot-oriented programming.
  • (^) The advantages of offline programming are that the robot is not involved during the programming phase and continues its action, it is more cost-effective as it is operational during the programming phase, the programs can be edited quickly, the debugging procedure is also simpler, and better optimization is possible in layout and planning as they are simulated prior to real trial.
  • (^) But, the disadvantage of offline programming is that this method requires expert programmers. Robot programming levels