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 / 25391
25390  |  25392
Subject: 
Re: Why java (or other langs) for Robots
Newsgroups: 
lugnet.robotics
Date: 
Thu, 19 Jan 2006 22:28:22 GMT
Original-From: 
dan miller <danbmil99@yahoo.%IHateSpam%com>
Viewed: 
1706 times
  
--- PeterBalch <PeterBalch@compuserve.com> wrote:

Dan

Type 1 [servos]
Type 2 [subsumption]
Type 3 [high-level] • ...
Brooke's philosopy deals very neatly with levels 1 and 2 but how do CMU
say we should integrate the high-level stuff into it?

The 3-level concept as traditionally taught doesn't really say #2 is
'subsumption' -- that's my perception of it.  Here's an example of typical
course material:

http://www.roble.info/robotics/systems/

I was just making a rough analogy to your "3 levels of robotics work".  The
precise boundaries are of course open to interpretation.

As to how to integrate subsumption, I think of it this way: what  Brooks
calls 'subsumption architecture' is really just a description of a second
level of control on top of the seriously low-level, closed-loop stuff like a
servo PID.  It's things like, "if you're close to the right wall, speed up
your right wheel".

I use this level of control all the time, with higher-level functions
controlling it in turn -- what would traditionally be called the reflective
layer.  The fact that some interesting behaviors can be achieved with only
levels 1 and 2, which is really Brook's insight, is interesting, but does
not replace the idea of planning.  What it means in practice is, if you are
clever, your planning layer can take advantage of some nice 'emergent'
behavior modes.  The trick is in understanding those modes, and applying the
correct ones to situations at hand (and being able to predict and control
them).

As for "one ring to bind 'em" -- I think languages typically have two
distinct parts, which are often confused in discussions.  One is the syntax
-- the way you tell the language what to do.  The other could be called the
semantics (not a perfect term, but it will do) -- what the language is
*actually* doing, regardless of the sytactical way you say it.  The fact is
that different problem domains require different semantics to be usefully
tackled.  Whether they really require different syntax is not so clear to
me; I think the perception that they do may be due to accidents of history,
rather than fundamental needs.

Someone invents a language to solve a problem; they come up with a syntax
(usually a rather personal choice, based on languages they've seen before,
and aesthetic preference) -- then they attach it to the semantics that work
for the problem.  If it's useful, it catches on, and pretty soon everyone in
domain X is used to using the tool, and associates the syntax with the
semantics.

If I'm right, it would be reasonable to assume a single syntactical style,
with enough flexibility, could express a bunch of different semantic
paradigms.  The advantage of this would be that issues that are not directly
related to the problem space -- code analysis, debugging, standard I/O,
support libaries, IDE's, etc -- could be unified.  It would make
transparency across these layers more obvious -- someone skilled in one area
would be better prepared to analyse what's going on in another.  It also
opens up the possibility of automating some aspects of the layering -- ie,
having the system decide what should run on the controller, rather than it
all being hard-coded at compile time.

I realize this may sound like overkill for someone sitting at home making a
Lego 'bot.  My interest in this stuff is at a professional level, with the
idea that there are dozens of people working on very sophisticated systems.
What does this have to do with us, today?  Well, I would suggest that if you
told someone at the Homebrew Robotics Club in 1975 that in 30 years, a
descendant of their 6502 with 1K of ram would have 1 gigabyte of ram, 100's
of gigabytes of disk storage, run at > 2 gigaherz, running operating systems
and applications with millions of lines of code, representing thousands of
man-years of software development, they might have looked at you funny.  I
think we're in a similar place in robotics right now.

This is not just a silly plaything, IMSHO.

-dan



Message is in Reply To:
  Re: Why java (or other langs) for Robots
 
Dan (...) (at (...) Wow, that's nice to hear. Brooke's philosopy deals very neatly with levels 1 and 2 but how do CMU say we should integrate the high-level stuff into it? That has always been my difficulty with subsumption architecture. It's fine (...) (19 years ago, 19-Jan-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