Wiki source code of SES-PRO Robotic Arm UI Guide

Last modified by Eric Nantel on 2024/10/18 09:05

Show last authors
1 {{toc/}}
2
3 |(% colspan="6" style="text-align:center" %)(((
4 = Quickstart Flow =
5 )))
6 |(% style="text-align:center; vertical-align:middle" %)Arm model|(% style="text-align:center; vertical-align:middle" %)Arm COM Port|(% style="text-align:center; vertical-align:middle" %)Connect|(% style="text-align:center; vertical-align:middle" %)Gripper Model|(% style="text-align:center; vertical-align:middle" %)Gripper COM Port|(% style="text-align:center; vertical-align:middle" %)Gripper Connect
7 |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-arm-version.png"/}}|(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-com.png"/}}|(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-connect.png"/}}|(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-gripper-version.png"/}}|(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-gripper-com.png"/}}|(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-gripper-connect.png"/}}
8
9 |(% style="width:25px" %) |(% colspan="2" rowspan="1" style="width:100px" %)(((
10 Before proceeding with the guide, it is important to note the following:
11
12 * Neither the servos nor the arm are meant to be operated in proximity of humans as they do not have "collaborative" (COBOT) features and do not detect collision
13 * The servos use stepper motors and do NOT include mechanical brakes. If the stepper motor is unable to retain or move to a desired angle (insufficient torque), the motor will rotate freely as opposed to hold the last position
14
15 __It's a good thing to practice with the software without an Arm connected, that way you can learn safely.__
16 )))
17 | |(% style="text-align:center; vertical-align:middle; width:150px" %){{lightbox image="ses-pro-robotic-arm-ui-info.png"/}}|Pressing the i "Information" icon in the software will bring you to the [[doc:ses-pro.ses-pro-software.ses-pro-arm-ui.WebHome]] page.
18 | |(% colspan="2" rowspan="1" %)(((
19 = IMPORTANT =
20 )))
21 | |(% colspan="2" rowspan="1" %)(((
22 == Payload Considerations ==
23 )))
24 | |(% colspan="2" rowspan="1" %)(((
25 1. The rated payload for each arm does NOT include an end effector, nor any added distance between the center of mass of the payload and the output of the final joint. Each of the two compatible Lynxmotion PRO grippers reduce the maximum payload of each arm, and it is up to the user to known and understand the concept of "torque" and center of mass before adding an end effector and payload.
26 1. The rated maximum payload for each arm (at full reach) is at the rated speed for each motor. Moving any joint at a higher speed will decrease the payload capacity of the robot.
27 1. Although each servo can provide significantly more torque than is needed for the rated payload (and therefore means the arm can support much higher loads at lower speeds, the mechanical and modular structure of the arms may fail. We strongly suggest testing and using each arm in a highly controlled and safe setting where, if a failure should occur with one or more joints, that nothing will break should the arm fall.
28 1. The stepper motors provide the highest torque at low speeds, and lower torque at high speeds. Note that the maxium torque is not at the lowest speed as the torque to rpm curve for each servo resembles a "mountain".
29 )))
30 | |(% colspan="2" rowspan="1" %)(((
31 == Emergency ==
32 )))
33 | |(% colspan="2" rowspan="1" %)Before using the arm, it is important that a user know what to do when an issue or emergency arises where the arm must be stopped quickly. 
34 The following emergency options are available based on severity:
35 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-halt.png"/}}|(((
36 **Halt (and hold)**
37
38 This will stop every joints and hold them in their last recorded angular positions. The corresponding command is #254H<cr>.
39 )))
40 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-limp.png"/}}|(((
41 **Limp**
42
43 All joints will go limp which mean there will be nothing avoiding them to turn freely (potentially causing the arm to fall). The high gear ratio of the strain wave gearing does mean there is some (low) level of resistant to rotation, but the gears and motor are not "locked" and as such, the arm may fall. The corresponding command is #254L<cr>.
44 )))
45 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-arm-emergency.png"/}}|(((
46 **Software E-Stop**
47
48 The E-stop button within the software sets all joints to limp, this can possibly cause the arm to fall.
49 )))
50 | |(% style="text-align:center; vertical-align:middle" %) |(((
51 **Power Supply E-Stop**
52
53 A hardware E-stop (push to cut power) button is located on the power supply which will cut electricity to all actuators. Similar to a limp command, this can possibly cause the arm to fall. To reset this button, rotate the red "mushroom" in the direction indicated by the white arrows and it will spring out.
54 )))
55 | |(% colspan="2" rowspan="1" %)(((
56 = Robotic Arm =
57 )))
58 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-arm-version.png"/}}|(((
59 **Model**
60
61 The software currently supports the following Lynxmotion PRO Arms:
62
63 * 550mm 5DoF
64 * 550mm 6DoF
65 * 900mm 5DoF
66 * 900mm 6DoF
67
68 In practice, each 5DoF arm has joint 4 at a fixed angle, otherwise the arms are identical to the 6DoF. Users can always purchase the missing actuator to upgrade to a 6DoF.
69 )))
70 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-com.png"/}}|(((
71 **COM Port**
72
73 The first joint at the base (J1) must be connected via USB to a computer running the sofware. No other joints should have a USB connection. A USB 3.0 port or higher on the computer is suggested, as the lower communication speeds fo USB 2.0 or 1.0 may impede communication and cause unecessary delay or issues.
74 )))
75 | |(% style="text-align:center; vertical-align:middle" %)(((
76 {{lightbox image="ses-pro-robotic-arm-ui-connect.png"/}}
77
78 {{lightbox image="ses-pro-robotic-arm-ui-disconnect.png"/}}
79 )))|(((
80 **Connect / Disconnect**
81
82 Once the COM port has been selection, the CONNECT button can be pressed, and once a servo has been found, the light next to it will go from red to green.
83 )))
84 | |(% colspan="2" rowspan="1" %)(((
85 = Gripper =
86 )))
87 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-arm-version-drop.png"/}}|(((
88 **Model**
89
90 The software currently supports two models of Lynxmotion PRO compatible grippers based on DH Robots' PGE-50-40 and CGE-10-10 electric grippers. The Lynxmotion kits include hardware to mount the fingers in multiple different offsets for smaller or larger objects. In the sequencer, the position of the fingers for each gripper are included in the sequencer as G.
91 )))
92 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-gripper-version.png"/}}|(((
93 * PGE-50-40 (40mm default configuration)
94 * PGE-50-40 (60mm configuration)
95 * PGE-50-40 (80mm configuration)
96 * CGE-10-10 (20mm configuration)
97 * CGE-10-10 (40mm configuration)
98 * CGE-10-10 (60mm configuration)
99 )))
100 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-gripper-com.png"/}}|(((
101 **COM Port**
102
103 Choose the appropriate COM port to which the gripper is connected (via its own USB cable). If you are not certain, you can check Windows -> Device Manager
104 )))
105 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-gripper-baud.png"/}}|(((
106 **Baudrate**
107
108 The DH Robotics grippers provide the option to change the baud rate, though the default is 115200. If the gripper is configured by the user to a different baud rate, it is important to select the corresponding baud rate in the software.
109 )))
110 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-gripper-connect.png"/}}|(((
111 **Connect**
112
113 Pressing CONNECT establishes a connection to the gripper and goes through the initilization process once, opening the gripper fully. Once connection has been established, the light next to the button will go from red to green.
114 )))
115 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-gripper-init.png"/}}|(((
116 **Initialize**
117
118 Initializing the gripper opens it fully. This is available should the user encounter issues with positioning and need to re-zero the fingers.
119
120 (((
121
122 )))
123 )))
124 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-gripper-position.png"/}}|(((
125 **Position**
126
127 Actual opening of the gripper in percent.
128
129 * The field can be clicked and changed using a keyboard followed by an "ENTER" entry.
130 * Using the + and - signs will change the value incrementally.
131 )))
132 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-gripper-speed.png"/}}|(((
133 **Speed**
134
135 Speed at which the gripper will travel.
136
137 * The field can be clicked and changed using a keyboard followed by an "ENTER" entry.
138 * Using the + and - signs will change the value incrementally.
139 )))
140 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-gripper-force.png"/}}|(((
141 **Force**
142
143 Maximum force exerted by the gripper
144
145 * The field can be clicked and changed using a keyboard followed by an "ENTER" entry.
146 * Using the + and - signs will change the value incrementally.
147 )))
148 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-gripper-open-close.png"/}}|(((
149 **Open / Close**
150
151 These are shortcut buttons to either open or close the gripper. The fields can be set to the desired position for either Open or Close.
152 )))
153 | |(% style="text-align:center; vertical-align:middle" %) |(((
154 **Sequencer**
155
156 The sequencer displays the gripper position as joint G.
157
158 Ex: #GP1000
159 This command would be open the **G**ripper to **P**osition 100.0%
160
161 HINT: If you want the gripper to open or close on an object only at the end of a motion, create a separate frame where only G moves.
162 )))
163 | |(% colspan="2" rowspan="1" %)(((
164 = 3D Model =
165 )))
166 | |(% colspan="2" rowspan="1" %)(((
167 The 3D model of the arm is shown as reference at all times. The display also includes a virtual plane to denote  the X-Y plane. The model updates based on the selection of the arm, gripper and finger configuration.
168 )))
169 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-arm-3d.png"/}}|(((
170 **View Controls**
171
172 Zoom: Shift + Middle Scroll
173
174 Rotate: Shift + Middle Mouse and mouse movements
175
176 Pan: None
177 )))
178 | |(% colspan="2" rowspan="1" %)(((
179 = Manual Move =
180 )))
181 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-arm-joints.png"/}}|(((
182 **Joints Control (angular)**
183
184 In Joints mode, the user can control the angle of each joint.
185
186 * The field can be clicked and changed using a keyboard followed by an "ENTER" entry.
187 * Using the + and - signs will change the value incrementally by the amount specified in the drop down menu.
188 * The RESET button will send the arm to Zero on all joints
189 )))
190 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-arm-coordinates.png"/}}|(((
191 **Coordinates Control**
192
193 In coordinate control the user can control the cartesian position of the end effector
194 )))
195 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-arm-coordinates-lock.png"/}}|(((
196 **End Effector Lock**
197
198 The orientation of the end effector can be locked with the "ENABLED" button.
199 )))
200 | |(% colspan="2" rowspan="1" %)(((
201 = Direct Command =
202 )))
203 | |(% colspan="2" rowspan="1" %)(((
204 This section allow the user to send commands using the [[LSS-PRO Communication Protocol>>url:https://wiki.lynxmotion.com/info/wiki/lynxmotion/view/ses-pro/lss-pro/lss-p-communication-protocol/]] directly if required.
205
206 A few things to keep in mind when using this:
207
208 * Make sure you know what you are doing as you can make the arm move in __dangerous__ ways.
209 * Sending commands does not require ‘#’ and ‘\r’ chars.
210 ** example for #2\r you should enter 2Q and press the "SEND" button
211 * The commands are validated, and it shows a notification in case of error.
212 * The replies of queries are shown in the text field below.
213 )))
214 | |(% colspan="2" rowspan="1" %)(((
215 = Telemetry =
216 )))
217 | |(% colspan="2" %){{lightbox image="ses-pro-robotic-arm-ui-telemetry.png"/}}
218 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-telemetry-drop.png"/}}|(((
219 **Data to Display**
220
221 Various telemetry data can be retrieved from each actuators / joints, here is what the software support:
222
223 * Position
224 * Current
225 * Linear Accel X
226 * Linear Accel Y
227 * Linear Accel Z
228 * Angular Accel α
229 * Angular Accel β
230 * Angular Accel γ
231 * MCU Temperature
232 * PCB Temperature
233 * Probe Temperature
234 )))
235 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-telemetry-hide.png"/}}|(((
236 **Display / Hide **
237
238 At the bottom of the graphics you will find squares to activate / deactivate the desired actuator / joint to be displayed in the graph.
239 )))
240 | |(% colspan="2" rowspan="1" %)(((
241 = Sequencer =
242 )))
243 | |(% colspan="2" rowspan="1" %)(((
244 **Sequence**
245
246 That's where you can create and edit the sequence you need to play in your particular project.
247 )))
248 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-sequence.png"/}}|(((
249 **Sequence Selector**
250
251 Multiple sequences can be open at once and this is where you will be selecting which one will be displayed and/or played.
252 )))
253 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-sequence-add.png"/}}|(((
254 **Add**
255
256 Create a new Sequence that will be automatically selected.
257 )))
258 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-sequence-remove.png"/}}|(((
259 **Subtract**
260
261 Remove / Delete the currently selected Sequence.
262 )))
263 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-sequence-copy.png"/}}|(((
264 **Copy**
265
266 Create a copy of the currently selected Sequence and add a "- copy" to it's name.
267 )))
268 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-sequence-save.png"/}}|(((
269 **Save**
270
271 Saving the currently selected sequence for future use.
272 )))
273 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-sequence-open.png"/}}|(((
274 **Open**
275
276 Opening a previously saved sequence.
277 )))
278 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-sequence-delete.png"/}}|(((
279 **Delete**
280
281 Deleting the ALL sequence leaving an empty "Sequence 1"
282 )))
283 | |(% colspan="2" rowspan="1" %)(((
284 **Frames**
285
286 Those are frames or cards that will allow to move to specific positions. The user can either modify them by clicking on the Record button or manually edit them.
287 )))
288 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-frame-add.png"/}}|(((
289 **Add**
290
291 Create a new frame / card in the selected sequence.
292 )))
293 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-frame-sequence.png"/}}|(((
294 **Add frames from Sequence**
295
296 Will add the frame present in another sequence to the currently selected one. This is useful if you want to isolate some sequences and test them out alone than combine them in a master Sequence.
297 )))
298 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-frame-record.png"/}}|(((
299 **Record**
300
301 Store the current positions of each joints including the gripper in the selected frame / card.
302 )))
303 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-frame-delete.png"/}}|(((
304 **Remove**
305
306 Delete the currently selected frame / card.
307 )))
308 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-frame-copy.png"/}}|(((
309 **Copy**
310
311 Copy all the positions from the selected frame / card.
312 )))
313 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-frame-paste.png"/}}|(((
314 **Paste**
315
316 Paste all the position from the previously copied frame / card to the selected one.
317 )))
318 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-frame-invert.png"/}}|(((
319 **Invert**
320
321 Invert the frame / card so the First one become the Last and everything in between too.
322 )))
323 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-frame.png"/}}|(((
324 **Frame**
325
326 * **Name:** It's possible to change the name of the frame to better represent your sequence or application.
327 * **Length: **The frame length define the length of the movement and can be either entered manually or using "//Alt + Left Click" //and drag the frame.
328 )))
329 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-frame-drop.png"/}}|(((
330 **Frame Position**
331
332 Moving your cursor to the upper part of the frame will display a "hand" and then you can drag & drop the frame into a new position to re-order them.
333 )))
334 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-start.png"/}}|(((
335 **Starting Frame**
336
337 A start frame is required to calculate the speed for the first frame / card. This is usually the Zero point with all actuators being a 0deg but it's possible to make it yours by changing it manually or with the record button.
338
339 Note: This frame will always be played at a fixed speed for all actuator which means they will not Stop at the same time.
340 )))
341 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-loop.png"/}}|(((
342 **Loop**
343
344 The amount of time you want the particular sequence to play. If you click on the "Loop" test it will become Infinite.
345 )))
346 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-edit.png"/}}|(((
347 **Manual Edit**
348
349 Manually create or edit an already made frame / card in this window. Each joints and gripper can be modified that way.
350 )))
351 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-zoom.png"/}}|(((
352 **Zoom**
353
354 Allow you to zoom In or Out making the time resolution change. Something nice when dealing with long sequences.
355 )))
356 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-play-start.png"/}}|(((
357 **Play from Start**
358
359 Start the sequence selected at the beginning.
360 )))
361 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-play.png"/}}|(((
362 **Play**
363
364 Start the sequence selected at the beginning OR where it was when Pause was pressed.
365 )))
366 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-pause.png"/}}|(((
367 **Pause**
368
369 Only displayed once the sequence is started (play) and allows the user to pause the sequence anywhere.
370
371
372 )))
373 | |(% style="text-align:center; vertical-align:middle" %){{lightbox image="ses-pro-robotic-arm-ui-sequencer-stop.png"/}}|(((
374 **Stop**
375
376 Stop the sequence & hold position.
377 )))
Copyright RobotShop 2018