Wiki source code of SES-PRO Robotic Arm UI

Version 30.1 by Eric Nantel on 2024/10/10 09:32

Show last authors
1 {{lightbox image="https://wiki.lynxmotion.com/info/wiki/lynxmotion/download/ses-pro/ses-pro-software/ses-pro-arm-ui/WebHome/LSS-PRO-UI.png" width="350"/}}
2
3 [[image:[email protected]]]
4
5 **Table of Contents**
6
7 {{toc/}}
8
9 = Description =
10
11 The Lynxmotion Servo Erector Set Professional (SES PRO) Robotic Arm User Interface (UI) is a simple software which allows a user to control any of the Lynxmotion Professional Modular robotic arms in their default configuration. The two compatible gripper kits which are compatible with the SES PRO system (based on the DH Robotics PGE-50-40 and CGE-10-10 DC grillers) can also be controlled via this interface in each of their possible configurations. The included manual jog feature can be used to either position each joint angle, or move to specific cartesian coordinates. Arm (and gripper) positions can then be recorded as part of the built-in sequencer. A 3D display of the arm shows the position of the arm, and a graph can be used to show various information to the user. In order to get a better understanding of the protocol, commands sent to the arm are shown in the interface, and a user input field are standard.
12
13 = Features =
14
15 * Angular and cartesian positioning of the end effector
16 * 3D graphical display of the appropriate robotic arm and end effector
17 * Sequencer to record and play back frames (single, looped or infinite)
18 * Error checking (speed, temperature etc.)
19 * Command output and user input
20 * Safety (Software E-Stop, Halt&Hold & Limp)
21
22 __Compatibility: Windows 7 Operating System or above__
23
24 |(% colspan="2" %)(((
25 = User Guide =
26 )))
27 |(% style="width:26px" %) |(% style="width:1452px" %)(((
28 Pressing the i "Information" icon in the software will bring you to this page. Before proceeding with the guide, it is important to note the following:
29
30 * 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
31 * 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
32 )))
33 |(% colspan="2" %)(((
34 == IMPORTANT ==
35 )))
36 |(% style="width:26px" %) |(% style="width:1452px" %)(((
37 === Payload Considerations ===
38
39 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.
40 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.
41 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.
42 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".
43 )))
44 |(% style="width:26px" %) |(% style="width:1452px" %)(((
45 === Emergency ===
46
47 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. The following emergency options are available based on severity:
48
49 **Halt & Hold**
50
51 This will stop every joints and hold them in their last recorded angular positions. The corresponding command is #254H<cr>.
52
53 **Limp**
54
55 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 nto "locked" and as such, the arm may fall. The corresponding command is #254L<cr>.
56
57 **Software Stop**
58
59 The E-stop button within the software sets all joints to limp.
60
61 **Hardware E-Stop**
62 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.
63 )))
64 |(% colspan="2" %)(((
65 == Arm Connection ==
66 )))
67 |(% style="width:26px" %) |(% style="width:1452px" %)(((
68 **Model**
69
70 The software currently supports the following Lynxmotion PRO Arms:
71
72 * 550mm 5DoF
73 * 550mm 6DoF
74 * 900mm 5DoF
75 * 900mm 6DoF
76
77 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.
78
79 **COM Port**
80
81 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. 
82
83 **Connect**
84
85 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.
86 )))
87 |(% colspan="2" %)(((
88 == Gripper Controls ==
89 )))
90 |(% style="width:26px" %) |(% style="width:1452px" %)(((
91 **Model**
92
93 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 J7.
94
95 * PGE-50-40 (40mm default configuration)
96 * PGE-50-40 (60mm configuration)
97 * PGE-50-40 (80mm configuration)
98 * CGE-10-10 (20mm configuration)
99 * CGE-10-10 (40mm configuration)
100 * CGE-10-10 (60mm configuration)
101
102 **COM Port**
103
104 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
105
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 **Initialize**
111
112 Initializing the gripper opens it fully. This is available should the user encounter issues with positioning and need to re-zero the fingers.
113
114 **Connect**
115
116 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.
117
118 **Speed**
119
120 The speed of motion can be adjusted either via the plus or minus buttons or entering a value between 0 and 100 and pressing enter.
121
122 **Force**
123
124 The maximum force exerted by the gripper can be adjusted either via the plus or minus buttons or entering a value between 0 and 100 and pressing enter.
125
126 **Open / Close**
127
128 These are shortcut buttons to either fully open or fully close the gripper.
129
130 **Sequencer**
131
132 The sequencer displays the gripper position as joint 7 (J7).
133
134 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 J7 moves.
135 )))
136 |(% colspan="2" %)(((
137 == 3D Model ==
138 )))
139 |(% style="width:26px" %) |(% style="width:1452px" %)(((
140 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.
141
142 **View Controls**
143
144 Zoom: Shift + Middle Scroll
145
146 Rotate: Shift + Middle Mouse
147
148 Pan: None
149 )))
150 |(% colspan="2" %)(((
151 == Manual Move ==
152 )))
153 |(% style="width:26px" %) |(% style="width:1452px" %)(((
154 **Angular Control**
155
156 In angular mode, the user can control the angle of each joint
157
158 **Coordinates Control**
159
160 In coordinate control the user can control the cartesian position of the end effector
161
162 **End Effector Lock**
163
164 The orientation of the end effector can be locked.
165 )))
166 |(% colspan="2" %)(((
167 == Direct Command ==
168 )))
169 |(% style="width:26px" %) |(% style="width:1452px" %)(((
170 This section allow the user to send commands using the [[LSS-PRO Communication Protocol>>path:/info/wiki/lynxmotion/view/ses-pro/lss-pro/lss-p-communication-protocol/]] directly if required.
171
172 A few things to keep in mind when using this:
173
174 * Make sure you know what you are doing as you can make the arm move in __dangerous__ ways.
175 * Sending commands does not require ‘#’ and ‘\r’ chars.
176 ** example for #2\r you should enter 2Q and press the "SEND" button
177 * The commands are validated, and it shows a notification in case of error.
178 * The replies of queries are shown in the text field below.
179 )))
180 |(% colspan="2" %)(((
181 == Command Output ==
182 )))
183 |(% style="width:26px" %) |(% style="width:1452px" %)(((
184 //{Coming Soon}//
185 )))
186 |(% colspan="2" %)(((
187 == Telemetry ==
188 )))
189 |(% style="width:26px" %) |(% style="width:1452px" %)(((
190 **Data to Display**
191
192 Various telemetry data can be retrieved from each actuators / joints, here is what the software support:
193
194 * Position
195 * Current
196 * Linear Accel X
197 * Linear Accel Y
198 * Linear Accel Z
199 * Angular Accel α
200 * Angular Accel β
201 * Angular Accel γ
202 * MCU Temperature
203 * PCB Temperature
204 * Probe Temperature
205
206 **Display / Hide **
207
208 At the bottom of the graphics you will find squares to activate / deactivate the desired actuator / joint to be displayed in the graph.
209 )))
210 |(% colspan="2" style="width:26px" %)(((
211 == Sequencer ==
212 )))
213 |(% style="width:26px" %) |(% style="width:1452px" %)(((
214 **Sequence**
215
216 Add
217
218 Substract
219
220 Copy
221
222 Save
223
224 Open
225
226 Delete
227
228 //{Coming Soon}//
229
230 **Frames**
231
232 Add
233
234 Sequence Selector
235
236 Record
237
238 Delete
239
240 Copy
241
242 Paste
243
244 Swap
245
246 Manual Edit
247
248 Time, angles, gripper
249
250 Moving Frames
251
252 //Alt + Left Click = Drag time//
253
254 //{Coming Soon}//
255
256 **Errors**
257
258 //{Coming Soon}//
259 )))
260 |(% style="width:26px" %) |(% style="width:1452px" %)
261 |(% style="width:26px" %) |(% style="width:1452px" %)
262 |(% style="width:26px" %) |(% style="width:1452px" %)
263 |(% style="width:26px" %) |(% style="width:1452px" %)
264 |(% style="width:26px" %) |(% style="width:1452px" %)
265 |(% style="width:26px" %) |(% style="width:1452px" %)
266 |(% style="width:26px" %) |(% style="width:1452px" %)
267 |(% style="width:26px" %) |(% style="width:1452px" %)
268 |(% style="width:26px" %) |(% style="width:1452px" %)
269 |(% style="width:26px" %) |(% style="width:1452px" %)
270 |(% style="width:26px" %) |(% style="width:1452px" %)
271 |(% style="width:26px" %) |(% style="width:1452px" %)
272 |(% style="width:26px" %) |(% style="width:1452px" %)
273 |(% style="width:26px" %) |(% style="width:1452px" %)
274 |(% style="width:26px" %) |(% style="width:1452px" %)
275 |(% style="width:26px" %) |(% style="width:1452px" %)
276 |(% style="width:26px" %) |(% style="width:1452px" %)
277 |(% style="width:26px" %) |(% style="width:1452px" %)
278 |(% style="width:26px" %) |(% style="width:1452px" %)
279 |(% style="width:26px" %) |(% style="width:1452px" %)
280 |(% style="width:26px" %) |(% style="width:1452px" %)
281 |(% style="width:26px" %) |(% style="width:1452px" %)
282 |(% style="width:26px" %) |(% style="width:1452px" %)
283 |(% style="width:26px" %) |(% style="width:1452px" %)
284 |(% style="width:26px" %) |(% style="width:1452px" %)
285 |(% style="width:26px" %) |(% style="width:1452px" %)
286 |(% style="width:26px" %) |(% style="width:1452px" %)
287 |(% style="width:26px" %) |(% style="width:1452px" %)
288 |(% style="width:26px" %) |(% style="width:1452px" %)
289 |(% style="width:26px" %) |(% style="width:1452px" %)
290 |(% style="width:26px" %) |(% style="width:1452px" %)
291 |(% style="width:26px" %) |(% style="width:1452px" %)
292 |(% style="width:26px" %) |(% style="width:1452px" %)
293 |(% style="width:26px" %) |(% style="width:1452px" %)
294 |(% style="width:26px" %) |(% style="width:1452px" %)
295 |(% style="width:26px" %) |(% style="width:1452px" %)
296 |(% style="width:26px" %) |(% style="width:1452px" %)
297 |(% style="width:26px" %) |(% style="width:1452px" %)
298 |(% style="width:26px" %) |(% style="width:1452px" %)
299 |(% style="width:26px" %) |(% style="width:1452px" %)
300 |(% style="width:26px" %) |(% style="width:1452px" %)
301 |(% style="width:26px" %) |(% style="width:1452px" %)
302 |(% style="width:26px" %) |(% style="width:1452px" %)
303 |(% style="width:26px" %) |(% style="width:1452px" %)
304 |(% style="width:26px" %) |(% style="width:1452px" %)
305 |(% style="width:26px" %) |(% style="width:1452px" %)
306 |(% style="width:26px" %) |(% style="width:1452px" %)
307 |(% style="width:26px" %) |(% style="width:1452px" %)
308 |(% style="width:26px" %) |(% style="width:1452px" %)
309 |(% style="width:26px" %) |(% style="width:1452px" %)
310 |(% style="width:26px" %) |(% style="width:1452px" %)
311 |(% style="width:26px" %) |(% style="width:1452px" %)
312 |(% style="width:26px" %) |(% style="width:1452px" %)
313 |(% style="width:26px" %) |(% style="width:1452px" %)
314
315 {{comment}}
316 = =
317
318 = User Guide =
319
320 Pressing the i "Information" icon in the software will bring you to this page. Before proceeding with the guide, it is important to note the following:
321
322 * 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
323 * 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
324
325 == IMPORTANT: Payload Considerations ==
326
327 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.
328 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.
329 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.
330 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".
331
332 == IMPORTANT: Emergency ==
333
334 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. The following emergency options are available based on severity:
335
336 **Halt & Hold**
337
338 This will stop every joints and hold them in their last recorded angular positions. The corresponding command is #254H<cr>.
339
340 **Limp**
341
342 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 nto "locked" and as such, the arm may fall. The corresponding command is #254L<cr>.
343
344 **Software Stop**
345
346 The E-stop button within the software sets all joints to limp.
347
348 **Hardware E-Stop**
349 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.
350
351 == Arm Connection ==
352
353 **Model**
354
355 The software currently supports the following Lynxmotion PRO Arms:
356
357 * 550mm 5DoF
358 * 550mm 6DoF
359 * 900mm 5DoF
360 * 900mm 6DoF
361
362 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.
363
364 **COM Port**
365
366 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. 
367
368 **Connect**
369
370 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.
371
372 == Gripper Controls ==
373
374 **Model**
375
376 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 J7.
377
378 * PGE-50-40 (40mm default configuration)
379 * PGE-50-40 (60mm configuration)
380 * PGE-50-40 (80mm configuration)
381 * CGE-10-10 (20mm configuration)
382 * CGE-10-10 (40mm configuration)
383 * CGE-10-10 (60mm configuration)
384
385 **COM Port**
386
387 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
388
389 **Baudrate**
390
391 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 teh software.
392
393 **Initialize**
394
395 Initializing the gripper opens it fully. This is available should the user encounter issues with positioning and need to re-zero the fingers.
396
397 **Connect**
398
399 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.
400
401 **Speed**
402
403 The speed of motion can be adjusted either via the plus or minus buttons or entering a value between 0 and 100 and pressing enter.
404
405 **Force**
406
407 The maximum force exerted by the gripper can be adjusted either via the plus or minus buttons or entering a value between 0 and 100 and pressing enter.
408
409 **Open / Close**
410
411 These are shortcut buttons to either fully open or fully close the gripper.
412
413 **Sequencer**
414
415 The sequencer displays the gripper position as joint 7 (J7).
416
417 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 J7 moves.
418
419 == 3D Model ==
420
421 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.
422
423 **View Controls**
424
425 Zoom: Shift + Middle Scroll
426
427 Rotate: Shift + Middle Mouse
428
429 Pan: None
430
431 == Manual Move ==
432
433 **Angular Control**
434
435 In angular mode, the user can control the angle of each joint
436
437 **Coordinates Control**
438
439 In coordinate control the user can control the cartesian position of the end effector
440
441 **End Effector Lock**
442
443 The orientation of the end effector can be locked.
444
445 == Direct Command ==
446
447 This section allow the user to send commands using the [[doc:ses-pro.lss-pro.lss-p-communication-protocol.WebHome]] directly if required.
448
449 A few things to keep in mind when using this:
450
451 * Make sure you know what you are doing as you can make the arm move in __dangerous__ ways.
452 * Sending commands does not require ‘#’ and ‘\r’ chars.
453 ** example for #2\r you should enter 2Q and press the "SEND" button
454 * The commands are validated, and it shows a notification in case of error.
455 * The replies of queries are shown in the text field below.
456
457 == Command Output ==
458
459 //{Coming Soon}//
460
461 == Telemetry ==
462
463 **Data to Display**
464
465 //{Coming Soon}//
466
467 **Display / Hide Actuator**
468
469 //{Coming Soon}//
470
471 == Sequencer ==
472
473 **Frames**
474
475 //{Coming Soon}//
476
477 **Record **
478
479 //{Coming Soon}//
480
481 **Edit **
482
483 Time, angles, gripper
484
485 //Alt + Left Click = Drag time//
486
487 **Reorder**
488
489 //{Coming Soon}//
490
491 **Play**
492
493 //{Coming Soon}//
494
495 **Errors**
496
497 //{Coming Soon}//
498 {{/comment}}
Copyright RobotShop 2018