Wednesday, July 28, 2010

Quadrotor Balances Inverted Pendulum

I really like these new Quadrotor robots that are beginning to be shown on the web more these days.  These things are extremely stable, and capable of doing some really incredible things.



via Make

Monday, July 26, 2010

My Current Project

Yes, I am still working on MARVIN, but for the last few weeks I have been spending some time on a really neat project.  It is an Microsoft Excel spreadsheet that converts old RTTTL ringtones into a language that the NXT can read.  I have converted about 100 songs so far, and I keep tweeking it to make it work better.  Right now it converts to RobotC and NXC.  I hope to add more languages soon.

Here is a screenshot of the file.

Sunday, July 25, 2010

Even more impressive

He took something impressive and made it even more impressive.

Monday, July 19, 2010

Quadrapult

This amuses me.

Saturday, July 17, 2010

MicroMario

MicroMario is a little platform game with 16 levels and is less then 30k.
The game runs on the standard NXT firmware and is programmed in NBC. It uses custom graphics code with a double buffer, horizontal and vertical scrolling, and XOR sprites... Everything is compiled into one single file.



If you're interested then you can download the source code here. The zip also contains the compiled version of the game so you can just upload the .rxe file.

Friday, July 16, 2010

Monday, July 12, 2010

What Should Robots Look Like?

Over at BotJunkie they have a post about a survey that was taken at a home and living exhibition in Geneva, Switzerland.  The survey asks non-robotics people what they think a "robot" that is used in the home should look like.  Some people are surprised to learn that people don't want robots to look like people.  In fact many robot builders are relying on the premise that a robot that looks like a human will be more natural to use and interact.  I have always said that I don't want robots to have humanlike faces because of the myriad of cues that go with verbal communication that we use.


Then I go over to Make and find a video of a NYTimes reporter trying to talking to a "robot" person.


Creepy.

GrabBob

Just found a video of a very nice robot arm, it's got very cool controls...



Bob also has a blog with some more detailed information.

Sunday, July 11, 2010

Building a biped: Putting it all together

After building three biped robots the goals for
the new model where:
* A good power to weight ratio: a small robot with a lot of degrees of freedom
* Fully automated calibration (I don't want to put it in a start position)
* Speed, both mechanical and software
* Strength, the robot must be able to walk

By using standard NXT motors I was able to reduce the number
of gears needed in the legs. The arms and body of the robot are
powered by power functions motors and micro motors.

The robot is fitted with 5 tilt sensors which are used to calibrate
the position of the motors in the legs. The motors in the arms use
friction gears and touch sensors to reset their position.

To control all functions of the robot three NXT bricks are used. One
brick controls six motors on the left side, one controls six motors on
the right side and one brick controls the COG shift and the head.
Bluetooth is used to communicate between the NXT bricks.

Once the hardware was finished I started programming the software.
The bricks which control the two sides of the robot each run a
state machine. The states are controlled from the master brick.
This makes it very easy to program. As long as the protocol
to communicate with the slaves does not change the slaves don´t
need to be updated, updating the master is all that is needed
to reprogram the robot.

The first routine I programmed was "standing". This might sound
strange but standing is actually a dynamic proces. The robot has
to respond to external forces like being pushed.

Just standing seems simple but it gave me some unexpected results.
When the input power of the motors was not set right the motors
started to resonate and the robot crashed.

After the standing routine was completed I extended the functionality
by programming a routine to lift the legs. The stabilization of the
legs is done with tilt sensors.

To fix the motor overshoot I implemented PID controllers. Programming a PID
controller is easy, tuning it is a different story, I am still working
on it.

LegoAsimo model 4

Here's a video of some guys who already fixed it:

Saturday, July 10, 2010

Ringtone Files

Ok, I think I can share some RobotC ringtone files with you (I hope).  Click "Read More" just below this text.  There, you will find one huge RobotC program that contains 42 ringtones that I converted using my Excel file.  You can either go through it and select the ringtones you want, or copy the entire file and run it on your NXT.  Let me know how it works!

Transforming Lego

Hey, check this out.  It's a Transformer that starts as a car, then using a single motor goes to a standing position.  It doesn't appear to be finished, but it is definitely a great start.

Friday, July 9, 2010

Ringtone Converter for RobotC

If you like to play music on your NXT, if you use RobotC and have access to Microsoft Excel, have I got a deal for you!

I have created an Excel spreadsheet that will very easily convert RTTTL (Ring Tone Text Transfer Language) ringtones into RobotC code with very little effort. RTTTL ringtones are the original ringtones that were just beeps and tones.

The Excel file contains over 300 ringtones ready to convert just by selecting which one you want and then putting the code into your file. You can also add your own ringtones that you may already have or have found on the ‘net. I have found thousands of free ringtones. It will only work with RTTTL format files and RobotC.

Some of the files need considerable tempo adjusting to sound right, so I have added a way to adjust the tempo of the music.

Here is a sample of the output of the file: (yes, this code works, try it out!)

nxtDisplayCenteredTextLine(0, "Star Wars");
PlayTone(695, 14); while(bSoundActive);
PlayTone(695, 14); while(bSoundActive);
PlayTone(695, 14); while(bSoundActive);
PlayTone(929, 83); while(bSoundActive);
PlayTone(1401, 83); while(bSoundActive);
PlayTone(1251, 14); while(bSoundActive);
PlayTone(1188, 14); while(bSoundActive);
PlayTone(1054, 14); while(bSoundActive);
PlayTone(1841, 83); while(bSoundActive);
PlayTone(1401, 41); while(bSoundActive);
PlayTone(1251, 14); while(bSoundActive);
PlayTone(1188, 14); while(bSoundActive);
PlayTone(1054, 14); while(bSoundActive);
PlayTone(1841, 83); while(bSoundActive);
PlayTone(1401, 41); while(bSoundActive);
PlayTone(1251, 14); while(bSoundActive);
PlayTone(1188, 14); while(bSoundActive);
PlayTone(1251, 14); while(bSoundActive);
PlayTone(1054, 55); while(bSoundActive);
wait1Msec(280);
PlayTone(695, 14); while(bSoundActive);
PlayTone(695, 14); while(bSoundActive);
PlayTone(695, 14); while(bSoundActive);
PlayTone(929, 83); while(bSoundActive);
PlayTone(1401, 83); while(bSoundActive);
PlayTone(1251, 14); while(bSoundActive);
PlayTone(1188, 14); while(bSoundActive);
PlayTone(1054, 14); while(bSoundActive);
PlayTone(1841, 83); while(bSoundActive);
PlayTone(1401, 41); while(bSoundActive);
PlayTone(1251, 14); while(bSoundActive);
PlayTone(1188, 14); while(bSoundActive);
PlayTone(1054, 14); while(bSoundActive);
PlayTone(1841, 83); while(bSoundActive);
PlayTone(1401, 41); while(bSoundActive);
PlayTone(1251, 14); while(bSoundActive);
PlayTone(1188, 14); while(bSoundActive);
PlayTone(1251, 14); while(bSoundActive);
PlayTone(1054, 55); while(bSoundActive);
I don’t have a site for downloading, so all you’ll have to do is send me an email at Tinkernology_at_yahoo_dot_com requesting the converter and I will reply with the Excel file along with a RobotC file I created with 42 songs already converted and ready to play for your use. That’s almost 10 minutes of music ready to play.

And if you are an Excel Junkie like me, you will enjoy tearing this file apart. I spent many hours working on it.

Rock On!

Thursday, July 8, 2010

Beer Fetchin' Bot

Lazy adult beer drinkin' males celebrate!  Willow Garage had programmed the PR2 to fetch beer without forcing you to leave your workstation.



By the way, I really want to work at Willow Garage.  They have got it going on over there.

Sentry Paintball Gun

Finally.  Some robotics worth blogging about.  And I want one.



Found at Today's Big Thing.

Tuesday, July 6, 2010

Building a biped: Fixing the reset and control issues

After building the first two models and starting work on
the third model my building efforts where starting to look
like a true development program.

While experimenting with model 2 I decided that I should
reduce the complexity of the next bot to make it more
controllable.

I did not use any rotation sensors, I only used touch sensors.

The touch sensors gave me big problems, it turns out that
they work perfect when you press them at a straight angle
but when the angle is not close enough to 90 degrees they
don´t always work. To fix the problem I replaced the touch
sensors with reflective tiles and light sensors.

A single NXT brick, three sensor multipexers and three
motor multiplexers where used to control the robot.
The software was written in NXC.

Controlling this robot proved difficult. Because I replaced
the touch sensors with light sensors and used them in
combination with multiplexers they where slow to read.
Before reading a sensor value from the multiplexer you have
to give it some time to stabilize the power. This takes
about 50ms. That does not sound like a lot but the multiplexer
has 4 ports. To read all ports takes 200ms which means
you can only read your sensor values 5 times a second...
Way too slow!

Mechanically model 3 was a step down from the previous models
it was too weak to stand on one leg and the motors moved very
slow.

While experimenting with this robot I found out a simple trick
which makes it easier to shift the weight of the robot. If
the feet of the robot are angled in a way that the robot always
leans to the left or right side then the robot can select a
side to shift the weight to.

LegoAsimo model 3

Next time: Putting it all together

Qrio... unbelievable:

Huge Rover

On this video, you don't realize how big this creation is until you see the tiny NXT brick on top.  I am in love with this creation.  It's huge, fast, powerful, and full of computing power (I see 9 NXTs!)  Put this video on full screen and watch it to get the full effect.

Friday, July 2, 2010

NXT Tank

I think this tank is pretty awesome.  It is built pretty stout and it has a cool light sensor on the top.  But I think he needs to mount some toy soldiers on top for the full effect.

Thursday, July 1, 2010

Building a biped: Another year, another robot

With the experience of the first robot I knew that the
most important thing was to make the robot light and strong
enough to allow it to stand on one leg.

The first robot (model 1) had six degrees of freedom in each
leg. I decided that I could do with four.

The new model used power functions motors combined with
RCX rotation sensors. The robot was controlled with three
NXT bricks which was not enough to control all functions
but it did allow me to experiment with the legs.

The primary goal, building a robot which could stand on
one leg was achieved.

Unfortunately by solving one problem I ran into another
problem. When you control a motor you have to know the
exact angle of the axis. To do this you have to put
the robot in a starting position of which all angles
are known. From there you can move the axis relative to
the start position.



Next time: Fixing the reset and control issues...

Here´s something fantastic...
Stuff like this used to be science fiction: