Robots, Blogs, Articles, Reviews, Photos, Videos and More Stuff About Robotics

Updated Site

Posted by Scott Preston, posted Wednesday, June 18, 2008
I have changed the site a little bit, let me know if you like it by contacting me.

Thanks,
Scott

Ubuntu Text-To-Speech TTS

Posted by Scott Preston, posted Wednesday, February 27, 2008
To installed text to speech follow this guide then install festvox by performing an apt-get install on one of many voices, like festvox-kallpc16k.

So for short:

sudo apt-get install festvox-kallpc16k festival

update your /etc/festival.scm

Then run a test:
echo "this is a test" | festival --tts

That's it. I will be updating Feynman6 with this code soon.

Finally an Ubuntu Webcam

Posted by Scott Preston, posted Wednesday, February 27, 2008

Once I got it working I was amazed at how easy it would have been if I had the proper instructions. Even the Ubuntu site does not work well for this but here are the steps I followed to get it working.

Updated /etc/apt/sources.list with:

deb http://blognux.free.fr/debian unstable main
sudo apt-get update
sudo apt-get install easycam2 webcam-server

I then selected yes and installed dependencies and ram the program:

sudo webcam-server -p 88

I then went to my browser and typed http://ipaddress:88, and I saw a snap shot.

 

Robot News

Posted by Scott Preston, posted Tuesday, February 19, 2008
It looks like I will be retiring Feynman-Jr, it turns out that having two robots that do the same thing are not that good. Also there are a few design flaws in Feynman Jr. First, the motors are too fast, this will have to go on another outdoor robot (name t.b.d). Second, there is no good place to put an arm.

I am going to be moving parts to Feynman6 and then mounting an arm on it and will add a computer power supply so I can leave the robot plugged in 24/7.

The software of course will take a hit pending work on the new robot, the main driver for the software is "What will it do?" and I my goal, to get a beer, is completely dependent on on the arm and having the robot powered on most of the time, without having to worry about recharging the battery.

Feynman Jr. and Carnot at CodeMash

Posted by Scott Preston, posted Sunday, January 20, 2008
I learned that Feynman Jr. has a longer battery life than I thought. In short, it never ran low and was able to stay running during the entire presentation with a full charge, this is moving the robot around via remote and having the PC on entire time.

I had a few bugs with the C# Serial-HTTP bridge. As it turned out, this program bombed about 3 times during the demo and caused Feynman Jr. to run wildly and not stop.

Also the motors for Feynman Jr. are a little too powerful for the kind of fine motor maneuvers needed for orientation (i.e. pointing north) as it turns out the motors on Feynman6 work much better for such movements.

Carnot worked just find though I am not sure of my vision algorithms, I think they work OK, but have too much error to be reliable and consistent.

Been working on new robot and API

Posted by Scott Preston, posted Thursday, September 27, 2007

I have been working on a smaller version of a robot than Feynman 6, called Feynman Jr. I have also begun to refactor my Java API so that it will work with my new robots.

The summary of my new robot "Feynman Jr" is that he will have his own CPU (another EPIA Mini-IPX that I have used so successfully in past robots. But he will be shorter and smaller than the other robots, small enough to fit comfortably in my truck and light enough so that I can lift.

I have also begin a new API so that I can better have a re-usable architecture then have robot specific classes extend the basic architecture. But this API is not 100% Java, I have had to extend it using C#.

Why C#? Well the main reason is that I use WindowsXP Pro for the robot's operating system. I had tried to use Video 4 Linux a year or so back and got nowhere fast. So even though Windows XP cost some money, it's rather stable for what I want to do, transport Serial and USB Web Camera data over HTTP.

By using HTTP for transport, this opens up any language to be used for processing. So PHP, Ruby, JavaScript, and other languages can be used to access the robot's control and data streams... Which is very, very cool...

Added Blog

Posted by Scott Preston, posted Thursday, September 27, 2007
I have started a blog at ScottsBots.Com. Well, it use to be my "Bot Bits" column but since I rarely used that and wanted to start talking more about robots, I decided to shift that to a blog. I will talk here about some of the latest news with my robots and programming. Stay tuned over the next few days I will be adding some more content ...

Voltage Measurement for your Robot

Posted by Scott Preston, posted Thursday, September 06, 2007
I was able to do this with 2 resistors and 1 capacitor.
      681 kohm        470 ohm 
Vx ----/\/\/\---o-----/\/\/\----Pin to stamp
unknown         |
voltage       ===== 0.01 uF film
                |
               Vss

The source code for the basic stamp is:

' {$STAMP BS2}
' {$PBASIC 2.5}
' {$PORT COM1}

rct VAR Word    ' RCtime value
Vx VAR Word     ' voltage value calculated
Cn1 CON 48576   ' first constant, see below
Cn2 CON 8       ' second constant, ditto
' circuit attached to P15
LOW 15
start:
RCTIME 15,0,rct
LOW 15
Vx= Cn1 / rct + Cn2
DEBUG DEC ? rct,DEC ? vx
PAUSE 500
GOTO start

You will have to experiment with the constants and values. I had to sit with my battery and take readings while I worked on the robot, then as the battery drained I took readings and voltage measurements and made my self a look-up table.

Intermediate Robot Building by David Cook

Posted by Scott Preston, posted Tuesday, May 08, 2007

This book has 18 chapters but mainly deals with the mechanics of building a robot, not the software behind it, but Chapter 15 has the basics using a Motorola Microcontroller.

I think what I like most about this book is that it helps someone coming from a software background, like me, and teaches them how things are done on the mechanical side of things so that you don't have to purhcase items.

Though more and more shops are providing parts, brackets, mounts, etc. so you don't need to machine your own parts, but there will always be cases where you can't purchase something, and this book shows you how to build it.

You can read more about this book from Amazon.Com.

Installing UBUNTU on a Compact Flash

Posted by Scott Preston, posted Tuesday, May 08, 2007

Contact Me if you would like to purchase a Compact Flash pre-installed with Ubuntu.

 The installation of UBUNTU on the compact flash was not that difficult, but it took me 3 tries.

  1. Ubuntu 6.10-Desktop VGA set to 1024x768-16 - Not enough space on my 2GB Flash.
  2. Ubuntu 6.10-Server  VGA set to 1024x768-16 -  Strange Errors "Unknown Interrupt or fault at EIP...".
  3. Ubuntu 6.10-Alternate VGA set to 1024x768-16 - Slow but it installed and restarted.
  4. I removed my install CD-ROM and modified the /etc/apt/sources file by commenting out the CD-ROM as the first place to look for install packages.
  5. I installed SSH - sudo apt-get install ssh openssh-server.

 

Part Info all purchased from NewEgg.Com for $237.70 including shipping.

  1. MB VIA EPIA M10000 CLE266 VIA C3 - $149.99
  2. SANDISK COMPACT FLASH 2GB (Ultra 2) - $68.99 (now much less)
  3. SYBA SD-CF-IDE-DI IDE to Compact Flash Adapter - $9.99

Notes on the IDE Adapter: I have external power jumper selected, 5VDC vs. 3.3, and it's in Master/Single mode.

I have not had any problems with this solution, if you have any problems or updates to this, add a comment. Or if there is a version of Ubuntu or other Linux distro you would like information on, please leave a comment.

Serial Web Server

Posted by Scott Preston, posted Tuesday, May 08, 2007
The program and batch file require the .Net Framework v3.0.
Once you download this file, unzip it, then open the .bat file and adjust the parameters. The included batch file used COM1 and port 5050, for http.

The commands are simple:

http://server:port/delay,byte,byte,....

So for an SSC I would send this:

http://localhost:5050/0,255,0,127

But if you would like a delay for reading sonar from a basic stamp you might try something like this:

http://localhost:5050/75,100,102

Where the 75 is a 75ms delay, the 100 is a byte for my basic stamp program below, and the 102 is the command byte telling my basic stamp to return the command.

SERIN 16,16468,main,[WAIT(100), cmd] 

I have also included a simple AJAX and PHP script that allows you to access these from a PHP and Apache.
Basically this allows you to copy the files to your Apache web server with PHP, then change the IP Addresses of your server, maybe to 127.0.0.1, or localhost, and you can now control your SSC powered remote from anyplace in the world.
 
book info

Everything you wanted to know about programming robots and more! For more info click here.
robot roll

Robot Roll...

CRaB
This is a robot I created for the CRB (Columbus Ruby Brigade). It demonstraits some of the basic robotic principles: movement and visual recognition.
Feynman Jr
A smaller faster lighter version of Feynman6. Same great software, same cool functionality, just in a smaller package and much, much faster...
Carnot
This will a test platform for Feynman. The main reason for his creation is power supply issues and transportation issues with the current version of Feynman.

There are also several problems with the supported Java APIs, mainly sun has abandon them: Java Communications and Java Media Framework.

Feynman 6
I have decided to create Feynman6 and retire Feynman5. This robot will be taller, have more 80/20 and less wires via a new distribution board with onboard carrier for a BS2.
Feynman 5
This is the robot I used for my book. It has pretty much the same components as Feynman3, but is smaller and is more stable.
Stan
Some guys at work were running around the parking lot with these little plastic cars. So one week-end I decided to modify Feynman into and Battle Bot minus the weapon.

This bot actually moved about as fast in the short term as the cars. I did run over one but because of the STAR design of the robot I found it quite limited and poor to maneuver. Something I would correct in later robots.

Fours
I built this with some extra parts from CubeBot. He is powered by 4 AA batteries and an 9V battery for the CubeBot controller board. I put an SRF-04 Sonar on him so he could avoid things as he moved around. But that's all he really did.
Rovey
This is a robot that I did for a COSI training session. I had students login to my website and then control the robot from the internet. It consist of a pan & tilt camera, and an SSC Servo Controller tethered to a power supply and a serial port since it was on 24/7.

This robot is also featured at Robots.Net.

Feynman 3

This is a real upgrade from Feynman 2. It's also my first robot written in Java.

Feynman 2
This is the same robot as Feynman 1, but I have modified the chassis. The chassis gave me a little more control over the sonar and provided better proximity detection with the bumpers and Sharp IR sensors.
Feynman 1
This was my first PC Robot. Here I had real sonars, real motors, real processing power!

This robot is also featured at Robots.Net.

Baby Joe 2
This robot is just a chassis upgrade of the previous robot (Baby Joe).
Baby Joe 1
For this robot I wanted it to be controlled via a MicroController. I choose the Parallax Basic Stamp 2. I used much of the same parts from the previous robot (TetherBot) but purchased some additional hardware for this chassis.

This robot is also featured at Robots.Net.

TetherBot
This robot was the begining of my love and facination with robotics. Here I learned the power of hacking a servo, building my own sensors, and programming and controlling it via PC.

This robot is also featured at Robots.Net.

FollowBot
This is my first robot. It cost less than $10 and took me a week-end to get it working.
© 2005-2008 ScottsBots.Com