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 / 20242
20241  |  20243
Subject: 
RE: RCX & RIS, a fading glory?
Newsgroups: 
lugnet.robotics
Date: 
Tue, 4 Feb 2003 18:23:02 GMT
Original-From: 
Andrew J. Huang <ajhuang@velocitus.net*ihatespam*>
Viewed: 
579 times
  
Marco,

Yes, I agree that logical mappings will help the
problem.  But consider this example:
    You have motors with the friendly names of
motor1.. motor20
    You write a program and specify the
associations:
        left arm = motor1,
        right=motor2,
        etc.

I believe that you can't get around this kind of
association.  Each device has to have a unique
friendly name (two devices of the same name cannot
be used in the one system).  Each program must
identify the exact device it is to work with,
since it does not know the location.

Now, suppose I say, "Whoa, great robot dude!  Can
you send me the program?"
In order for this to work, I need to name my
motors motor1... motor20 (at least in the range in
which the program uses motors).  I cannot have
named them, for example moteurUne, moteurDeux, ...
nor motoren1.  This is a little vexing, but it can
be done.

It works so far.  But I decide to have twins and
I've used up motors motor1..motor5 and I want to
build it on motor6-10.  The program linkage will
need to be redone.

Or to take this farther, even, I've built a robot
that builds robots.  The factory robot ("Mom")
assembles and programs them.  Now we're really
stuck.

This system essentially destroys component
plug-n-play: a motor is not a motor anymore.  If
you want to retain the ability to swap components,
you have to have a location-aware system.
Type-aware helps but isn't necessary.

One way to do location aware is to make every bus
brick a network node and source-route packets
between the device and the RCX.  Then, you write
your programs based on location.  For example you
create a packet that specifies a 10 revolution CCW
rotation and send it:
    - down the neck-link,
    - out the first right appendage link,
    - past the rotator cuff node,
    - past the elbow-joint node
    - number 1 in the daisy chain
This would then pull/release a pair of tendons
that would un-grasp the thumb.

Note that the human body is NOT built this way.
We're hardwired from the brain to the muscle
fibers.  We're sort of plug and play, though it
takes some drugs to make it work.

Just some thoughts.

Andy

-----Original Message-----
From: Marco Correia
[mailto:Marco.Correia@soporcel.pt]
Sent: Tuesday, February 04, 2003 10:27 AM
To: 'lego-robotics'
Subject: RE: RCX & RIS, a fading glory?


Andy,

This won't happen if the Device_ID to
Device_Friendly_Name mapping is as
generic as "motor1", "motor2", "light1",
"lightsensor1", "irdar1",
"rotationsensor1", "rotationsensor2" and so on...

Then, the *specific* Device_Friendly_Name to
Robot_Device_Location mapping
should be done at the source code level (as it is
done now, when I say the
the LEFT_ELBOW = OUT_1).

Today, you have to pay attention to which
motor/sensor is connected to which
port so everything goes ok with your robot.

With the system we are talking about, you should
pay attention to what
devices are where in the robot, and not to what
port are connected.

Just by looking at the "friendly name" written by
you on the device instead
of looking at the port letter/number.

mc.

-----Original Message-----> Andrew J. Huang
From: PeterBalch

You come home from the shop with your brand new • motor. You plug it into
your cpu "brick" and plug the cpu into your PC. • You select the PC menu
command New Hardware. The PC talks to the cpu, • the cpu talks to the bus and
asks everyone whose attached to identify • themselves. The PC sees the new
motor and says 'You've got a new "motor". What do • you want to call it'. You
take a felt-tip and write on the motor "XYZ" then • tell the PC 'It's called
"XYZ"'. From now on, the PC always refers to that • motor as XYZ. No-one need
ever see the long id number 2908347525.

This is fine for computer systems that change
infrequently, but for
lego that is intended to change often, it's not
ideal.  There is a linkage between the programming
and the specific motors or sensors.  If you take
your machine apart and then rebuild it later, the
same devices must be used in the same locations;
switching the original drive motor for an arm
would have serious functionality issues!

--
Did you check the web site first?:
http://www.crynwr.com/lego-robotics



Message has 1 Reply:
  RE: RCX & RIS, a fading glory?
 
(...) hmmm... I prefer the method using a High_Level map in the source code or as a .h file ///.../// #IFDEF _TWINROBOTA_ #INCLUDE 'TwinRobotA_devmap.h' #ENDIF #IFDEF _TWINROBOTB_ #INCLUDE 'TwinRobotB_devmap.h' #ENDIF #IFDEF _TWINROBOTC_ #INCLUDE (...) (21 years ago, 6-Feb-03, to lugnet.robotics)

Message is in Reply To:
  RE: RCX & RIS, a fading glory?
 
Andy, This won't happen if the Device_ID to Device_Friendly_Name mapping is as generic as "motor1", "motor2", "light1", "lightsensor1", "irdar1", "rotationsensor1", "rotationsensor2" and so on... Then, the *specific* Device_Friendly_Name to (...) (21 years ago, 4-Feb-03, to lugnet.robotics)

8 Messages in This Thread:


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

This Message and its Replies on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

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