Changes for page FlowArm LSS

Last modified by Eric Nantel on 2024/07/03 09:39

From version < 146.3 >
edited by Coleman Benson
on 2020/08/31 12:53
To version < 132.1 >
edited by Eric Nantel
on 2019/10/18 10:52
< >
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -xwiki:XWiki.CBenson
1 +xwiki:XWiki.ENantel
Content
... ... @@ -1,10 +1,10 @@
1 1  {{lightbox image="LSS-FlowArm.png" width="400"/}}
2 2  
3 -[[[[image:[email protected]]]>>https://www.robotshop.com/en/lss-flowarm-app-download.html||rel="noopener noreferrer" target="_blank"]]
3 +[[[[image:[email protected]]]>>https://www.lynxmotion.com/tools/LSS_FlowArm.zip]]
4 4  
5 5  **Page Contents**
6 6  
7 -{{toc depth="2"/}}
7 +{{toc/}}
8 8  
9 9  = Description =
10 10  
... ... @@ -28,7 +28,7 @@
28 28  
29 29  Before assembling the arm, each of the IDs assigned to the servos must correspond with what is needed in the software.
30 30  
31 -{{lightbox image="https://www.robotshop.com/info/wiki/lynxmotion/download/servo-erector-set-robots-kits/ses-v2-robots/ses-v2-arms/lss-4dof-arm/4dof-arm-quickstart/4dof-servo-setup/WebHome/SESV2-LSS-ARTICULATED-ARM-IDS.PNG" width="350"/}}
31 +{{lightbox image="https://www.robotshop.com/info/wiki/lynxmotion/download/servo-erector-set-robots-kits/ses-v2-robots/ses-v2-arms/lss-articulated-arm/lss-articulated-arm-servo-setup/WebHome/SESV2-LSS-ARTICULATED-ARM-IDS.PNG" width="350"/}}
32 32  
33 33  To do so, the [[LSS Configuration Software>>doc:lynxmotion-smart-servo.lss-configuration-software.WebHome]] is used. Follow the procedure outlined here: [[doc:lynxmotion-smart-servo.lss-configuration-software.lss-config-configure-ids.WebHome]]
34 34  
... ... @@ -61,11 +61,11 @@
61 61  
62 62  [[image:lss-flowarm-header.png||alt="lss-flowarm-header"]]
63 63  
64 -=== Emergency stop ===
64 +**EMERGENCY STOP**
65 65  
66 66  At any given time you can click this button to stop the arm. This will send a "LIMP" command directly to all servos.
67 67  
68 -=== Store offsets (calibration) ===
68 +**STORE OFFSETS**
69 69  
70 70  The "STORE OFFSETS" button configures all of the servo offsets (this makes use of the CO command as part of the [[LSS Communication Protocol>>doc:lynxmotion-smart-servo.lss-communication-protocol.WebHome]]). Before pressing the button, orient the arm as shown below (with the gripper closed), and only then click the STORE OFFSETS button. This setup only need to be done once when first setting up the arm.
71 71  
... ... @@ -78,15 +78,15 @@
78 78  (% style="width:700px" %)
79 79  |(% style="text-align:center; vertical-align:middle" %)[[image:lss-flowarm-offset-left.png||alt="lss-flowarm-left.png" height="300" width="300"]]|(% style="text-align:center; vertical-align:middle" %)[[image:lss-flowarm-offset-top.png||alt="lss-flowarm-top.png" height="300" width="300"]]
80 80  
81 -=== Limp ===
81 +**LIMP**
82 82  
83 83  Causes all servos to slowly go LIMP (i.e. lose torque), gradually loosing torque until hitting the ground. It's important to note that the software will not constantly query all servos for their position, and as such the virtual arm on screen will not update frequently if at all. If you want the virtual arm on screen to update as you move the real arm, use TEACH mode described below.
84 84  
85 -=== Halt & hold ===
85 +**HALT & HOLD**
86 86  
87 87  Causes all servos to immediately stop their motion and hold their position.
88 88  
89 -=== Teach ===
89 +**TEACH**
90 90  
91 91  Teach mode allows a user to physically move the arm and have the virtual arm on screen follow. This is used primarily to manually add frames to sequences, determine the optimal closed position for the gripper etc. In order to ensure the arm does not collapse, pressing the TEACH button will start a 5 second countdown during which the arm will slowly lose torque (angular force) until all servos are limp. When in teach mode, an orange outline appears over all on-screen fields which would cause a conflict and therefore cannot be used.
92 92  
... ... @@ -94,15 +94,15 @@
94 94  
95 95  Once the arm is limp, it can be moved physically, and the application will regularly send position query commands to all of the servos and update the virtual arm on screen to match the servo's responses. Use the sequencer to record each position (frame) while in teach mode. For more information on the sequencer, refer to the sequencer section below.
96 96  
97 -=== Grid / units ===
97 +**GRID / Units**
98 98  
99 99  Grid spacing can be toggled between Metric or Imperial. Options include 2cm, 3cm, 5cm and 1in, 2in and 3in.
100 100  
101 -=== Baud ===
101 +**BAUD**
102 102  
103 103  The default (and suggested) baud rate is 115200, which is the baud rate at which the servos are shipped. Should a user have changed the baud rate on the servos, it can be selected using the drop down. Note that the baud rate must be configured to the same value for all servos in order to work.
104 104  
105 -=== COM ===
105 +**COM**
106 106  
107 107  When the software is opened, a scan of all of your computer's COM ports is done automatically and a list of all available COM ports will be found in the drop down menu, along with OFF (stop searching for a COM port), and AUTO (the application tries to automatically find the correct COM port by sending a query command at the corresponding BAUD rate). Select which of your computer's COM ports is connected to the [[LSS Adapter>>doc:servo-erector-set-system.ses-electronics.ses-modules.lss-adapter-board.WebHome]] (which is provided with the standard SES v2 articulated robot arm). If you have a list of available COM ports and are unsure which is associated with the LSS Adapter, go to Device Manager in Windows, and view the list of USB devices connected. The LSS Adapter uses an FTDI USB to serial chip. Alternatively, simply unplug the USB from the arm and see which of the COM ports disappears from the list.
108 108  
... ... @@ -110,9 +110,9 @@
110 110  * If the red light is solid, then no correct COM port has been located.
111 111  * If the green light is solid, the a COM port has been located.
112 112  
113 -=== Window size ===
113 +**Window Size**
114 114  
115 -[[image:lss-flowarm-size.jpg]]
115 +**[[image:lss-flowarm-size.jpg]]**
116 116  
117 117  A the top right of the window, there are three dark rectangles allowing you to change the application's window size.
118 118  
... ... @@ -121,30 +121,18 @@
121 121  (% class="wikigeneratedid" id="HArmConfiguration" %)
122 122  The arm shown on screen is based on the assembly guide. The aesthetics of the arms will be changing for the next release version of the LSS Flowarm software.
123 123  
124 -=== Side view ===
124 +**Side View**
125 125  
126 126  The left view is a representation of the arm, where the orange circles represent the location of each axis of rotation. You can move the arm in this view by clicking on and dragging anywhere in that side view screen.
127 127  
128 -Keyboard shortcuts: (W, A, S, D)
129 -
130 -W, S: Up & down
131 -
132 -A, D: Left & right (closer / farther from base)
133 -
134 134  [[image:lss-flowarm-left.png||width="300"]]
135 135  
136 -=== Top view ===
130 +**Top View**
137 137  
138 138  The top view shows the arm top down. You can move the arm within this view by clicking on and dragging the dot right next to the gripper.
139 139  
140 -Keyboard Shortcuts: Arrow keys (▲▼◄►)
134 +**[[image:lss-flowarm-top.png||width="300"]]**
141 141  
142 -▲▼: Along Y
143 -
144 -◄►: Along X
145 -
146 -[[image:lss-flowarm-top.png||width="300"]]
147 -
148 148  == Shortcuts ==
149 149  
150 150  **Base**: If you hold the SHIFT key while dragging with the mouse you can control base rotation.
... ... @@ -163,19 +163,19 @@
163 163  
164 164  == Left Menu ==
165 165  
166 -=== Gripper ===
154 +**Gripper**
167 167  
168 168  Assuming the gripper has been properly calibrated, The number below represents the opening at the tip. Fully closed should correspond to 0 degrees. We added a feature where the servo stop when it feel a current raising, this allows the user to ask for a full close and have a good grip on the item picked.
169 169  
170 170  [[image:lss-flowarm-gripper-view.png||alt="lss-flowarm-gripper-view.jpg"]]
171 171  
172 -=== Wrist ===
160 +**Wrist**
173 173  
174 174  The wrist angle can be locked or unlocked. The field allows for user input (click the numbers) or fine adjustments using the arrows.
175 175  
176 176  [[image:lss-flowarm-wrist-view.png||alt="lss-flowarm-wrist-view.jpg"]]
177 177  
178 -=== End effector position ===
166 +**End Effector Position**
179 179  
180 180  The position of the end effector can be controlled either by manually entering the information for R (radius), or the Cartesian x, y, z coordinates, or using the arrows.
181 181  
... ... @@ -183,7 +183,7 @@
183 183  
184 184  [[image:lss-flowarm-positioning.png||alt="lss-flowarm-positioning.jpg"]]
185 185  
186 -== Data Log ==
174 +== **Data Log** ==
187 187  
188 188  The optional Data log (normally hidden) can be toggled on or off and allows the user to see all commands being sent to and received from the smart servos. The data can be saved to a file in a Comma Separated Values (.csv) format.
189 189  
... ... @@ -195,25 +195,25 @@
195 195  
196 196  LSS FlowArm has a powerful pattern sequencer component (normally found only in the full version of FlowBotics Studio) that is used to create reusable patterns within minutes, instead of hours or days.
197 197  
198 -(% style="width:1037px" %)
199 -|(% style="width:207px" %)[[image:lss-flowarm-association.jpg]]|(% style="width:186px" %)Assign Input|(% style="width:662px" %)Patterns can be associated to keyboard keys F1 to F12, and keys E, F, G, and H
200 -|(% style="width:207px" %)[[image:lss-flowarm-pattern-list.jpg]]|(% style="width:186px" %)Sequence List|(% style="width:662px" %)The sequence list is the first control on the sequencer.
201 -|(% style="width:207px" %)[[image:lss-flowarm-patterns.jpg]]|(% style="width:186px" %)Sequence Management|(% style="width:662px" %)(((
186 +(% style="width:1303px" %)
187 +|(% style="width:257px" %)[[image:lss-flowarm-association.jpg]]|(% style="width:306px" %)Assign Input|(% style="width:758px" %)Patterns can be associated to keyboard keys F1 to F12, and keys E, F, G, and H
188 +|(% style="width:257px" %)[[image:lss-flowarm-pattern-list.jpg]]|(% style="width:306px" %)Sequence List|(% style="width:758px" %)The sequence list is the first control on the sequencer.
189 +|(% style="width:257px" %)[[image:lss-flowarm-patterns.jpg]]|(% style="width:306px" %)Sequence Management|(% style="width:758px" %)(((
202 202  Add, remove, duplicate, save, load and clear all patterns.
203 203  )))
204 -|(% style="width:207px" %)[[image:lss-flowarm-frames.jpg]]|(% style="width:186px" %)Frame Options|(% style="width:662px" %)Adding a frame adds a blank frame to the list. The drop-down list gives "useful" pre-made frames. Recording a frame copies the arm's current on-screen position. The X removes a selected frame.
205 -|(% style="width:207px" %)[[image:lss-flowarm-copy-paste.jpg]]|(% style="width:186px" %)Copy / Paste Frame|(% style="width:662px" %)Copy and paste a frame
206 -|(% style="width:207px" %)[[image:lss-flowarm-settings.jpg]]|(% style="width:186px" %)Operations / Settings|(% style="width:662px" %)Useful features include: Toggle pause before frame; Remove gaps between frames; Reverse frames
207 -|(% style="width:207px" %)[[image:lss-flowarm-lock.jpg]]|(% style="width:186px" %)Lock |(% style="width:662px" %)Timeline locking
208 -|(% style="width:207px" %)[[image:lss-flowarm-loop.jpg]]|(% style="width:186px" %)Repeat / Loop Pattern|(% style="width:662px" %)Play once or loop; Set the playback speed using the up and down arrows.
209 -|(% style="width:207px" %)[[image:lss-flowarm-play.jpg]]|(% style="width:186px" %)Sequence Playback|(% style="width:662px" %)Restart sequence, play or stop
210 -|(% style="width:207px" %)[[image:lss-flowarm-inspector.png]]|(% style="width:186px" %)Frame Inspector|(% style="width:662px" %)Allows to modify the values sent in a particular frame manually.
192 +|(% style="width:257px" %)[[image:lss-flowarm-frames.jpg]]|(% style="width:306px" %)Frame Options|(% style="width:758px" %)Adding a frame adds a blank frame to the list. The drop-down list gives "useful" pre-made frames. Recording a frame copies the arm's current on-screen position. The X removes a selected frame.
193 +|(% style="width:257px" %)[[image:lss-flowarm-copy-paste.jpg]]|(% style="width:306px" %)Copy / Paste Frame|(% style="width:758px" %)Copy and paste a frame
194 +|(% style="width:257px" %)[[image:lss-flowarm-settings.jpg]]|(% style="width:306px" %)Operations / Settings|(% style="width:758px" %)Useful features include: Toggle pause before frame; Remove gaps between frames; Reverse frames
195 +|(% style="width:257px" %)[[image:lss-flowarm-lock.jpg]]|(% style="width:306px" %)Lock |(% style="width:758px" %)Timeline locking
196 +|(% style="width:257px" %)[[image:lss-flowarm-loop.jpg]]|(% style="width:306px" %)Repeat / Loop Pattern|(% style="width:758px" %)Play once or loop; Set the playback speed using the up and down arrows.
197 +|(% style="width:257px" %)[[image:lss-flowarm-play.jpg]]|(% style="width:306px" %)Sequence Playback|(% style="width:758px" %)Restart sequence, play or stop
198 +|(% style="width:257px" %)[[image:lss-flowarm-inspector.png]]|(% style="width:306px" %)Frame Inspector|(% style="width:758px" %)Allows to modify the values sent in a particular frame manually.
211 211  
212 -=== Sequences ===
200 +**Sequences**
213 213  
214 214  The sequencer allows you to make your robot move over time by transitioning from one position to another. Each transition we call a frame and a sequence of frames we call a sequence. You can create as many sequences as you like. You can play sequences back manually or using the keyboard inputs mentioned below. This section describes the sequence management functions of the Sequencer.
215 215  
216 -=== Sequence List ===
204 +**Sequence List**
217 217  
218 218  [[image:lss-flowarm-pattern-list.jpg]]
219 219  
... ... @@ -223,36 +223,36 @@
223 223  
224 224  [[image:lss-flowarm-patterns.jpg]]
225 225  
226 -=== Add a Sequence ===
214 +**Add a Sequence**
227 227  
228 228  To add a sequence click the add button. A new sequence will appear in the list and its name will open for editing.
229 229  
230 -=== Remove a Sequence ===
218 +**Remove a Sequence**
231 231  
232 232  Click the remove sequence button to delete the currently selected sequence from the list. This action is irreversible so you will be asked for confirmation.
233 233  
234 -=== Duplicate a Sequence ===
222 +**Duplicate a Sequence**
235 235  
236 236  If you want to make a new sequence based on an existing one then you can duplicate it.
237 237  
238 -=== Saving Sequences ===
226 +**Saving Sequences**
239 239  
240 240  IMPORTANT: If you want to keep any sequences you create then you must export them otherwise they will be lost when you return to the project browser. 
241 241  To do this click the export button. You can choose whether to export all your sequences or just the currently selected one. Sequences are saved to files so you'll need to pick a filename and folder to save to. If a sequence uses sub sequences these will be saved even if you choose only to save the selected sequence.
242 242  
243 -=== Loading Sequences ===
231 +**Loading Sequences**
244 244  
245 245  If you have saved sequences that you want to restore then click the Import button. You will be asked to choose a previously saved sequence file.
246 246  The sequences in the file will be added to the list. They do not replace the sequence list. Also it doesn't
247 247  matter how many sequences the file contains, all of them will be imported.
248 248  
249 -=== Clear All Sequences ===
237 +**Clear All Sequences**
250 250  
251 251  If you want to start from scratch you can clear all the sequences from the list using the clear all button.
252 252  
253 -== Frames ==
241 +== **Frames** ==
254 254  
255 -[[image:lss-flowarm-frame.jpg]]
243 +**[[image:lss-flowarm-frame.jpg]]**
256 256  
257 257  We now know how to manage sequences now lets see how you build one. As we said earlier a sequence is made up of frames. A frame represents a transition between robot states over time.
258 258  In addition to frames, you can also add other sequences to a sequence. This allows quite complex series of movements to be built up very quickly and easily.
... ... @@ -259,38 +259,38 @@
259 259  
260 260  [[image:lss-flowarm-frames.jpg]]
261 261  
262 -=== Adding Frames ===
250 +**Adding Frames**
263 263  
264 264  To add a frame click the Add button. A new frame will be added at the end of the sequence. The duration of the frame will be whatever the last frame duration was. The frame will record whatever position the robot is currently set to. You can add a sub sequence to the sequence by clicking the arrow to the right of the Add button. A drop list of the available sequences will appear. Select one and it will be added to the end of the sequence.
265 265  
266 -=== Recording to a Frame ===
254 +**Recording to a Frame**
267 267  
268 268  When you add a frame it will record the state that the robot is currently in. If you want to change this state first select the frame by clicking on it. Next move the robot to the position you want to record. When you're happy press the record button. The frame will flash to indicate that it has been updated.
269 269  
270 -=== Deleting Frames ===
258 +**Deleting Frames**
271 271  
272 272  To delete a sequence or frame from a sequence, click the Delete button.
273 273  
274 -=== Naming Frames ===
262 +**Naming Frames**
275 275  
276 276  To name a frame, simply double-click the top blue part of it. You will then be able to enter a name by typing text directly. Save the new name by pressing the [Enter] key once donce. Warning: please note that when double-clicking a frame to name it, it will play the frame which may move your robotic arm suddenly. You may want to activate the STOP button first to prevent movement when naming frames.
277 277  
278 -=== Timeline Locking ===
266 +**Timeline Locking**
279 279  
280 280  [[image:lss-flowarm-lock.jpg]]
281 281  
282 282  The timeline is locked by default. This means that frames will automatically run from one to the next – you cannot create space in between. Moving a frame past another one will move it along the order in the timeline. If the timeline is unlocked then you can move frames independently of each other and also create gaps of time in between.
283 283  
284 -=== Moving and Resizing ===
272 +**Moving and Resizing**
285 285  
286 286  To move a frame on the timeline, simply click on it and drag it to the time you want it to start. The start time will be displayed as you drag. How frames move relative to each other is determined by whether the timeline is locked (see previous section). To resize a frame grab the right-hand edge and drag it. When moving or resizing the mouse snaps to the nearest unit on the timeline. If you hold SHIFT while moving or resizing no snap will be applied. When the timeline is unlocked then if you hold CTRL while dragging or resizing a frame all frames to
287 287  the right of the selected frame will be moved so that the time interval between the selected frame and the next one is maintained.
288 288  
289 -=== Auto Record ===
277 +**Auto Record**
290 290  
291 291  If you want changes you make to be automatically recorded you can lock the record button in place by double-clicking on it. Now whenever you change the robot position the currently elected frame will be updated. The record button will light up to show that auto record is on. To switch auto record off, double-click on the record button again.
292 292  
293 -=== Copy and Paste ===
281 +**Copy and Paste**
294 294  
295 295  [[image:lss-flowarm-copy-paste.jpg]]
296 296  
... ... @@ -297,17 +297,17 @@
297 297  Sometimes you might want to copy the robot state from one frame to another. To do this we have copy and paste. To copy the data from a frame, select it then click the Copy button.
298 298  To duplicate the data on another frame, select the target frame and click the Paste button.
299 299  
300 -=== Pause Before Frame ===
288 +**Pause Before Frame**
301 301  
302 302  You can insert a pause before a frame commences. This is useful if you want the sequencer to stop and wait for some external event before continuing. First select the frame then click the Operations button and select Toggle Pause Before Frame. A red line will show at the start of the frame to show the pause. To remove the pause select the frame again and select Toggle Pause Before Frame after clicking on the Operations button.
303 303  
304 -=== Remove Gaps Between Frames ===
292 +**Remove Gaps Between Frames**
305 305  
306 306  [[image:lss-flowarm-settings.jpg]]
307 307  
308 308  If the timeline is unlocked then you can instantly remove all the gaps between frames and push them up against each other by clicking the Operations button and choosing Remove Gaps Between Frames from the menu.
309 309  
310 -=== Frame Inspector ===
298 +**Frame Inspector**
311 311  
312 312  [[image:lss-flowarm-inspector-frame.png]]
313 313  
... ... @@ -315,13 +315,13 @@
315 315  
316 316  == Sequencer ==
317 317  
318 -=== Reverse Frames ===
306 +**Reverse Frames**
319 319  
320 320  [[image:lss-flowarm-settings.jpg]]
321 321  
322 322  It's useful to be able to reverse the order of frames in a sequence. To do this click the Operations button and choose Reverse Frames.
323 323  
324 -=== Sequence Playback ===
312 +**Sequence Playback**
325 325  
326 326  [[image:lss-flowarm-play.jpg]]
327 327  
... ... @@ -329,7 +329,7 @@
329 329  
330 330  [[image:lss-sequencer-handle.jpg||height="70" width="241"]]
331 331  
332 -=== Assign an input to a sequence ===
320 +**Assign an input to a sequence**
333 333  
334 334  [[image:lss-flowarm-association.jpg]]
335 335  
... ... @@ -336,9 +336,9 @@
336 336  You can assign an input to a sequence by choosing one in the drop-down list left of the sequence name. By default a sequence does not have a input associated with it. When you click on that box, you will be presented with a list of possible inputs. A sequence can only have one input associated with it. Similarly, an input can only be associated with one sequence at a time. If you choose an input in the list that is already associated, it will be removed from its previous sequence and assigned to the current one. By clicking on the sequence list, you will see which input is associated to each sequence to the right of their name:
337 337  If a sequence is already playing when its associated input is triggered, it will ignore that input and continue playing as normal. If an input that is associated is triggered when a different sequence is playing, it will be stopped and the
338 338  
339 -=== Decision Frame ===
327 +**Decision Frame**
340 340  
341 -[[image:lss-flowarm-decision-frame.jpg]]
329 +**[[image:lss-flowarm-decision-frame.jpg]]**
342 342  
343 343  At the end of every sequence there is a permanent frame called the decision frame (it is orange for easy identification). Click on the top part (orange) to change the last action of the sequence. There are 3 options:
344 344  
... ... @@ -350,7 +350,7 @@
350 350  
351 351  = Notifications =
352 352  
353 -(% style="width:1037px" %)
341 +(% style="width:1300px" %)
354 354  |(% style="text-align:center; width:450px" %)**Displayed Error**|(% style="text-align:center; width:100px" %)**LED Status**|(% style="text-align:center" %)**Informations**
355 355  |{{lightbox image="lss-flowarm-notification-limp.png"/}}|(% colspan="1" rowspan="2" style="text-align:center; vertical-align:middle" %)(((
356 356  [[image:LSS-UserColor.png||alt="LSS-Error-SafeMode.gif"]]
Copyright RobotShop 2018