ur10_robot_arm:ur10_robot_arm

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
ur10_robot_arm:ur10_robot_arm [2021/08/20 05:17] – [Grasshopper] formlabur10_robot_arm:ur10_robot_arm [2023/04/17 03:40] (current) – [RoboDK] formlab
Line 4: Line 4:
 Collaborative robot-arm   Collaborative robot-arm  
  
 +References:
 +  * [[https://asd.sutd.edu.sg/dfab/a-geometric-inverse-kinematics-solution-for-the-universal-robot/|A Geometric Inverse Kinematics Solution for the Universal Robot]]
 +  * [[https://www.zacobria.com/pdf/universal_robots_zacobria_hints_and_tips_manual_1_4_3.pdf|Hints and tips by Zacobria]]
 +===== Software =====
 +  * [[ur10_robot_arm:ur10_robot_arm#polyscope_the_teaching_pendant|Polyscope (the teaching pendant)]]
 +  * [[ur10_robot_arm:ur10_robot_arm#grasshopper|Grasshopper]]
 +  * [[ur10_robot_arm:ur10_robot_arm#robodk|Rodo-DK]]
 +  * Other possible control software
 +    * Python
 +    * [[https://etasl.pages.gitlab.kuleuven.be/|eTaSL]]
 +==== Polyscope (the teaching pendant) ====
  
-[[https://asd.sutd.edu.sg/dfab/a-geometric-inverse-kinematics-solution-for-the-universal-robot/|A Geometric Inverse Kinematics Solution for the Universal Robot]] +=== Define TCP === 
- +  * Click ‘new’ (you cant rename TCP’s) 
- +  * Define the position 
-Applications +    * Enter the offset by measuring, or use the wizardThe wizard lets you orient the physical TCP around a point in 4 different positions. 
- +  * Define the orientation (optional) 
-===== Software =====+    * Enter custom orientation in case the TCP is not normal to the flange. 
 +  * Define a tool weight and center of gravity. 
 +  * Click ‘set as default’ 
 +  * Save the installation setting (on the left bar)
  
-==== UR_Playground ==== +Test the setup: 
-Universal Robot Software meant to introduce students to the artistic and experimental aspects of working with robots.\\  +  * rotate the robot around the TCP on the teaching pendant (move tab)The tool tip should stay still in space while the rest of the robot rotates around it.
-[[https://github.com/robin-gdwl/UR_Playground|Github page]]+
  
 ==== RoboDK ==== ==== RoboDK ====
 - [[https://www.youtube.com/watch?v=WmyIAgNyPC0|Reference Frame Definition]] - [[https://www.youtube.com/watch?v=WmyIAgNyPC0|Reference Frame Definition]]
  
 +- Direct computer-robot ethernet connection doesn't work. You need a switch or a router. The computer's IP address should be set to DHCP.
 ==== Grasshopper ==== ==== Grasshopper ====
  
-Grasshopper runs inside Rhino 7. In order to control the robot arm, a plugin is needed:+Grasshopper runs inside Rhino 7. In order to control the robot arm, a Grasshopper plugin is needed: Robots. 
  
 === The Robots plugin === === The Robots plugin ===
- 
 == Installation == == Installation ==
  
-Install 'Robotsplugin (on Mac) for Grasshopper on Rhino 7: +  * In Rhino, go to ''Tools > Package Manager'' and select the ''online'' tab. 
-  * Download the last release of the plugin: [[https://github.com/visose/Robots/releases]]+  * Search for 'Robots' and select the 'Robots' plugin. If you select it, check the Github url: the author is visose
-    * In Grasshopper, go to 'File > Special Folders > Components Folder'This opens a finder window+  * Select version ''1.4.1'' and click install (restart Rhino after)
-    * Put the downloaded files ('Robots.dll', and 'Robots.gha') in this folder. +    * Everything below version ''1.5.0'' probably works
-    * Instructions were given to Windows users to give write permission to the filesNot sure if it applies to MacOS too. +    * Briefly tested versions: ''1.0.1'', ''1.3.0'', ''1.4.1'' seem to work''1.5.0'', ''1.6.0'' are too new for the get-current-position-script (see below). 
-  * Download the zip file from this Github repository: [[https://github.com/visose/Robots]]: on the top rightclick 'code > download .zip'Alt+click to download individual files doesn't work as it results in HTML files instead of the raw xml files+ 
-    Unzip the file. A folder 'Robots-masteris created+== Robots.dll file == 
-    * Make a folder called 'Robots' in your user directory ('/Users/username/Robots'). + 
-    * Move the contents from 'Robots-master > Librariesto the newly created 'Robots' folder in the user directory.+If Rhino keeps asking to locate the Robots.dll filehere's a tipMake all grasshopper projects (files with a ''.gh'' extension) writable. This way you'll need to reference the location of the ''robot.dll'' file only once.  
 +  On mac: cmd + i, under sharing & permissions, change the privilege of 'everyoneto Read & Write. 
 +  * Location of the robots.dll file: 
 +    * ''username/Library/Application Support/McNeel/Rhinoceros/packages/7.0/Robots/1.4.1/Robots.dll''
  
 == Guides == == Guides ==
Line 45: Line 61:
   * Robots guide by [[https://wiki.fablabbcn.org/ROBOTS|Fab Lab Barcelona]] (almost a complete copy from Robots How-To-Use).   * Robots guide by [[https://wiki.fablabbcn.org/ROBOTS|Fab Lab Barcelona]] (almost a complete copy from Robots How-To-Use).
   * Drawing with robots [[https://www.youtube.com/watch?v=vyYAmu00xMg&t=1019s&ab_channel=KarlSingline|video tutorial]]. Uses KukaPRC instead of 'Robots', but workflow might be useful.   * Drawing with robots [[https://www.youtube.com/watch?v=vyYAmu00xMg&t=1019s&ab_channel=KarlSingline|video tutorial]]. Uses KukaPRC instead of 'Robots', but workflow might be useful.
 +  * [[https://www.youtube.com/playlist?list=PLqtxhH1qb3Mw5A_YbvHDfrq4DNNfLtcW-|Youtube video series 'programming robots in Grasshopper']]
  
 I tried adapting the 'simple example' by changing the Kuka robot to a UR10 robot. It works, but the initial position is all wrong. In [[http://fab.cba.mit.edu/classes/863.19/Harvard/people/joonhaenglee/week14/week14.html|this guide]] Joonhaeng Lee at [[http://cba.mit.edu/|MIT's center for bits and atoms]] describes a solution to this problem. I tried adapting the 'simple example' by changing the Kuka robot to a UR10 robot. It works, but the initial position is all wrong. In [[http://fab.cba.mit.edu/classes/863.19/Harvard/people/joonhaenglee/week14/week14.html|this guide]] Joonhaeng Lee at [[http://cba.mit.edu/|MIT's center for bits and atoms]] describes a solution to this problem.
  
 +
 +== Tips ==
 +  * The first target should be a joint target. Following ones can be cartesian targets.
 == Upload script to robot == == Upload script to robot ==
   * Small programs can be streamed directly to the robot with the 'Remote Connection' module.\\ {{:ur10_robot_arm:robots_sendtorobot.png?400|}}   * Small programs can be streamed directly to the robot with the 'Remote Connection' module.\\ {{:ur10_robot_arm:robots_sendtorobot.png?400|}}
Line 54: Line 74:
     * With larger programs (1000+ targets(?)), there might be a delay after clicking upload and the arm moving.     * With larger programs (1000+ targets(?)), there might be a delay after clicking upload and the arm moving.
   * Larger programs (2500+ targets) cannot be streamed. Use the 'Save Program' module.\\ {{:ur10_robot_arm:robots_saveprogram.png?400|}}   * Larger programs (2500+ targets) cannot be streamed. Use the 'Save Program' module.\\ {{:ur10_robot_arm:robots_saveprogram.png?400|}}
-    * This file is created right away. +    * This file is created right away (it's streamed).
     * Change the .URS extension to .script     * Change the .URS extension to .script
-    * Open the script in a script editor, copy the function name at the top, and add to the bottom ''result = programname()''. Now the program will actually be ran.+    * Open the script in a script editor, copy the function name at the top, and add to the bottom ''result = programName()''. Now the program will actually be ran. Maybe this is an incompatibility between the e-series and the previous versions. Might be changeable in the post processor C# script.
     * Upload to the robot via SFTP (place it somewhere in the map '/programs').     * Upload to the robot via SFTP (place it somewhere in the map '/programs').
     * Make a new program, add the script module, change it from line to file, and load the file from the programs folder.     * Make a new program, add the script module, change it from line to file, and load the file from the programs folder.
     * This doesn't work for large files though. People are talking about splitting it up into sections. But it's unclear to me how.     * This doesn't work for large files though. People are talking about splitting it up into sections. But it's unclear to me how.
 +      * 485 targets works
 +      * 24673 targets already doesn't want to load :(
  
  
Line 69: Line 91:
   * [[https://www.youtube.com/watch?v=c1BiL6fXkgs&ab_channel=robin_gdwl|Demo video]]   * [[https://www.youtube.com/watch?v=c1BiL6fXkgs&ab_channel=robin_gdwl|Demo video]]
  
 +== Setup ==
 +  * Do not connect to the LAN network of KASK. Instead connect to the robot arm directly, or via a separate switch.
 +  * Set the computer to a static IP address that is the same as the Robot's, except for the last number
  
 +
 +  * <code>Computer -------------- Robot arm</code>
 +  * or 
 +  * <code>Computer --- Switch --- Robot arm</code>
 +
 +
 +
 +
 +== Related 'Robots' projects ==
 +  * Wirecutting with Grasshopper & Robots ([[https://www.youtube.com/watch?v=-JtDSXmi1YI&ab_channel=GediminasKirdeikis|video]])
 ==== FTP connection ==== ==== FTP connection ====
   * Use FIleZilla   * Use FIleZilla
Line 80: Line 115:
  
  
 +==== RoboDK ====
 +- [[https://www.youtube.com/watch?v=WmyIAgNyPC0|Reference Frame Definition]]
 +
 +
 +===== Hardware  =====
 ==== Toolhead connector ====  ==== Toolhead connector ==== 
  
 A suitable cable that mates to the toolhead connector is [[https://www.lumberg-automationusa.com/con/pdf/RKMV8354.pdf|Lumberg RKMV 8-354]] A suitable cable that mates to the toolhead connector is [[https://www.lumberg-automationusa.com/con/pdf/RKMV8354.pdf|Lumberg RKMV 8-354]]
-===== future tool heads ===== +
-  * 3D scanner tool head+
  
  
Line 90: Line 129:
 {{:ur10_robot_arm:urbroomhandle.jpg?600|}}\\ {{:ur10_robot_arm:urbroomhandle.jpg?600|}}\\
 {{:ur10_robot_arm:urbroomhandle_02_web.jpg?600|}}\\ {{:ur10_robot_arm:urbroomhandle_02_web.jpg?600|}}\\
-===== 3D print attachment =====+===== 3D printer (Clay) ===== 
 +In development 
 + 
 +{{:ur10_robot_arm:urprinter_clay.jpg?600|}} 
 +===== 3D printer (Plastic) =====
 In development In development
  
 {{:ur10_robot_arm:urprinter.jpg?600|}}\\ {{:ur10_robot_arm:urprinter.jpg?600|}}\\
-===== Pen plotter attachment =====+ 
 + 
 +===== Pen plotter =====
 {{:ur10_robot_arm:urprlotter.jpg?600|}}\\ {{:ur10_robot_arm:urprlotter.jpg?600|}}\\
  
 Used by [[http://hisk.edu/mw/index.php/Diego_Lama|Diego Lama]] to scratch drawings into car parts Used by [[http://hisk.edu/mw/index.php/Diego_Lama|Diego Lama]] to scratch drawings into car parts
  
-[[Drawing with the UR10]]+[[Drawing with the UR10]] (RoboDK).\\ 
 +[[Drawing with the UR10 V2]] (Grasshopper)
 ===== Webcam attachment ===== ===== Webcam attachment =====
 {{:ur10_robot_arm:urbwebcam.jpg?600|}}\\ {{:ur10_robot_arm:urbwebcam.jpg?600|}}\\
  • ur10_robot_arm/ur10_robot_arm.1629461862.txt.gz
  • Last modified: 2021/08/20 05:17
  • by formlab