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 / 26109
26108  |  26110
Subject: 
Re: Microsoft Robotics Studio
Newsgroups: 
lugnet.robotics
Date: 
Fri, 23 Jun 2006 21:09:34 GMT
Original-From: 
Bruce Boyes <bboyes@systronix./Spamcake/com>
Viewed: 
3384 times
  
At 08:59 PM 6/22/2006, Dick Swan wrote:
It appears to me that this initiative is not really applicable to small
Mindstorms type robots. It seems very much oriented to large industrial
grade applications on relatively expensive robotics platforms. This is
explained in more detail in the remainder of this post.

This announcement appears to be an evolution of the same system that was
announced earlier. There were some earlier emails on this containing a
description of some of the operational problems on a RCX. If you read
http://msdn.microsoft.com/robotics/learn/setuphdwr/default.aspx you can
see many of the problems that they have with the RCX. Look at the
sections titled:
• Communications latency
• Losing commands
• Setting the sensor type
• Queued commands may still run

I just got back from Robobusiness, where I spoke on OMG Robotics Standards
http://www.omg.org/cgi-bin/doc?robotics/2006-06-01

Also I attended four hours worth of sessions on the MS Robotics Studio.

I was prepared to pooh-pooh it as just another
over-hyped lukewarm effort that MS would try to
stuff down our throats. I am not a MS fan, though
we do use Win XP, 2000 and Server at work because
most of the software we must use (PC layout, etc)
is best run under Windows. And really XP has
gotten pretty decent. But I digress.

I've downloaded the Robotics Studio and am
working with it. For the demos you also need C#,
so I got the free Express version. Then since we
want to use Java (the language, not JavaScript
the browser tool) we will use the free J# Express.

I don't want to belabor my answer, and there's a
lot I don't want to say now for competitive
reasons, but here's the short version, based on my initial findings:

I was wrong in my initial assumptions about
MS/RS. It's a very well thought out system,
worthy of a very close and careful look. It's
potentially a powerful and useful tool for
robotics. It's not just something else from the
Evil Empire. It's actually quite "open",
especially for an MS product. Expect to see MS
and/or others open it up further in the very near future. More on that below.

The new piece in this announcement is that Microsoft now has the
solution running on the NXT.

Not Autonomous Operation:
=========================
From the press release: "Microsoft showed working Microsoft Robotics
Studio demos from fischertechnik, LEGO Group, MobileRobots Inc.,
Parallax Inc. and Phidgets Inc." I'm sure these were all systems with
intelligence/control residing in a Windows PC with the robots themselves
simply limited to reporting sensor values and acting on motor control
commands.

Not really.

Non-Windows systems, i.e., those that can't run
some XP .Net framework subset, which is many if
not most current robots, use the PC as a Proxy
with a small amount of your code running on the
robot to talk over some channel (wireless,
ideally) back to the PC. The NXT uses BT, RCX
uses IR (hence all the problems there at 9600
baud and so on), others use 802.11 or whatever.
You just need a similar link on a PC. We will use 802.15.4 for example.

So in the proxy mode, MSRS has access to whatever
services you provided on your robot. Their demos
include motors and bump sensors. MSRS can then
receive asynch events from your bot (example: a
bump sensor hit), and MSRS can then tell the
motors to back away from that bumper. This is
very cool for some simple debugging.

MSRS can also receive a data stream back from
your robot for logging and debugging. I find this very attractive.

Microsoft claims that the Robotics Studio allows for autonomous robot
operation. "Both remote (PC-based) and autonomous (robot-based)
execution scenarios can be developed using a selection of programming
languages, including those in Microsoft Visual Studio® and Microsoft
Visual Studio Express languages (Visual C#® and Visual Basic® .NET),
JScript® and Microsoft IronPython 1.0 Beta 1, and third-party languages
that conform to its services-based architecture." It appears what
Microsoft means is that you can program autonomous robots as long as the
robots are able to run a .NET enabled Microsoft OS!

Again, not really. You can program your (non-
.Net compliant) autonomous robot any way you
want, just as you do now. MSRS simply then,
through the PC Proxy, provides a browser view of
whatever part of your robot you've exposed
through the bit of interface code you wrote to provide a service to the proxy.

What MS is saying is that if your robot supports
.net, then you can run the identical code in the
MSRS simulator and then download and run it on the actual robot.

If your robot doesn't support .net (and none of
our Systronix platforms do, nor do we plan that
they will) then you program the way you do now,
and just use the MSRS for debug, monitor, and optional control.

But, if your robot uses C, C++, or Java, it
should be possible to run the same, or nearly the
same code through the MS Express version of that
language, and then run it on their simulator.
Then you use your normal tool chain to download your code to your robot.

If you look at
http://msdn.microsoft.com/robotics/learn/setuphdwr/default.aspx you can
see that all of the smaller platforms (RCX, NXT, FischerTechnic) all
rely on the standard product firmware with intelligence provided from a
PC connected via IR, Bluetooth or RF wireless to the platforms.

Sort of. Your robot can have as much
"intelligence" as you can program into it,
there's no reason it has to rely on the MSRS for
anything. MSRS does not prevent you from doing
anything on your robot, nor does it suck the
intelligence out of your robot. MSRS doesn't have
to be "in charge" of your robot. It's just
another tool, albeit a very well conceived one.

I also stumbled across the following comment from one of the Microsoft
developers in the Microsoft hosted discussion group at
http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=mi
crosoft.public.msroboticsstudio&cat=en_US_8C6248FF-7269-A8D9-32F8-30501C
8289A0&lang=en&cr=US. [Check the response from Henrik of Microsoft in
the post titled "Absolute Horror") "The other thing to clarify is that
we have no intention of running our bits on MCSs in general. As part of
our tutorials you will see how we can talk to a number of existing
robots just fine through whatever mechanism they use." [I presume "out
bits" means "our code"]. This seems pretty clear that the Microsoft
Robotics Studio will not generate on-board run-time code for NXT, RCX,
etc unless the robotics platform is running a Microsoft .NET operating
environment.

Mostly true, though as I mention above, C, C++,
Java code should compile and run in the MS
simulator as well as on your robot. This remains
to be proven, but that is Microsoft's stated
intent. I intend to work on this as soon as I'm
back from vacation in July. (Which is also the
reason I won't be able to respond to comments or flames next week.)

The video at http://channel9.msdn.com/ShowPost.aspx?PostID=206574 (about
23 to 25 minutes in) shows a NXT demo with PC control via Bluetooth.
Microsoft states that they've implemented a common "contract" between
the RCX, NXT and FischerTechnic (and others) that allows a single common
PC based service implementation to be independent of PC platform. The
two examples on the video are a joystick control to move a NXT robot and
a PC service to drive a robot forward and then turn in a circle. This is
surely a good capability but certainly not terribly radical or even new;
for example, recall the Logo system of Turtle graphics for common
commands for low-level I/O and positioning control.

Agreed, there's no one thing startling or
terribly new about MSRS, it's the integration of
several good-quality current technologies. Here is why it's cool, IMHO:

1) good physics engine built in - you can
simulate elastic or springy joints, with
friction, etc. You can model a 3D surface texture
with different static and dynamic friction per
unit surface area (icy or wet pavement for
example) and then have one or more robots and
other objects run in that simulated space. This
comes out of the gaming industry:
http://www.ageia.com/

2) good simulator, with standard 3D CAD format
input. So in theory at least you can write a
format translator (once) and then import all the Ldraw CAD models.

3) XML data input and output, and a web browser
interface which sits on top of a runtime with
support for concurrency, with intent that other
people can easily write interfaces to other
devices through other communication channels.

The MSRS itself runs on Windows, and MS wants to
sell you runtime licenses (if your robot will use
their runtime). The free eval lets you have five
runtime installs and works through Oct 15 or
until the commercial version releases.

But their robot runtime is supposedly quite
simple, and if you implement its methods on
another system (example: Linux or a Java runtime)
then in theory you get most of the power of the MSRS just by buying the tool.

And, if you write some layer on top of their .net
framework, it should be possible to use the MSRS
with almost anything. I had some extensive
discussions with George of the MS team who
confirmed that is their intent - interfacing to
as many different platforms as possible.

4) Open browser interface (they were asked
repeatedly, and no, it is *not* IE-specific, so
use Firefox, Opera (my favorite) or whatever). So
you can collaborate with people around the world,
all simulating your robot hardware, or sharing a
simulation, or a mixed real-world and simulated environment.

So will MS do a version for Mac or Linux? Who
knows? They were asked and didn't give a direct yes or no answer.

MS wants to throw their hat in the robotics ring,
and there is a need for a tool like this. MS
seems serious about supporting it. They have a
very impressive team of energetic people working
on it. And partners are lining up quickly.

Later in July I will have a website project
(probably at http://community.java.net/robotics/)
detailing how we are using the Robotics Studio on our Vex robotics platform:
https://jvex-robotics.dev.java.net/
since it lends itself naturally to the additional
interface code needed. We'll be adding an
802.15.4 radio to the Vex and the PC for the comm
link. I don't have any axe to grind either way
and plan to report the good as well as the bad about my experience.

I have committed to doing a report and demo at
the OMG robotics meeting in Anaheim in Sep:
http://www.omg.org/news/schedule/upcoming.htm

The NXT interface is already there, and if we get
our NXT kits and can run Java on them, we'll look
at that too. (Given the limits of the RCX CPU and
IR interface I don't see this being very practical on RCX.)

So, you can draw your own conclusions of course,
but if you just dismiss it because it's from
Redmond, you may be doing yourself a major dis-service.

Best regards

Bruce Boyes


------- WWW.SYSTRONIX.COM ----------
   Real embedded Java and much more
+1-801-534-1017  Salt Lake City, USA



Message is in Reply To:
  Microsoft Robotics Studio
 
Microsoft recently announced incremental evolution of their earlier "Robotics Studio" platform. See www.microsoft.com/pr...udioPR.msp x. Soren Lund of Lego is quoted in the press release. It appears to me that this initiative is not really (...) (18 years ago, 23-Jun-06, to lugnet.robotics)

2 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