FIRST Tech Challenge Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

What do you think of the new LabVIEW for LEGO MINDSTORMS?

Hey guys we released a new version of LabVIEW for LEGO MINDSTORMS this year customized for the NXT as the FTC Toolkit. We would love to hear your feedback.

What are you favorite features?

What do you like about LVLM?

What would you imporve or change about LVLM?

Find any Bugs?

What parts do you find challanging?

What new features would you like to see?

Just a reminder here are the specific features add for LabVIEW for LEGO MINDSTORMS and the FTC Toolkit.

LVLM Features

     • Getting Started Window

     • Video Tutorials

     • Teach Me

     • Challange Me

     • Robot Project Center

     • Schematic Editor (replaces the motor configurator)

     • Joystick Editor

     • NXT Pallete (Functions)

     • NXT Watchdog has been integrated into the wait funtion.

FTC Toolkit 2011-2012 Contents

     • Field control system (FCS) tools

     • Teleop code generation tools

     • Autonomous mode templates

     • NXT Fantom driver

     • Samantha Module Support

     • LVLM patches & updates

     • FTC programming challenges

I will read through all of the comments and bring the best ideas directly to our R&D team, who has allreayd started work on next year's software.

Thanks

Hunter Smith

National Instruments -  K12 Specialist

0 Kudos
Message 1 of 4
(14,193 Views)

It ROCKS!  Demonstrated this a couple weeks ago and returning kids and mentors were drooling to get their hands on it.

0 Kudos
Message 2 of 4
(6,406 Views)

We are new to labview this year. In the past we have used Robot C. Here are some comments from our team:

1) The kids like the schematic editor and the joystick editor. These two tools help bring understanding and clarity to what the software is doing.

2) The teleop code generation is also helpful. This helps us get the correct blocks on to connect to the field control system.

3) I still have not figured out what a wait in a loop does. It seems like the code in the loop executes and then the wait executes. This means my loops vary in the amount of time per period. For example, If my code takes 10ms to execute and I have a 20ms wait, the loop will run every 30 ms. Is this what happens?

4) The timed loop looks like what I want, but it does not work on the NXT. Bummer. This loop is nice to have if I want to build my own PI (Proportional Intergral) controller VI or my own delay VI.

5) The feedback node also does not seem to work. If I have an add block and I wrap the output back to one of the inputs, Labview adds this feedback node to break the algebraic loop. Nice. To bad deploy to the NXT brick gives an error on this block.

6) Is the shift register on the loop the only way to keep state or history when I deploy to the NXT? What a royal pain in the backside.

7) I have my students visulize the autonomous mode with a very simple state machine on the white board. The only way I can seem to implement a state machine in labview is with the case structure and with a shift register to maintain the state. Is there an easier way to do this? I am disapointed that a CAD design tool does not have a better way to design and visulize state machines.

😎 I can not understand the difference between VI for nxt and VI for computer target. It seems like the VI for computer target runs on a combination of the NXT brick and on the host computer. The frame update rate is really bad in this mode. I guess that is to be expected. Many blocks that work in this mode do not work in the VI for NXT mode. I found this very frusterating. I am sure you have a clear description of each of these modes. I just have not found it yet.

9) Labview seems to crash quite a bit on my Windows 7 and on the MAC OS 10 machine. The crash seems to happen most often when I have been working for an hour or so and I try to access help.

10) Labview on the MAC has a huge (2-3 second) lag when we drive the robot using a joystick and blue tooth. This does not happen with Windows 7. Our school only has Mac computers. This is a big issue when we test the robot driving mode. I have to bring my home laptop for testing. Any ideas on this?

11) Sequencing of executable code is strange. When it does not seem to run in the right order I have had to add stacked sequence structures. Labview does not seem to follow basic data flow rules. This could be just because I am new to Labview and don't quite understand what it is doing in the background. I do know that adding the stacked sequences have fixed the ordering problems I have had. It just seems like I shouldn't have to use them.

12) I have not figured out a good way to debug code on the NXT brick. Is there a white paper on the best way to do this? I have been writing information out to the LCD screen. The debug button in labview does not seem to do anything when I have deployed to the VI for NXT solution. Does anyone have any suggestions?

I would love to hear any suggestions that you have to help me with remembering states, with state machine implementation, and with sequencing.

On a scale of 1-10 I give Labview a 6. I love the schematic editor, the joystick editor, and the teleop code generator. I love Labviews ability to visulize the algorythm. Control laws are difficult because of the state history issue. State machines are difficult because they don't exist in the tool and must be built with case structures.

Message 3 of 4
(6,406 Views)

Hi dlacres,

First off thank you for the very honest and thorough evaluation of LabVIEW for LEGO® MINDSTORMS.

3) Your understanding of the wait function in a loop is correct.  If you want to something to always run periodically you can use wait until next millisecond multiple.  This takes in account the amount of time it takes to run your code, so if your wait until next millisecond multiple has a 30ms wired to it, its going to try and run the loop every 30 milliseconds even. That means if the code runs for 10ms the wait will be 20ms.

4)  Timed loops are really over beneficial in Real-Time applications where you need very accurate timing, but necessarily high loop rates.  This isn't needed for NXT programming and probably would just add more complexity than is needed.

5) I think feedback nodes are unsupported.  You could use shift registers in a loop to get the same functionality.

6) Its the most effective and LabVIEW like way to do so.  Using local variables gets messy fast.

7) State machines are very effective for autonomous mode.  Your idea of creating a state machine in LabVIEW with a case structure and while loop is spot on.  More details on creating one can be found here: http://zone.ni.com/devzone/cda/tut/p/id/3024/.  While they don't look exactly like a flow diagram I believe they still are pretty easy to understand in terms of state and state transition.

😎 You can tell what mode you are in by looking in the bottom left corner of the VI.  If it is white then the VI will be running on your computer and sending commands to the NXT.  If it is orange then the VI will compile, download, and run on the NXT.

9) This isn't good.  We've been working a lot of stability lately, and LabVIEW 2011 is more stable, but you guys are on 2010.

10) Use a USB dongle that comes with your kit rather than the built in bluetooth card in your Mac.  This should improve the lag.

11).  Sequencing is best done by running the NXT wire between NXT blocks for individual functions, and using state machines for sequencing collections of code.  This leads to cleaner, more flexible code than flat or stacked sequence structures.

12) This is a tough one.  You can get creative and use the NXT screen, or run your program on your computer and send command to the brick (see 8).  This will allow you to use tools like highlight execution and probes. 

Again, very fair and honest review.  Thanks a lot for the great feedback. 

Mark
NI App Software R&D
0 Kudos
Message 4 of 4
(6,406 Views)