Subject:
|
Re: Why java is (not) bad for Mindstorms
|
Newsgroups:
|
lugnet.robotics
|
Date:
|
Tue, 24 Jan 2006 07:14:06 GMT
|
Original-From:
|
Mr S <szinn_the1@%spamless%yahoo.com>
|
Viewed:
|
2017 times
|
| |
| |
-- pisymbol <pisymbol@gmail.com> wrote:
[SNIP}
> Maybe this is all crazy, I'm not sure, but it seems
> with Bluetooth, passing
> along the logic via messages to a more powerful host
> makes a lot of sense to
> me... (provided the messages are easy to consume and
> produce, obviously trying
> to parse XML on the tiny NXT may be a bad idea).
>
> -aps
If I'm chosen as the one of the 100, this is what I
will work on, using and abusing the BT communications
on the NXT. Right now, I'm working at using the RCX
Ir-I2C mindsensors.com interface for utilizing the RCX
in the way that you describe using the NXT via BT.
First by adding stuff to the RCX vai a PIC (via I2C)
for wheel encoders and sonar sensors, then by
connecting the RCX to a laptop via RF link (via the
mindsensors.com I2C interface). Obviously, the Ir
portion is slow baud rate, but should allow much of
the functionality that you have described. This
functionality, in effect, turns the RCX or NXT into a
very smart I/O processor. I believe that it is
possible to use this functionality (including the NXT
out of the box) to map a room using sonar, and holding
the map on the laptop, utilize this to control the
robot with point and click control. It should also be
possible to integrate GPS into the mapping/map and
allow NXT owners to create crude security robots, or
robots that can tell you where the cat is, any time of
the day via a web interface. (presumed to use a heat
sensor/audio over BT) While that sounds like way more
than the RCX could have ever done, the BT to laptop
function allows this.
I don't think that a smart I/O interface requires the
NXT to run Java or anything more than what it natively
has. The programming language is as much a convenience
for the programmer as it is a tool to get the tightest
byte-code possible.
This gives the hobbyist a true multiprocessor approach
to using their robots, and that is why I want to be
one of the NXT testers.
Yes sir, I'll open the NXT box, build a suitable
robot, get the BT working, and take off from there. I
would dearly love to have a sonar map of my house :)
even if it takes a week to get it. At the point that
the NXT can provide such functionality, there is no
reason for colleges to not buy the NXT for classes...
in bulk.
I don't know, but assume that the NXT will be able to
take sonar readings, correlate the polar coordinates
to X,Y and relay this over the BT relative to some
starting marker, as well as keep the robot straight
using the wheel encoders, thus making the sonar
mapping process rather straight forward, and single
matter of having software that will take the readings
and plot them on a map in real time.
At that point, higher level programming on the laptop
can tell the robot where to go, and keep track of
where it is via the map function. This is my goal
anyway, with or without the NXT. The robot that I've
built for this is capable of carrying a WiFi camera,
thus giving the laptop access to vision data that is
coordinated to the navigation data and sonar mapping
data.
With some luck (and spare time) I should be good to
go.
Meanwhile, none of this is helped or hindered by what
language is used to create RCX/NXT programs. I'll be
using a different language to program the PIC also. I
think its not overly useful to worry about what
language is on the NXT when you can't use Java for
everything, why worry if its not on this device or
that? I know that isn't quite the point of the
discussion, but as a tool, redesigning it (the NXT
programming environment) is not the most useful way to
spend your (my) time. If you choose to try it, go for
it and good luck.
Yes, if everything could use Java, it would probably
save me time, but then trying to make everything use
Java is going to take more time than learning several
languages IMHO. There are enough C like interfaces and
languages that a person with a will, will find a way.
By the way, with limited resources on the NXT or other
uC, *WHY* would anyone want to pass XML messaging? In
a closed system where only I will be looking at the
code, there is a lot I can do with 256 message types,
an address field(s), some data, and a CRC. Who needs
human readable tags? If we are talking about 45 people
working on a massive datawarehousing project with 12+
applications involved, sure XML makes sense. The NXT
is not likely to be involved in such a project.
I guess I just don't see the advantages of putting
bloat-ware on a resource limited system. Embedded
systems should never have to suffer the burdens of
translating XML, unless that system is made
specifically for that. I'm pretty certain that Cisco
routers and switches don't use Java... and for a good
reason. In the end, I think its best to use whatever
you have at hand to get the best possible performance
from the hardware. Java is not always the answer. By
virtue of the VM architechture, it is bloated compared
to straight forward byte code.
YMMV
Sorry for the long post...
S
|
|
Message has 2 Replies: | | NXT + BlueTooth + PC (was: Java Baad)
|
| Ditto to pretty much everything on this thread. My present robot has a PC running Linux talking to an RCX over IR, using my own (not XML!!) message protocol. For a look at how this can play out, check out what these guys did with some NSA money: (...) (19 years ago, 24-Jan-06, to lugnet.robotics)
| | | Re: Why java is (not) bad for Mindstorms
|
| (...) I think this would be a nice project and prove very useful. (...) I'm not really advocating Java or any language. Personally, I think Java is in appropriate for low-level programming and one is probably best off with C/asm. However, in this (...) (19 years ago, 24-Jan-06, to lugnet.robotics)
|
Message is in Reply To:
| | Re: Why java is (not) bad for Mindstorms
|
| (...) Well my understaing of JIT compiler is that its a part of the actual runtime so I'm not sure how it would be on the PC?! Though you got me thinking (dangerous), perhaps the best way to program the NXT is not to run a binary but instead use an (...) (19 years ago, 24-Jan-06, to lugnet.robotics)
|
25 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
|
|
|
Active threads in Robotics
|
|
|
|