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 revision Previous revision
how_to_move_gantry [2019/06/20 19:01]
myeonggeonkim
how_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                    | <???> ​             | <???> ​                    | <???> ​  ​| ​ <???> ​  | +
-| <???> ​        ​d ​                  | <???> ​             | <???> ​                    | <???> ​  ​| ​ <???> ​  | +
-| <???> ​        ​d ​                  | <???> ​             | <???> ​                    | <???> ​  ​| ​ <???> ​  | +
-| <???> ​        ​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