Note: Objective: Prelab: ME 5286 Robotics Labs Lab 1: Hello Cobot World Duration: 2 Weeks (1/22/2018 2/02/2018)

Similar documents
Note: Objective: Prelab: ME 5286 Robotics Labs Lab 1: Hello Cobot World Duration: 2 Weeks (1/28/2019 2/08/2019)

Note: Objective: Prelab: ME 5286 Robotics Labs Lab 1: Hello World Duration: 1 Week

ME 5286 Robotics Lab Lab 4: Flashlight Assembly Duration: 3 Weeks (Mar 4 Mar 29; the 3 weeks does not include spring break)

Note: Objective: Lab Procedure: ME 5286 Robotics Labs Lab 4: Flashlight Assembly Duration: 3 Weeks

Exercise 1-1. Control of the Robot, Using RoboCIM EXERCISE OBJECTIVE

Robotic Manipulation Lab 1: Getting Acquainted with the Denso Robot Arms Fall 2010

Practical Assignment 1: Arduino interface with Simulink

2809 CAD TRAINING: Part 1 Sketching and Making 3D Parts. Contents

Exercise 2. Point-to-Point Programs EXERCISE OBJECTIVE

2 Robot Pick and Place

Collaborative Robots in industry

WEB I/O. Wireless On/Off Control USER MANUAL

Fusion 360 Part Setup. Tutorial

Connect your robot with RoboDK (Kuka)

Familiarization with the Servo Robot System

Control of the Robot, Using the Teach Pendant

Lab 8: Introduction to the e-puck Robot

Introduction to ABB Labs. TA s: Ryan Mocadlo Adam Gatehouse

CNC Turning Training CNC MILLING / ROUTING TRAINING GUIDE. Page 1

Table of Contents. Lesson 1 Getting Started

INTRODUCTION TO DATA STUDIO

9/2/2013 Excellent ID. Operational Manual eskan SADL handheld scanner

GE 320: Introduction to Control Systems

2020 DRAWBOT INSTALLATION AND USE. Robert Ashford Henry Arnold 4-H OABB

Faculty Lecture Capture Guide

Overview. The Game Idea

Live Agent for Administrators

Sensor Calibration Lab

with MultiMedia CD Randy H. Shih Jack Zecher SDC PUBLICATIONS Schroff Development Corporation

Basic Recording. Start --> Programs --> Panopto --> Panopto Recorder. Logging In

Setup and Walk Through Guide Orion for Clubs Orion at Home

Designing in the context of an assembly

AirScope Spectrum Analyzer User s Manual

Laboratory Assignment: EM Numerical Modeling of a Monopole

Game Genie Save Editor for PS3

iphoto Getting Started Get to know iphoto and learn how to import and organize your photos, and create a photo slideshow and book.

EE-110 Introduction to Engineering & Laboratory Experience Saeid Rahimi, Ph.D. Labs Introduction to Arduino

Calibrating BRAVIA with CalMAN

Live Agent for Administrators

Exercise 8. Troubleshooting a Radar Target Tracker EXERCISE OBJECTIVE

Learn about the RoboMind programming environment

LC-10 Chipless TagReader v 2.0 August 2006

Downloading a ROBOTC Sample Program

TM5. Guide Book. Hardware Version: 2.00 Software Version: 1.62

Introduction to NetLab ECT practical # 1

Logging into Five9 Telephony

Blackfin Online Learning & Development

Live Agent for Administrators

Precalculations Individual Portion Introductory Lab: Basic Operation of Common Laboratory Instruments

Mini Project #2: Motion Planning and Generation for a Robot Arm

DocuSign for Sugar 7 v1.0. Overview. Quick Start Guide. Published December 5, 2013

KORE: Basic Course KUKA Official Robot Education

Blue Bamboo P25 Device Manager Guide

User Manual. This User Manual will guide you through the steps to set up your Spike and take measurements.

Running the PR2. Chapter Getting set up Out of the box Batteries and power

EGG 101L INTRODUCTION TO ENGINEERING EXPERIENCE

Up to Cruising Speed with Autodesk Inventor (Part 1)

Best Practices Guide Polycom SoundStructure and HDX Microphones

Design Lab Fall 2011 Controlling Robots

Endurance R/C Wi-Fi Servo Controller 2 Instructions

AutoCAD 2D I. Module 6. Drawing Lines Using Cartesian Coordinates. IAT Curriculum Unit PREPARED BY. February 2011

To solve a problem (perform a task) in a virtual world, we must accomplish the following:

Capstone Python Project Features CSSE 120, Introduction to Software Development

APNT#1166 Banner Engineering Driver v How To Guide

1 Lab + Hwk 4: Introduction to the e-puck Robot

Scratch for Beginners Workbook

Free vibration of cantilever beam FREE VIBRATION OF CANTILEVER BEAM PROCEDURE

GEO/EVS 425/525 Unit 2 Composing a Map in Final Form

ECE 497 Introduction to Mobile Robotics Spring 09-10

UNIT VI. Current approaches to programming are classified as into two major categories:

INSTRUCTIONS. 3DR Plane CONTENTS. Thank you for purchasing a 3DR Plane!

Assignment 5 due Monday, May 7

1 Robot Axis and Movement

smraza Getting Start Guide Contents Arduino IDE (Integrated Development Environment)... 1 Introduction... 1 Install the Arduino Software (IDE)...

Flash Blaster II v.2.00 for the Falcon digital console Falcon ENGLISH

Hytera. PD41X Patrol Management System. Installation and Configuration Guide

Quick Start Guide for the PULSE PROFILING APPLICATION

Application Note. Communication between arduino and IMU Software capturing the data

Generations Automatic Stand-Alone Lace By Bernie Griffith Generations Software

XLR PRO Radio Frequency (RF) Modem. Getting Started Guide

Lesson 3: Arduino. Goals

CS/NEUR125 Brains, Minds, and Machines. Due: Wednesday, February 8

Experiment P02: Understanding Motion II Velocity and Time (Motion Sensor)

PHYSICS 220 LAB #1: ONE-DIMENSIONAL MOTION

DMMDRV Software User Manual. Version: A10 50 / December 2015 Manual Code: DSFEN A

YCE13. Dealer PC Programming Software Reference Manual. Attention!

User Manual. Original instructions. Meca500

HT1100 Satellite Modem User Guide

User Manual Creatr HS

Lab 3 Swinging pendulum experiment

John Henry Foster INTRODUCING OUR NEW ROBOTICS LINE. Imagine Your Business...better. Automate Virtually Anything jhfoster.

Root Locus Design. by Martin Hagan revised by Trevor Eckert 1 OBJECTIVE

ArbStudio Triggers. Using Both Input & Output Trigger With ArbStudio APPLICATION BRIEF LAB912

Worksheet Answer Key: Tree Measurer Projects > Tree Measurer

Release Notes v KINOVA Gen3 Ultra lightweight robot enabled by KINOVA KORTEX

LIGHT-SCENE ENGINE MANAGER GUIDE

MAE106 Laboratory Exercises Lab # 1 - Laboratory tools

Understanding OpenGL

Issue No: MG025 Date: 05 June McMurdo SmartFind R5 GMDSS Radio IMO MSC. 1/Circ Update procedure

LESSONS Lesson 1. Microcontrollers and SBCs. The Big Idea: Lesson 1: Microcontrollers and SBCs. Background: What, precisely, is computer science?

Transcription:

ME 5286 Robotics Labs Lab 1: Hello Cobot World Duration: 2 Weeks (1/22/2018 2/02/2018) Note: At least two people must be present in the lab when operating the UR5 robot. Upload a selfie of you, your partner, and the robot to the Moodle submission link before starting the lab. Read all warnings and cautions in the manual. Once you are done with all your tasks for the day, 1) Save all your programs to permanent storage (i.e. flash drive or H drive) and 2) Remove all of your programs from the Robot s computer. Failure to remove your programs from the robot s computer will result in a loss of points. Objective: Familiarize yourself with the UR5 robot and PolyScope, RoboDK, and the RoboDK Python API programming environments. RoboDK Python API is an extension of RoboDK that allows the user to program the robot through a Python script, whereas with regular RoboDK, it is done through a graphical user interface. During this lab you will move the robot through specified waypoints in joint and Cartesian space using all three programing methods and tracing a virtual cube. Prelab: - Read the UR5 lab manual and understand: o Risk assessments p. I-1 I-9, and Collaborative robot safety standards: ISO/TS 15066, ISO 10218-2 (course website) - Install RobotDK o Understand the End User License Agreement (EULA) when installing RoboDK - For each of the labs, be sure to stick with the same robot. Do not switch robots in the middle of the lab. Results may not be consistent. 1

Lab Procedure: The first part of the lab will consist of moving the robot through 3 different poses in both Cartesian and joint space using PolyScope, RoboDK, and RoboDK Python API. The poses that you will be moving through are as follows: X (mm) Y (mm) Z (mm) RX (rad) RY (rad) RZ (rad) Pose 1-575 -350 300 2.10 1.11 0.63 Pose 2-240 -445 650 1.57-1.57-1.57 Pose 3 400-400 200 2.79-0.16 0 - The robot s pose (position and orientation) of the tool or end effector is described in Section 11.4 starting on page II-13 of the manual. - PolyScope and RoboDK are visual programming environments. - RoboDK Python API is a powerful tool that allows you to program in Python and visualize robot movements within RoboDK. A post processor is used that converts the Python code to a language the UR5 understands. Note: Tasks 1, 2, and 3 will be done by you and your partner on either Robot 1 or Robot 2. Once you have completed the first three tasks, task 4 must be done on Robot 1 (with gripper mounted) while task 5 must be done on Robot 2 (with collision end effector). As a result, you and your partner will have to coordinate with the other group during your lab period (if there is another group) to switch robots between tasks 4 and 5. Remember this is a 2 week lab. Task 1: Move the robot through a set of poses in both Cartesian and joint space using PolyScope (Tablet connected to the UR5). Task Steps 1) Press Program Robot on the PolyScope Robot User Interface page (Figure 1). 2) Press Empty Program (See Figure 2) 3) Navigate to the Structure tab and press Move. 4) Click on MoveJ Waypoint in the robot program and then press Set this waypoint. 5) Set the Tool Center Point (TCP) to Pose 1 and press okay. [See pg. II-23 of the robot manual for definition of TCP]. You may need to free drive the robot to get it close to the desired pose. Change the Feature drop down menu to Base from View. This will ensure that you are working in the robot base frame. 6) Repeat steps 4 and 5 for Pose 2 and Pose 3. 7) Click on the Graphics tab (Figure 4: PolyScope move robot interface) and click the Simulation bubble. Then press Play and verify that the robot is doing what you expect it to do. 2

8) In the Graphics tab, press Real Robot and then press play and watch the robot perform its task. 9) Press MoveJ in the Robot Program and change the MoveJ to MoveL and repeat steps 7 and 8. Figure 1: PolyScope home screen Figure 2: New program screen 3

Figure 3: Robot programming initial page Figure 4: PolyScope move robot interface. The UR5 robot joints are shown in Figure 10.1 on pg. II-3 of the robot s manual. 4

Figure 5: Defining a robot pose Task 2: Move the robot through a set of poses in both the Cartesian and joint space using RoboDK. Task Steps 1) Open RoboDK on the lab desktop 2) Download and open "ur5_and_table.rdk" from the course website and save the workspace as ME5286_Lab1_Task1_[last name]_[first name].rdk 3) Select the target button 4) Press F3 or right click and select options and assign Pose 1 for Target 1 as shown in Figure 6. 5) Repeat steps 3 and 4 for Target 2 and Target 3. 6) With the three targets defined, the next step is to create a program to move between the three targets. Press the program button 7) Add a joint space movement by pressing right click and set the target link to Target 1. 5

8) Repeat step 7 for Target 2 and Target 3. 9) Right click on Prog 1 in the command tree and check Run. Verify that your path matches that of the robot path below. In Figure 7, the target frame s (i.e. the tool coordinate frame) x-axis is shown as red, the y-axis as green, and the z-axis as blue. 10) If the path of the robot is what is expected, right click on Prog 1 and press Run on Robot. You will first need to make sure the robot is connected to the computer by following the directions in the Appendix of this document. 11) Next we will look at moving the robot through Cartesian space instead of through joint space. Right click on the Move J items in the command tree and select MoveL. Repeat steps 9 and 10. Figure 6: Assigning the robot pose to the target 6

Figure 7: Sample of RoboDK program moving through the three poses in Cartesian space Task 3: Move the robot through a set of poses in both Cartesian and joint space using the Python API within RoboDK. More information on this can be found here https://robodk.com/offlineprogramming. Task Steps 1) Open RoboDK on the lab desktop 2) Open the "ur5_and_table.rdk" file from task 2. 3) Select Program Add Python program to create a new Python program. 4) Right click on the new program (most likely called Prog1) and click Edit Python Script. 5) Copy and paste the Python script below (Figure 8) into the window that pops up. 6) Save this program as Task_3.py 7) Right click on the UR5 robot and select Connect to robot and follow the steps outlined in the appendix to connect to the robot. 8) To simulate the robot s movements in RoboDK and check that the robot will move where expected, right click the script Task_3.py and selct Run Python script 9) Once you are satisfied with robot's movements, right click on Task_3.py and select Run on robot. This will run on the actual UR5 as the Python program is executed. 7

Figure 8: Python program that moves the robot TCP in a square. (see Moodle for script download) Task 4: Create a program that has the end effector trace the edges of a virtual rectangular prism. You will be tracing two rectangular prisms for this task. The first prism should aim to maximize the side lengths in the y-direction while the second prism should maximize length in the z-direction. While tracing the prism edges, the orientation of the gripper should remain the same and only the (x,y,z) portion of the pose should change. Using your software of choice (i.e. RoboDK, Polyscope) create a program which defines eight vertices and traces a rectangular prism between those vertices. You should develop most of this program before you come to your lab session to ensure that you are able to finish on time. Note: Your prism can be skinny but must have some width. This isn t an optimization problem; you don t need to spend time creating a formula to maximize the side lengths. The goal of this task is for you to become familiar with the robot workspace. The base coordinate frame is shown in Figure 9. 8

Figure 9: UR5 with the base coordinate frame shown. Task 5: In this task, the robot is equipped with an aluminum semi-cylinder as its end effector as seen on the left side of Figure 10. Another semi-cylinder is attached to two t-slot extrusions mounted to the table as seen on the right side of Figure 10. This semi-cylinder has four load cells attached to it. WARNING: This task involves colliding two pieces of aluminum together at various speeds. Although the robot is collaborative, that does not mean it can t seriously harm someone who is acting carelessly. Be aware of your surroundings and always stay clear of the robot when it is turned on and moving. Do NOT try to interfere with robot as it is colliding with the semicylinder mounted on the force sensors. 9

Figure 10: UR5 with collision end effector (left) and collision force plate (right).. Task Steps 1. Prepare the Python code in order to configure the robot as shown in Figure 10. The two aluminum semi-cylinders should be perpendicular to each other. The robot should be positioned around [X= 300, Y= -420, Z=200]. 2. Have the robot move along a straight line (using MoveL) to a point beyond the collision fixture. This allows the robot to fully collide with the fixture during which the force will be recorded. 3. BEFORE running your code on the robot, run your code offline on RoboDK. This allows you to ensure that the robot is doing what you expected. This is good practice and should be done throughout all the laboratory modules. 4. Run the following experiment three times at each speed setting in a range from 0 to 1.2 m/s. To do this, move the end effector so that it collides with the collision fixture at speed increments of 5% of the max speed (1.2 m/s) between 0 and 0.6 m/s and in 10% increments between 0.6 and 1.2 m/s. Be sure to record the data using the software PuTTY (see Appendix for using PuTTY). Note: After the robot collides with the collision fixture, you MUST hit the Enable Robot button that pops up under the Protective Stop alert on the teaching pendant. Then you must disconnect and connect again to the robot in RoboDK. This will allow you to run your collision program again for the next trial. 10

Deliverables: - A single zip file named [last_name]_[first name]_helloworld.zip containing all robot files (RoboDK, Python, Universal Robot Projects) uploaded to Moodle - A single PDF in memo format turned into class which includes: Task 1-3: Task 4: Task 5: 1) Describe the difference between joint and Cartesian space and how that affected the motion of the robot. 2) Describe the limitations of the robot s workspace based upon the mounting location of the robot on the table. 3) Show the usable workspace of the robot. Use a program (Matlab, Excel, etc) to plot the workspaces. This can either be a 3D view or multiple 2D views. 4) What are the two safety planes? And how did you determine where they were? 5) Is the robot elbow up or elbow down for these tasks? How do you know and how did you ensure that the robot chose this elbow configuration? 6) Define what collaborative means when talking about collaborative robotics? 7) Compare and contrast the three programming methods. Which do you find easiest to use at the moment? Which method seems to have the most capabilities or lack of capabilities? Which method do you foresee yourself using for the rest of the class? 1) Create a table showing the vertices you used in the cube and describe how you picked these vertices. 2) What is the volume of the two cubes? Which cube is larger and what does that tell you about the robot s workspace? 3) Include a screenshot or figure of the robot trajectory tracing the two cubes. 1) Create a plot showing the force exerted by the robot vs. speed of the robot. (To do this, average the three forces measured at each speed and plot this average force vs speed) 2) What does the above plot say about the UR5 strategy for preventing excessive forces when colliding? 3) What was the maximum force recorded and at which speed? All deliverables due on Friday, February 9 th at the START OF CLASS. 11

Appendix: Connecting to the UR5 with RoboDK 1) Right click on the UR5 robot. 2) Select Connect to robot. 3) Enter the IP of the robot you are using (below) and the Robot port of 30000 (Figure 11). a. Robot #1 IP: 172.19.29.21 b. Robot #2 IP: 172.19.29.22 4) Select Connect. You should see the message Ready in green if the connection succeeded. 5) A program can be automatically started by selecting Start on robot. A program can also be executed sequentially with RoboDK by selecting Run on robot. Figure 11: Connecting RoboDK to the robot controller Transfer a URScript file to the Robot with FileZilla 1) Within PolyScope go to Installation EtherNet/IP and press Enable (Figure 12) 2) Open up a session of RoboDK with the UR5 robot. 3) Right click the UR5 robot and select Connect to robot. 4) Select Explore which will open FileZilla, a software application for transferring files using FTP. 5) Within FileZilla select File Site Manager. 6) Within the popup menu, select Universal Robot sample (Figure 13). 7) Select Duplicate, a copy of the Universal Robot setting will then be created and name the copy ur5-1. 12

8) Enter the IP of the robot for the Host ( Robot #1: 172.19.29.21 or Robot #2: 172:19:29.22) and use Port 22. 9) Select Connect. 10) Transfer the SCRIPT file to the robot by first locating the file to transfer under Local site:. (Left side of Figure 14) 11) Next change the Remote site: to /programs which is the default file location for the robot controller. 12) Right click on the file you want to transfer and select Upload. Choose to overwrite the file on the robot controller. 13) To run the script add a Script Code block and change the drop down to File, then press Edit à Open à select transferred file 14) To update a script file on the robot controller, repeat the transfer with FileZilla and press Edit under Script Code. You should then see the updated script code. Figure 12: Enabling the Ethernet for the robot controller with PolyScope 13

Step Step Step Step Figure 13: FileZilla Site Manager settings to connect to UR5. Local site Figure 14: Transferring a file using FileZilla 14

Reading the Arduino using PuTTY 1) Ensure that the USB cable connected to the Arduino is connected to the desktop. 2) Open the Device Manager on the computer and locate the COM port that the Arduino is connected to. Download the drivers for the Arduino if a COM port is not selected. 3) Open PuTTY on the computer (shortcut on the desktop). Change the Connection type to Serial, the Serial line to the COM port from Step 2, and the Speed to 115200 (Figure 15) 4) Press Logging and match the setting to (Figure 16). Choose a desired location to save the file. 5) Press Session to navigate back to the screen in (Figure 15) and then name the settings under Saved Sessions and Save the settings. 6) Press Open when you are ready to collect data to a file. Figure 15: PuTTY connection settings. 15

Figure 16: PuTTY logging settings. 16