how_to_move_gantry
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious 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: | + | {{ mgkim: |
===== 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 |
+ | \\ | ||
+ | \\ | ||
\\ | \\ | ||
- | 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 | + | * Full understanding of Dynamixel |
+ | * 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# | + | |
- | * Programming <!- delete this line if not applicable -> | + | * [[how_to_move_gantry# |
+ | * [[how_to_move_gantry# | ||
+ | * [[how_to_move_gantry# | ||
+ | * [[how_to_move_gantry# | ||
+ | * [[how_to_move_gantry# | ||
* 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/ | + | |
- | | Smooth-on Silicone Mold Rubber | + | |
- | | <???> | + | |
- | | <???> | + | |
- | | <???> | + | |
- | | <???> | + | |
\\ | \\ | ||
- | <!-- Replace the URL below for your Google doc --> | ||
- | Here is the [[https:// | ||
\\ | \\ | ||
- | <!-- 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 {{: | + | |
\\ | \\ | ||
- | + | Here is the link. http://emanual.robotis.com/ | |
- | ==== 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> | + | |
\\ | \\ | ||
+ | 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: |
\\ | \\ | ||
+ | <fc blue> | ||
\\ | \\ | ||
- | **Step 2** | + | Just turn the switch backward for an emergency stop |
\\ | \\ | ||
+ | </fc> | ||
\\ | \\ | ||
- | < | ||
\\ | \\ | ||
- | ==== 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> | + | {{ mgkim:ds_16.jpg?200 |}} |
\\ | \\ | ||
- | ---- | + | You need to measure some dimensions |
- | <!- Insert a snippet | + | |
- | ---- | + | |
\\ | \\ | ||
- | 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 |
- | <!- 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' | ||
\\ | \\ | ||
\\ | \\ | ||
- | 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, | + | 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: | ||
+ | {{ mgkim: | ||
+ | \\ | ||
+ | \\ | ||
+ | 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:// | ||
+ | \\ | ||
+ | \\ | ||
+ | ======================================================================================================= | ||
+ | \\ | ||
+ | \\ | ||
+ | </ | ||
+ | \\ | ||
+ | ==== 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:// | ||
+ | \\ | ||
+ | \\ | ||
+ | ==== 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:// | ||
+ | \\ | ||
+ | \\ | ||
+ | ======================================================================================================= | ||
+ | \\ | ||
+ | \\ | ||
+ | </ | ||
+ | \\ | ||
+ | \\ | ||
+ | ==== 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:// | ||
+ | \\ | ||
+ | \\ | ||
+ | ======================================================================================================= | ||
+ | \\ | ||
+ | \\ | ||
+ | </ | ||
+ | \\ | ||
+ | \\ | ||
+ | ==== Accuracy ==== | ||
+ | \\ | ||
+ | \\ | ||
+ | Now you are ready to check the accuracy of your code. | ||
+ | \\ | ||
+ | {{ mgkim: | ||
+ | \\ | ||
+ | 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, | ||
how_to_move_gantry.txt · Last modified: 2019/06/21 03:01 by myeonggeonkim