Pages: [1] 2   Go Down
Author Topic: Arduino + Lego NXT  (Read 28811 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 1
Posts: 27
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi everyone!

I'm proud to introduce you to... Arduway, a robot made of Arduino and Lego NXT components.
I'm releasing soon a software library to control LEGO NXT motors and a few sensors I have used: it's not as well documented as it could but I think it will still be better than nothing...



A short movie is coming soon as well!
Logged

Austin, TX USA
Offline Offline
God Member
*****
Karma: 5
Posts: 997
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Outstanding!  Thanks for sharing.  I look forward to the collateral and libraries.

M
Logged

0
Offline Offline
Newbie
*
Karma: 1
Posts: 27
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Video:
Hope you enjoy  smiley
Logged

Manchester (England England)
Offline Offline
Brattain Member
*****
Karma: 634
Posts: 34562
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Now that is impressive well done.  smiley-grin

The last 30 seconds of the video is just black, is that right?  :-?
Logged

New Jersey
Offline Offline
Full Member
***
Karma: 0
Posts: 193
Ard at work
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Nice! Thanks for sharing :-)
Logged

----------
Mathieu

0
Offline Offline
Newbie
*
Karma: 1
Posts: 27
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I'm proud to announce that the library I've created, arduino2lego, is now on Sourceforge:
http://sourceforge.net/projects/a2l/

Since it's not well commented, if you have any questions about hardware/software, just ask and I'll be glad to explain what I've done  smiley-wink


PS: the video is all black at the end... sorry...
Does anyone know how to crop it without losing comments, views?
« Last Edit: September 19, 2008, 02:17:02 am by arduino.poet » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 39
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I'll bite. How are you measuring the tilt?  A accelerometer, a gyroscope or both?  Or, are you doing it with distance sensors?

Tom
Logged

0
Offline Offline
Newbie
*
Karma: 1
Posts: 27
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The tilt is measured by a gyroscope (Epson).
The gyroscope tells angular speed so integration is needed to obtain actual angle.

Datasheet(s):
http://ndap3-net.ebz.epson.co.jp/w/www/PDFS/epdoc_qd.nsf/f5af260ddc5fb8ed49256a9c001d58b2/6c3c798debd98cfe492571f1000ff2dc/$FILE/XV-8100_E082.pdf
http://www.epsontoyocom.co.jp/english/product/Sensor/set01/xv8100cb/index.html
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 113
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

and how do you correct the drift ?

PS great work!
Logged


0
Offline Offline
Newbie
*
Karma: 1
Posts: 27
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The drift is not evident in the first moments of functioning so it was satisfying enough for our purpose.
I tried anyway to correct it (to make the robot stand up hours and hours) using a band-pass filter (instead of an integrator) but it was not working as well as one would expect.
...Are you aware of any other method?

It would certainly be better not to have to integrate: this would avoid the integration drift.

As a conclusion... if you're thinking of creating your own Arduway think of replacing the gyroscope with a compass that directly returns the angle.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 39
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
..Are you aware of any other method?

To do it right, it sounds like you need an accelerometer, too.  David Anderson provides a pretty detailed description of how he did this on his nBot web site

He explains, "The gyroscope and accelerometer are combined with complementary filters to provide an inertial reference sensor. The ADXL202 accelerometer provides accurate static tilt information, when the robot is not accelerating. The gyroscope can be integrated to provide accurate dynamic tilt information, but the integration tends to drift over time. Combining the two sensors provides a robust inertial measurement."

But, there are apparently a number of different ways to make a balancing robot.  I've heard of at least one person who managed to do it using distance sensors to figure out the tilt based on the distance of the sensor to the ground.  

Logged

0
Offline Offline
Newbie
*
Karma: 1
Posts: 27
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

That's interesting!
Very nice idea (and very nice implementation!).

In my opinion an angle sensor can be enough (it certainly is enough in Matlab simulations).... and it is certainly less expensive than two sensors (BTW, I'm saying that because cheapness was one of the aim of the project).

The robot works pretty well even with only a gyroscope... if you start your own project keep in mind that an angle sensor (or maybe gyro + accelerometer) is better.
Logged

Forum Administrator
MMX
Offline Offline
Edison Member
*****
Karma: 37
Posts: 1139
hallo kompis
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

you've been blogged:

http://arduino.cc/blog/?p=89

/d
Logged

0
Offline Offline
Newbie
*
Karma: 1
Posts: 27
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thank you very much!  smiley  smiley  smiley
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 2
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Well done,
Its a really nice project and great platform for control scheme design.

I have one question if you don't mind me picking your brain. How did you do the numerical integration? On the arduino itself? or integrate the signal before the arduino a/d?

If on the arduino what algorithm did you use? and what time step did you use?

Thanks and well done again.

David
Logged

Pages: [1] 2   Go Up
Jump to: