To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.roboticsOpen lugnet.robotics in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / 23717
23716  |  23718
Subject: 
Robolab Data Acquisition
Newsgroups: 
lugnet.robotics
Date: 
Wed, 16 Mar 2005 21:09:28 GMT
Viewed: 
989 times
  
The objective of this note is not more input to the recent near
"religious" thread of Robolab vs. NQC (or other programming
environments)!

My objective is to highlight the incredible data acquisition and
analysis aspects of Robolab. If you're not interested in this
aspect of Robolab, simply stop reading now.

If you're a member of this list your Mindstorms orientation is in
building autonomous Robots. That's not the focus of Robolab.
Robolab is a tool for teaching science to kids; autonomous robots
are a fun application but not the primary mission of Robolab.

In teaching science, Robolab uses Mindstorms as a data
acquisition tool. Consider the "physics lesson" concerning
acceleration, speed, distance, etc and the various equations
involved. Student experiments are to experiment with real project
and compare against theoretical results. Student exercise might
be.

*  Open a new Robolab project.

*  Write a text description of the project. Objectives.
Methodology. Etc. This is easily stored in Robolab.

*  Build an unpowered robot containing a rotation sensor
that can roll down an inclined plane. Include some photos of the
robot into the project, captured with the Lego camera (or other
PC cam).

*  Periodically sample distance traveled vs. time as the
robot rolls down the inclined plane. The Robolab program to do
this is just two icons: "define dataset N as a log of rotation
sensor 'x' values" and "start logging measurements on dataset 'N'
every 'xx' milliseconds". This would start logging as soon as
'run' button is pressed so maybe a third icon "wait for rotation
sensor to change value" is needed before the "start logging"
command.

*  Maybe include a video of the 'robot' in action as rolls
down the ramp and store in your project file.

*  Upload samples to PC (one icon). Convert distance
traveled measurements to velocity and acceleration (using a
couple of Labview icons that operate on arrays). Plot these
parameters using one of the standard graph formats, or else
customize your own plot (another single icon). Compare
measurements against theoretical performance and include this as
another line on your graph (a handful of icons to define the
theoretical results and include in your graph). Save this
"program" so that it can be re-used for subsequent experimental
runs.

*  If you're a high school or college student then maybe
you want to use another few standard icons to analyze observed
vs. predicted results using standard statistical analysis to test
relationship fit.

*  Make notes and observations and save in your project.

*  Repeat multiple times for various incline angles.

*  Print and produce report to hand-in.

You're one of four 12-year old students in your team. You have a
two-hour lab to start the above experiment and hand in your
completed results. Can you think of another program or
application where this would be a realistic objective?

Robolab has terrific data acquisition and logging functionalities
that build on top of the RIS datalog. Some of capabilities
include:

*  Multiple different datasets can be defined. Each
dataset captures a single variable. I think the limit is five
datasets.

*  For each dataset, you can optionally store a timestamp
with the logged value.

*  Multiple modes of triggering logging. These include:
when touch sensor is pushed; by an icon in a user program; when
value changes; or automatically on a periodic basis (with a
single icon Robolab will create a new task that loops logging
datapoints with a delay (from 10ths of a second to minutes)
between points).

*  Limit the number of points in a dataset so that a
single dataset doesn't consume the complete datalog.

*  Automatically 'create datalog' at maximum possible size.

*  Single command for datalog upload into standard Labview
datasets. Labview is the base engine that Robolab is built on.

Labview is a professional data acquisition and analysis system
used by 100s of 1,000 of professional who typically are not
computer scientists. Imagine the NASCAR mechanic who wants to log
50 (or 100) different measurements from within the car during the
race and then subsequently upload into a PC for a wide variety of
ad hoc analysis. He's not a computer scientist or programmer and
is very content with Labview's graphical icon programming
language. Labview has extensive capabilities in this area for
both the data acquisition and data analysis. Certainly this is
what you'd expect from a company (National Instruments) whose
core mission is data acquisition and you've had 100 programmers
working 15 years on the project (I made these numbers up but
they're probably in the right ballpark; a web search shows NI has
over 1,000 programmers on staff).

Robolab provides a wrapper around Labview to give simplified and
pre-packaged access to its data acquisition and analysis
capabilities suitable for young students. Of course, I think you
can always gain access to full Labview functionality if you're a
power user.

Robolab + Mindstorms, at a combined price of about $250, has to
be an incredible value for data acquisition/analysis for student
analysis. I suspect if it had more memory (flash memory
expansion) it would find much utility and deployment as a
professional (vs. student) product in this market.

I've got a professional software development background
experience and I personally prefer C/NQC for programming rather
than Robolab. However, my latest project was a "Legway" using two
standard Lego sensors controlled via a PID algorithm. The core
code is maybe 20 lines; this wasn't where I spent my time. The
biggest amount of time was spent adjusting the PID coefficients
to get smooth operation. So I promptly added 150 lines of code to
acquire data (error, motor power levels, min/max values for
error/derivative/integral) during its balancing and then after it
fell down would interrogate these values on the PC, analyze them
and adjust the PID coefficients and try again. In hindsight,
Robolab's capabilities could have greatly simplified this stage.
I also suspect I could have found a proven, debugged Robolab
"icon" that contained a complete robust PID implementation where
I could have simply fed in single variable containing the current
error and my three PID coefficients and the "icon" would have
automatically calculated derivative, integral and correction
results.

Now of course, Robolab is also used for building autonomous
robots. And this capability is also taught to students. But I
suspect in general that most of their programs are most likely
less than 20 graphical icons or 20 lines of NQC code.



Message has 3 Replies:
  Re: Robolab Data Acquisition
 
(...) Perhaps I'll actually get an updated copy of Robolab (I gave it up due to no OSX version, now rectified, and a steep learning curve (for someone raised on FORTRAN and BASIC). I *love* the datalog (with one exception, see below), but the fact (...) (19 years ago, 16-Mar-05, to lugnet.robotics)
  Re: Robolab Data Acquisition
 
Hey Dick, Excellent description of Robolab's data acquisition and analysis toolset. I hope that you'll consider attending and speaking at the Robolab conference in Austin this summer! Annual ROBOLAB Conference (August 15-17th, Austin, Texas) (URL) (...) (19 years ago, 16-Mar-05, to lugnet.robotics)
  Re: Robolab Data Acquisition
 
(...) Yeah - I have no doubt that this tool has value for non-programmers who need to rapidly stitch together some instruments to perform an experiment. But that's not what programming is about. (...) Exactly. (...) ...and at that level of (...) (19 years ago, 17-Mar-05, to lugnet.robotics)

6 Messages in This Thread:



Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR