User Tools

Site Tools


how_to_move_gantry

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
how_to_move_gantry [2019/06/20 19:01] myeonggeonkimhow_to_move_gantry [2019/06/21 03:01] (current) myeonggeonkim
Line 9: Line 9:
  
  
-{{ mgkim:gantry_1.jpg?200 |}}+{{ mgkim:gantry_1.jpg?600 |}}
  
 ===== Motivation and Audience ===== ===== Motivation and Audience =====
- 
-This tutorial offers you the step-by-step method to control DASL Gantry crane with modifying Dynamixel SDK (Software Development Kit) in Windows environment.  
-// 
-If you are not familiar with coding, you would better study basic concept of C++ language programming before you begin this project.  
 \\ \\
-Even though this is the first time for you to program something, you don’t have to worry.  
 \\ \\
-Because all we need to do is using open source library that had been already built by somebody.  
 \\ \\
-So, focus on that point as you proceed this project.+This tutorial offers you the step-by-step method to control DASL Gantry crane with modifying Dynamixel SDK in Windows environment 
 +\\ 
 +\\
 \\ \\
-And ROBOTIS, the company produce Dynamixel, posted a nice manual and quick start video about Dynamixel SDK on their website.  
 \\ \\
-You also can learn a lot by following the manual and videos. 
 \\ \\
-Therefore, lock and load your confidence! Let’s fire this up! 
- 
 Readers of this tutorial assumes the reader has the following background and interests:  Readers of this tutorial assumes the reader has the following background and interests: 
 +\\
 <fc blue>   <fc blue>  
-  * Basic background of CPP  +  * Basic background of CPP \\ 
-  * Full understanding of dynamixel tutorial : [[dynamixel_set_up|Dynamixel tutorial]]+  * Full understanding of Dynamixel tutorial : [[dynamixel_set_up|Dynamixel tutorial]] \\ 
 +  * Full understanding of Modifying Dynamixel SDK code : [[dynamixel_modification|Modifying Dynamixel SDK code]] 
 + \\
 </fc> </fc>
 \\ \\
 The rest of this tutorial is presented as follows: The rest of this tutorial is presented as follows:
-  * [[how_to_move_gantry#wheel_mode|Wheel mode]] +\\ 
-  * [[how_to_move_gantry#actuating_time|Control actuating time]] +  * [[how_to_move_gantry#gantry_set_up|Gantry Set Up]] \\ 
-  * Programming <!- delete this line if not applicable ->+  * [[how_to_move_gantry#moving_x_axis|Moving X axis]] \\ 
 +  * [[how_to_move_gantry#moving_backward|Moving Backward]] \\ 
 +  * [[how_to_move_gantry#moving_all_axis|Moving All axis]] \\ 
 +  * [[how_to_move_gantry#go_home|How to go back home]] \\ 
 +  * [[how_to_move_gantry#accuracy|Accuracy]] \\
   * Final Words   * Final Words
- 
-==== Parts List and Sources ==== 
- 
-US-based vendors to obtain material to complete this tutorial include <list relevant hyperlinks or phone numbers and addresses>. 
 \\ \\
-To complete this tutorial, you'll need the following items <!-- in table below, replace ??? with relevant information and add additional lines if necessary --> 
- 
-<!-- Alternatively create: (1) a Google XLS document that's publicly viewable and provide link; and (2) a PDF version of the Google XLS, store the PDF file in your site, and provide link to it --> 
- 
 \\ \\
- +==== Gantry Set Up ====
-^PART NAME/DESCRIPTION             ^VENDOR              ^VENDOR Number or URL       ^PRICE          ^QTY       ^ +
-| Smooth-on Silicone Mold Rubber   | Amazon.com         |http://www.amazon.com/Smooth-Silicone-Making-Rubber-Inc/dp/B004BNF3TK    |$23.86     | 1 | +
-| <???>        d                    | <???>              | <???>                     | <???>    <???>   | +
-| <???>                           | <???>              | <???>                     | <???>    <???>   | +
-| <???>                           | <???>              | <???>                     | <???>    <???>   | +
-| <???>                           | <???>              | <???>                     | <???>    <???>   | +
 \\ \\
-<!-- Replace the URL below for your Google doc --> 
-Here is the [[https://docs.google.com/spreadsheets/d/1stqow-CHNPdDxXLn5IzECWAmvXnUCEAAxjnDLSSKt2Q/edit?usp=sharing | list as a Google XLS document]] 
 \\ \\
-<!-- Replace the filename with your PDF that you uploaded to your DASL Wiki tutorial page --+First of all, Dynamixels installed in DASL Gantry are MX-106 model. You should check control table for MX-106
-Here is the {{:tutorialtemplategooglexlssamplepdf.pdf| list as a PDF file}}+
 \\ \\
- +Here is the linkhttp://emanual.robotis.com/docs/en/dxl/mx/mx-106/
-==== Construction ==== +
- +
-This section gives step-by-step instructions along with photos to <fill in the blank>(If a circuit-building tutorial:) A schematic to construct <fill in the blank> is shown here <add image><Add hyperlink to PDF of schematic> is the Acrobat file of the same schematic.+
 \\ \\
 +You would find that there is no address or parameter difference between MX-28, Fortunately.
 \\ \\
-**Step 1** 
 \\ \\
 +We are going to use this power supply for Gantry because we can switch off the power when we need an emergency stop.
 \\ \\
-<Add photos to make step easier to understand>+{{ mgkim:ds_18.jpg?200 |}}
 \\ \\
 +<fc blue>
 \\ \\
-**Step 2**+Just turn the switch backward for an emergency stop
 \\ \\
 +</fc>
 \\ \\
-<Additional steps like **Step 3**, **Step 4**, etc> 
 \\ \\
-==== Programming ==== +The photo below is the basic structure of gantry system
- +
-A link to the source code can be found <provide URL to your code, probably saved in this DASL Wiki>.+
 \\ \\
-The goal of the code is <brief explanation> It works in the following way+{{ mgkim:ds_16.jpg?200 |}}
 \\ \\
----- +You need to measure some dimensions of this system for distance control.
-<!- Insert a snippet of your code here.  Try to keep to less than 0.5 page long --> +
-----+
 \\ \\
-The snippet above serves to <fill in the blank>. It does this by <fill in the blank>.+{{ mgkim:ds_17.jpg?200 |}}
 \\ \\
----- +This photo will help you to understand the system.
-<!- Insert another snippet of your code here.  Try to keep to less than 0.5 page long --> +
----- +
-Next, the code does <fill in the blank> It does this by <fill in the blank>  +
-<!-- Keep entering snippets of code and descriptions until you've given enough for a reader to understand how it works --> +
-// +
-// +
-==== Final Words ====+
  
-This tutorial's objective was to <fill in the blank>. Complete <choose: construction details, source code and program descriptions> for <fill in the blank>. Once the concepts were conveyed the reader could <fill in the blank>. 
 \\ \\
 \\ \\
-Speculating future work derived from this tutorial, includes <fill in the blank>. In the big picture, the problem of <fill in the blank> can be solved with this tutorial.+==== Moving X axis ====
 \\ \\
 \\ \\
-For questions, clarifications, etc, Email: <paul.oh@unlv.edu>+For moving gantry to x axis, we will use Dynanixel #1,2 
 +\\ 
 +In gantry system, rotation angle of Dynamixel during sleep time will be changed to displacement of belt. 
 +\\ 
 +So we need to do measurement and calculation to move gantry. 
 +\\ 
 +If we know exact distance between each teeth in the belt and gear,  
 +\\ 
 +we can calculate displacement of belt accurately. 
 +\\ 
 +\\ 
 +- Measurement 
 +\\ 
 +\\ 
 +G1 = 28 teeth , G2 = 14 teeth, G3 = 24 teeth 
 +\\   
 +Distance between teeth = 5mm = 0.5 cm 
 +\\ 
 +1 dynamixel speed unit = 0.11445 rpm 
 +\\ 
 +\\ 
 +- Calculation 
 +\\ 
 +\\ 
 +{{ mgkim:ds_19.jpg?600 |}} 
 +{{ mgkim:ds_20.jpg?600 |}} 
 +\\ 
 +\\ 
 +Now we know sleep time we need. 
 +\\ 
 +\\ 
 +<fc blue> 
 +\\ 
 +======================================================================================================= 
 +\\ 
 +\\ 
 +Exercise. Using only Gantry Dynamixel #1 and #2, make Dynamixels actuate until they reach to desired distance.  
 +\\ 
 +Set the moving speed value as 200 (Gantry will not work if the moving speed is too high).  
 +\\ 
 +\\ 
 +Here is an {{https://drive.google.com/file/d/1fj95C_-Pr8NK6m9B8G-3SAEY4oNIW3Ph/view?usp=sharing|answer}} 
 +\\ 
 +\\ 
 +======================================================================================================= 
 +\\ 
 +\\ 
 +</fc> 
 +\\ 
 +==== Moving Backward ==== 
 +\\ 
 +\\ 
 +Problem of previous code is that gantry can not move backward. 
 +\\ 
 +How can we modify code to move backward? 
 +\\ 
 +\\ 
 +Discover the method in this code.  
 +{{https://drive.google.com/file/d/1_2MN9d0GRw5eQWwrcQUP9LzIKec4Tt1c/view?usp=sharing|Moving backward}} 
 +\\ 
 +\\ 
 +==== Moving All axis ==== 
 +\\ 
 +\\ 
 +Now you know everything to move all axis. 
 +\\ 
 +<fc blue> 
 +\\ 
 +======================================================================================================= 
 +\\ 
 +\\ 
 +Exercise. Move gantry along all axis.(X,Y,Z axis) 
 +\\ 
 +\\ 
 +Here is an {{https://drive.google.com/file/d/1NNSCatAnJ9nLW2lZw1tIvLvpOPigcs57/view?usp=sharing|answer}} 
 +\\ 
 +\\ 
 +======================================================================================================= 
 +\\ 
 +\\ 
 +</fc> 
 +\\ 
 +\\ 
 +==== How to go back home ==== 
 +\\ 
 +\\ 
 +After moving it, gantry need to go back to home position for next use. 
 +\\ 
 +If we know current position of gantry, going back to home position is easy. 
 +\\ 
 +<fc blue> 
 +\\ 
 +======================================================================================================= 
 +\\ 
 +\\ 
 +Exercise. Lets make it go back to home location after we move gantry. 
 +\\ 
 +\\ 
 +Here is an {{https://drive.google.com/file/d/1lJ9_IZ4xCaNBoBDNQAfajQw0aeIAMgSX/view?usp=sharing|answer}} 
 +\\ 
 +\\ 
 +======================================================================================================= 
 +\\ 
 +\\ 
 +</fc> 
 +\\ 
 +\\ 
 +==== Accuracy ==== 
 +\\ 
 +\\ 
 +Now you are ready to check the accuracy of your code. 
 +\\ 
 +{{ mgkim:ds_21.jpg?600 |}} 
 +\\ 
 +There is a plate where the 10cm by 10cm grid is drawn. 
 +\\ 
 +Try setting the origin at any intersecting point and run your code at 10cm resolution. 
 +\\ 
 +If it is accurate enough, try narrowing down the resolution at 5cm.  
 +\\ 
 +If not, find out the problems by yourself.  
 +\\ 
 +The reason would be poor measurement or hardware out of work. 
 +\\ 
 +Checking the tension of the threads would help you finding problems. 
 +\\ 
 +\\ 
 +  
 + 
 +==== Final Words ==== 
 + 
 + 
 +For questions, clarifications, etc, Email: m.geon.kim@gmail.com
  
  
how_to_move_gantry.txt · Last modified: 2019/06/21 03:01 by myeonggeonkim