Hekateros  3.4.3
RoadNarrows Robotics Robot Arm Project
hekProdEEGraboid.cxx
Go to the documentation of this file.
1 ////////////////////////////////////////////////////////////////////////////////
2 //
3 // Package: Hekateros
4 //
5 // Library: libhekateros
6 //
7 // File: hekProdEEGraboid.cxx
8 //
9 /*! \file
10  *
11  * $LastChangedDate: 2015-02-10 13:39:03 -0700 (Tue, 10 Feb 2015) $
12  * $Rev: 3866 $
13  *
14  * \brief Hekateros 1 DoF Graboid end effector family.
15  *
16  * \author Robin Knight (robin.knight@roadnarrows.com)
17  * \author Daniel Packard (daniel@roadnarrows.com)
18  *
19  * \copyright
20  * \h_copy 2013-2017. RoadNarrows LLC.\n
21  * http://www.roadnarrows.com\n
22  * All Rights Reserved
23  */
24 /*
25  * @EulaBegin@
26  *
27  * Unless otherwise stated explicitly, all materials contained are copyrighted
28  * and may not be used without RoadNarrows LLC's written consent,
29  * except as provided in these terms and conditions or in the copyright
30  * notice (documents and software) or other proprietary notice provided with
31  * the relevant materials.
32  *
33  * IN NO EVENT SHALL THE AUTHOR, ROADNARROWS LLC, OR ANY
34  * MEMBERS/EMPLOYEES/CONTRACTORS OF ROADNARROWS OR DISTRIBUTORS OF THIS SOFTWARE
35  * BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR
36  * CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
37  * DOCUMENTATION, EVEN IF THE AUTHORS OR ANY OF THE ABOVE PARTIES HAVE BEEN
38  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
39  *
40  * THE AUTHORS AND ROADNARROWS LLC SPECIFICALLY DISCLAIM ANY WARRANTIES,
41  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
42  * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN
43  * "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO
44  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
45  *
46  * @EulaEnd@
47  */
48 ////////////////////////////////////////////////////////////////////////////////
49 
50 #include "Dynamixel/Dynamixel.h"
51 
52 #include "Hekateros/hekateros.h"
53 #include "Hekateros/hekTune.h"
54 #include "Hekateros/hekOptical.h"
55 #include "Hekateros/hekSpec.h"
57 
58 
59 using namespace std;
60 using namespace hekateros;
61 
62 /*!
63  * \brief Specification of links.
64  *
65  * \par Data:
66  * name,\n
67  * length(mm)
68  *
69  * TODO
70  */
71 const HekSpecLink_T
72  hekateros::HekProdEEGraboidSpecLinks[HekProdEEGraboidNumLinks] =
73 {
74  // end effector mount point
75  { "gear_assembly",
76  0.0
77  },
78 
79  // left finger
80  { "finger_L",
81  0.0
82  },
83 
84  // right finger
85  { "finger_R",
86  406.27
87  }
88 };
89 
90 
91 //------------------------------------------------------------------------------
92 // Graboid End Effector v1.0
93 //------------------------------------------------------------------------------
94 
95 /*!
96  * \brief Specification of joints.
97  *
98  * \par Data:
99  * joint_name,\n
100  * master_servo_id, slave_servo_id, joint_type, gear_ratio,\n
101  * min_phy_limit(deg), max_phy_limit(deg), limit_types,\n
102  * {
103  * {io_bit_0,
104  * min_edge_pos(deg), min_black_pos(deg),
105  * center_pos(deg),
106  * max_black_pos(deg), max_edge_pos(deg)
107  * },
108  * {io_bit_1,
109  * min_edge_pos(deg), min_black_pos(deg),
110  * center_pos(deg),
111  * max_black_pos(deg), max_edge_pos(deg)
112  * },
113  * calib_pos(deg), balanced_pos(deg), park_pos(deg)\n
114  * parent_link_idx, child_link_index
115  */
116 const HekSpecJoint_T
117  hekateros::HekProdEEGraboidSpecJoints_1_0[HekProdEEGraboidDoF] =
118 {
119  { "grip",
120  HekServoIdGraboid, DYNA_ID_NONE, HekJointTypeRevMimic, 2.0,
121  0.0, 60.0, HekLimitTypePhys,
122  {
123  { HekIOExpUnassigned, 0.0, 0.0, 0.0, 0.0, 0.0 },
124  { HekIOExpUnassigned, 0.0, 0.0, 0.0, 0.0, 0.0 }
125  },
126  5.0, 20.0, 20.0,
127  0, 1
128  }
129 };
130 
131 /*!
132  * \brief Specification of servos.
133  *
134  * \par Data:
135  * servo_id, is_master, is_continuous, dir_to_max toque_limit(% of max)
136  */
137 const HekSpecServo_T
138  hekateros::HekProdEEGraboidSpecServos_1_0[HekProdEEGraboidNumServos] =
139 {
140  // AX-12 version
141  {HekServoIdGraboid, true, false, DYNA_DIR_CW, 60.0}
142 };
143 
144 
145 //------------------------------------------------------------------------------
146 // Graboid End Effector v1.1
147 //------------------------------------------------------------------------------
148 
149 /*!
150  * \brief Specification of joints.
151  *
152  * \par Data:
153  * joint_name,\n
154  * master_servo_id, slave_servo_id, joint_type, gear_ratio,\n
155  * min_phy_limit(deg), max_phy_limit(deg), limit_types,\n
156  * {
157  * {io_bit_0,
158  * min_edge_pos(deg), min_black_pos(deg),
159  * center_pos(deg),
160  * max_black_pos(deg), max_edge_pos(deg)
161  * },
162  * {io_bit_1,
163  * min_edge_pos(deg), min_black_pos(deg),
164  * center_pos(deg),
165  * max_black_pos(deg), max_edge_pos(deg)
166  * },
167  * calib_pos(deg), balanced_pos(deg), park_pos(deg)\n
168  * parent_link_idx, child_link_index
169  */
170 const HekSpecJoint_T
171  hekateros::HekProdEEGraboidSpecJoints_1_1[HekProdEEGraboidDoF] =
172 {
173  { "grip",
174  HekServoIdGraboid, DYNA_ID_NONE, HekJointTypeRevMimic, 2.0,
175  0.0, 60.0, HekLimitTypePhys,
176  {
177  { HekIOExpUnassigned, 0.0, 0.0, 0.0, 0.0, 0.0 },
178  { HekIOExpUnassigned, 0.0, 0.0, 0.0, 0.0, 0.0 }
179  },
180  5.0, 20.0, 20.0,
181  0, 1
182  }
183 };
184 
185 /*!
186  * \brief Specification of servos.
187  *
188  * \par Data:
189  * servo_id, is_master, is_continuous, dir_to_max toque_limit(% of max)
190  */
191 const HekSpecServo_T
192  hekateros::HekProdEEGraboidSpecServos_1_1[HekProdEEGraboidNumServos] =
193 {
194  // MX-28 version
195  {HekServoIdGraboid, true, true, DYNA_DIR_CW, HekTuneEEOverTorqueThDft}
196 };
197 
198 
199 //------------------------------------------------------------------------------
200 // Graboid End Effector v1.2
201 //------------------------------------------------------------------------------
202 
203 /*!
204  * \brief Specification of joints.
205  *
206  * \par Data:
207  * joint_name,\n
208  * master_servo_id, slave_servo_id, joint_type, gear_ratio,\n
209  * min_phy_limit(deg), max_phy_limit(deg), limit_types,\n
210  * {
211  * {io_bit_0,
212  * min_edge_pos(deg), min_black_pos(deg),
213  * center_pos(deg),
214  * max_black_pos(deg), max_edge_pos(deg)
215  * },
216  * {io_bit_1,
217  * min_edge_pos(deg), min_black_pos(deg),
218  * center_pos(deg),
219  * max_black_pos(deg), max_edge_pos(deg)
220  * },
221  * calib_pos(deg), balanced_pos(deg), park_pos(deg)\n
222  * parent_link_idx, child_link_index
223  */
224 const HekSpecJoint_T
225  hekateros::HekProdEEGraboidSpecJoints_1_2[HekProdEEGraboidDoF] =
226 {
227  { "grip",
228  HekServoIdGraboid, DYNA_ID_NONE, HekJointTypeRevMimic, 4.0,
229  0.0, 60.0, HekLimitTypePhys,
230  {
231  { HekIOExpUnassigned, 0.0, 0.0, 0.0, 0.0, 0.0 },
232  { HekIOExpUnassigned, 0.0, 0.0, 0.0, 0.0, 0.0 }
233  },
234  5.0, 20.0, 20.0,
235  0, 1
236  }
237 };
238 
239 /*!
240  * \brief Specification of servos.
241  *
242  * \par Data:
243  * servo_id, is_master, is_continuous, dir_to_max toque_limit(% of max)
244  */
245 const HekSpecServo_T
246  hekateros::HekProdEEGraboidSpecServos_1_2[HekProdEEGraboidNumServos] =
247 {
248  // MX-28 version
249  {HekServoIdGraboid, true, true, DYNA_DIR_CW, HekTuneEEOverTorqueThDft}
250 };
const HekSpecJoint_T HekProdEEGraboidSpecJoints_1_2[]
Specification of joints, v1.2.
const HekSpecLink_T HekProdEEGraboidSpecLinks[]
Specification of links.
const HekSpecServo_T HekProdEEGraboidSpecServos_1_1[]
Specification of servos, v1.1.
<b><i>Hekateros</i></b> optical limit switches.
const HekSpecJoint_T HekProdEEGraboidSpecJoints_1_0[]
Specification of joints, v1.0.
Hekateros 1 DoF Graboid end effector family.
Top-level package include file.
const HekSpecServo_T HekProdEEGraboidSpecServos_1_0[]
Specification of servos, v1.0.
const HekSpecJoint_T HekProdEEGraboidSpecJoints_1_1[]
Specification of joints, v1.1.
<b><i>Hekateros</i></b> product specification base classes.
Hekateros tuning.
Robotic joint specification.
Definition: hekSpec.h:139
Robotic servo specification.
Definition: hekSpec.h:199
const HekSpecServo_T HekProdEEGraboidSpecServos_1_2[]
Specification of servos, v1.2.
The <b><i>Hekateros</i></b> namespace encapsulates all <b><i>Hekateros</i></b> related constructs...
Definition: hekateros.h:56