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.!spamless!net>
|
Viewed:
|
796 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 (...) (22 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 (...) (22 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
|
|
|
|