Modelling, offline programming and simulation of an industrial robot
Objectives
• To demonstrate modelling of a robot work cell for pallet picking operation using 3-D graphical User interface in Robodk software.
• To demonstrate robot trajectory planning, programming and simulation of a robot manipulator.
Experimental Setup
The physical setup in the FMS and CIM lab consists of the following:
6-axis Robot manipulator with pneumatic gripper
Robodk Software for simulation of robot
Table, mechanical parts
Computer system for integration of Robodk with robot manipulator
Details of the Exercise
The objective of this experiment is to program a robotic system to autonomously perform a pallet picking task. The task involves retrieving five
rectangular parts positioned at specified locations on a table, transferring each part to a designated target location, and subsequently stacking the parts
on top of each other to form a palletized arrangement. Finally, the robot should return to a predefined home position.
Procedure:
Retrieval and Placement:
a. The robotic system is initialized at a starting position.
b. Using manual programs, the robot identifies and locate the five rectangular parts on the table.
c. The robot is programmed to approach each part individually, grasp it securely, and transport it to the respective target location.
d. At the target location, the robot releases the part with precision.
Palletization:
a. Following the retrieval and placement phase, the robot repeats the process for the remaining parts until all five are positioned at their designated
target locations.
b. The robot is programmed to stack the parts on top of each other to create a palletized structure.
c. Careful attention is given to the stacking sequence and alignment to ensure stability.
Home Position:
a. Upon completing the palletization task, the robot is directed to navigate back to the home position.
b. The home position serves as the reference point for the robot's initial and final states in the experiment.
Steps for installing the Robodk software
1. Open the below
https://robodk.com/download
2. Fill the form and access the download.
3. Download Robodk as per your pc Configuration
4. Double click on setup file install-Robodk (for windows user)
5. Please wait while setup is loading……
6. Click on next
7. Click on I agree
8. Click on next
9. Click on install
10. Finish…
Experimental setup
Download all the files from below drive link
https://drive.google.com/drive/folders/1x_KYrG4pWqJOzkQbpuN5xBWUawqb8xzu?usp=sharing
1. Import table
Click on load file directory
Select download folder
Select Table-1400x800x800mm file
You will get below display window
2. Import Robot
Click on load file directory
Select download folder
Select Motoman-MH5F robot file
Double click on Table 1400*800*800mm in Program tree
Enter values 0 1000 0 0 0 0 and press enter
You will get below setup
3. Import part1
Click on load file directory
Select download folder
Select part1 file
Double click on part1
Enter values 500 800 0 0 0 0 and press enter
Change object color
Select part1 file
Double click on part1
Go to more option
Select change colors
Click on color box
Select basic color and press ok.
You will get below display
Follow the same procedure for part2, part3, part4, and part5 (Use different color for each part)
Coordinates with respect to new station (1) for remaining parts.
x y z Rx Ry Rz
part2 500 900 0 0 0 0
part3 500 1000 0 0 0 0
part4 500 1100 0 0 0 0
part5 500 1200 0 0 0 0
4. Import box1
Click on load file directory
Select download folder
Select box1 file
Double click on box1
Enter values 300 1300 0 0 0 0 and press enter
5. Import gripper
Click on load file directory
Select download folder
Select gripper file
Drag and drop the gripper in Motoman MH5F
Double click on gripper
Enter values 0 0 0 0 0 0 and press enter
Move geometry
Enter values 0 0 0 0 0 90
Final Setup
Experimental setup for pick and place operation has been successfully completed.
Programming of Robodk simulator
1. Go to Tools- Options-Python- Select python editor – vscodium.exe as shown in figure.
2. Go to Program – add python program – click
3. Right click on- Prog1-edit python script- click
4. Clear VSCodium editor
5. This is the Space where you can write your program in Python language
Robot jog movement
Hold alt key on keyboard or press arrow with reference tab to move gripper reference frame keeping the relative position with respect to robot base.
Move the robot to record position above the part1 as shown in figure and record the positions.
Keep z value as -180
Press target tab and note down robot position for the “target 1”
Select box center as palletizing location. For that move robot gripper above the box where robot gripper and box center will have same point and name
it as target 2.
Keep z value as -40.
Now record positions for all the parts and their respective target position in the box to complete palletizing task.
6. Program Structure
Import Libraries
# Import libraries
# Importing the necessary libraries for RobotDK operations.
from robodk.robolink import *
from robodk.robomath import *
Connection with robot
# Initialize the Robolink object
# creating a Robolink instance establishes a connection with RobotDK, serving as the interface for programmatic control.
RDK = Robolink()
# Get the robot item from the station
# retrieving the robot item from the current RobotDK station. Assumes that a robot has been loaded into the station.
robot = RDK.Item("", ITEM_TYPE_ROBOT)
Set Speed Joints
# Set the speed of the robot joints to 5 (units depend on the robot and its setup)
# configuring the joint speed of the robot to 5 units, adjusting based on the specific robot configuration.
robot.setSpeedJoints(5)
speed_linear = 5 # Set the desired linear speed in mm/s
robot.setSpeed(speed_linear)
Define Tool
# Define the gripper tool item
# defining the tool item representing the robot's gripper within the RobotDK station.
toolitem = RDK.Item("gripper", ITEM_TYPE_TOOL)
Move Robot to Grasp part1
# Move the robot to a specific position above the part1
# commanding the robot to smoothly move to a predefined approach joint position located above the part1.
# calculate a new approach position 60 mm along the Z axis of the tool with respect to the target
target = RDK.Item('Target 1') # retrieve the Target item
robot.MoveJ(target) # move the robot to the target
approach = target.Pose()*transl(0,0, 60)
robot.MoveL(approach) # linear move to the approach position
Gripper Close
# Close the gripper
# activating the gripper tool to close, assuming it is configured to grasp an object.
toolitem.AttachClosest()
robot.MoveJ(target) # move the robot to the retrieve position
Move Robot to specified palletizing target
# Move the robot to a specific approach position target position
targetpart1 = RDK.Item('Target 2') # retrieve the Target item
robot.MoveJ(targetpart1)
# calculate a new approach position 200 mm along the Z axis of the tool with respect to the target
aproachtargetpart1 = targetpart1.Pose()*transl(0,0,200)
robot.MoveL(aproachtargetpart1)
Gripper Open
# Open the gripper
# deactivating the gripper tool to open, assuming it was previously closed.
toolitem.DetachAll()
robot.MoveJ(targetpart1) # move the robot to the retrieve position t
Move robot to home Position
# Move the robot to its home position
# guiding the robot to its predefined home position within the workspace.
robot.MoveJ([0, 0, 0, 0, 0, 0])
Follow the same procedure to pick all the parts and place in the box on top of each another. The code snippet is given as below
7. Save the program and close the VSCodium editor.
8. Right click on Prog1 and select display path
9. Right click on Prog1 and Run Python Script
Final Output