go_away

Author Topic: PC Robot idea(End Goal is a single ball balancing bot)  (Read 2073 times)

0 Members and 1 Guest are viewing this topic.

Offline Robotboy86Topic starter

  • Robot Overlord
  • ****
  • Posts: 139
  • Helpful? 0
PC Robot idea(End Goal is a single ball balancing bot)
« on: July 12, 2007, 04:50:27 PM »
I have spent the last few months researching the best way to meet my long-term robotic goal.  I have had considerable experience with lamer robotic systems(VEX), and also with programming.  Both in BASIC and in C.  On top of that I am a PC Technician, and I am familiar with RC cars.  It kind of all pooled together in the last few months to give me some great ideas in regards to robots.

The idea?  A single robotic platform that balances on a single ball.  Obviously a very aggressive goal for someone getting into robotics on a hardware level for the first time..    that is of course just a long term goal.

For now, my part list resembles this:

Jetway Mini-ITX motherboard, 80gb SATA 2.5 Drive, Jetway serial Daughter board(For a total of 6 serial connections, which is about 40+ serial lines). 

BasicAtom Pro-24m/IO Bot Board

I have some old 6v motors that are very loose and weak, but will do well to set the system up until I can afford real motors. 

I have an old PC PSU I plan to use on the Mini-ITX Board until I can afford to purchase the batteries and power conventors

Those are items that are on there way to my house/already there.

Items of needed to be ordered:

A analog MEMS Gyroscope/Acceleramator board that will give me accurate pitch/roll/yaw and such for use in balancing. 

Better motors because the ones I am using is being done simply to get the basic sub systems working..

 

I plan to first set the Mini-ITX board up with arch linux(because I am very familiar with it, and its very basic) and either write a serial driver for the basic atom board, or use a pre-existing one(I am not sure which one yet). 

Next step is to write the BasicATOM's software..  it'll be your sensor input board at first..  only job is to report the panasonic IR's to the CPU.  It will be increased to support the Gyro/Accel board and eventually setup to control the balancing itself.  The principal of the balancing seems to be relatively simple to start with..

If the bot is falling in a direction, move in that direction a certain amount.  The numbers/formulas are not going to be easily derived until I have responsive data from the sensors.

As for my platform it will be a hybrid of alumium bar and fiberglass.  Why? Because I have easy access to the alumium bar, and I have experience with fiberglass bodies. 

My first goal is simply to have the BasicATOM and PC Communicate at a rate that I feel is acceptable for my goals.  The BasicATOM will not be in constant communcation with the pc because the robot's sub systems would then have huge delays while it sent out info. So instead I plan to have it work as a request/send system.  PC needs the data for something, so it asks, then the basic atom board then sends a predetermined chunk of data, and then waits until its next cycle to send the next.   

I feel that this would net me(in the long run) a versatile movement platform, along with a very robust proccessing core(The mini-itx board) that will allow easy use of more common standards such as 802.11, bluetooth, and even EV-DO 3g Cell phone networking in the long run. 

Anyways,  wanted to kinda put it all down on paper for others to see and see what eveyrone else thinks..

Once again, i do relize this is not something that will simply work.. and that it is over my head..  but I have experience in the software aspects of robotics and PC.. so i feel this is a great start :)

Let me know what you think,

Dan

Offline Steve Joblin

  • Supreme Robot
  • *****
  • Posts: 405
  • Helpful? 2
Re: PC Robot idea(End Goal is a single ball balancing bot)
« Reply #1 on: July 12, 2007, 07:08:30 PM »
I think it is a very admirable goal, but also a very difficult one to attain.  I would strongly suggest that you start out with a balancing robot first, then move to an "omni ball" version.  I think you may be underestimating the amount physics you will need to know.  Check out the kinds of skilled folks involved in creating this ballbot... http://www.msl.ri.cmu.edu/projects/ballbot/


Offline Robotboy86Topic starter

  • Robot Overlord
  • ****
  • Posts: 139
  • Helpful? 0
Re: PC Robot idea(End Goal is a single ball balancing bot)
« Reply #2 on: July 12, 2007, 09:04:05 PM »
ya I read there stuff, inspired me.  I was planning to do it as a two wheel bot first..  well an omni wheel with two training wheels.

Offline dunk

  • Expert Roboticist
  • Supreme Robot
  • *****
  • Posts: 1,086
  • Helpful? 21
Re: PC Robot idea(End Goal is a single ball balancing bot)
« Reply #3 on: July 15, 2007, 06:16:25 AM »
hi Dan, interesting idea.
here's a couple of things to think about.

Real Time Operating Systems (Linux running on your  Mini-ITX in this case) are not good choices for PID controll.
in simple terms, what i mean is, there will always be a little delay between a RTOS receiving sensor input (rotational speed information from the balancing bot in this case) and the programmed output associated with that (adjustment of motor speed).
worse still is that the delay will be different depending on the processor load. (processor gets busy = bot falls over.)
so what i'm saying with all this is that doing the actual "balancing" on the Mini-ITX is not a great solution.

Quote
Next step is to write the BasicATOM's software..  it'll be your sensor input board at first..  only job is to report the panasonic IR's to the CPU.  It will be increased to support the Gyro/Accel board and eventually setup to control the balancing itself.  The principal of the balancing seems to be relatively simple to start with..
so you want to do the "balancing" on the BasicATOM and avoid all the complex RTOS timing issues i talked about.
that's not as easy as it sounds either.
just to cover what is required, your balancing bot will have 2 kinds of sensor to determine whether it's falling over or not: angular rate gyros and accelerometers.
angular rate gyros tell you how quickly the bot is rotating but not which direction is up.
accelerometers will tell you which way is up *or* how quickly the bot is accelerating *or* (more likely) a combonation of the 2.
so you have got some fairly complicated maths to do and microcontrollers (the BasicATOM in this case) are not great at maths. especially doing maths quickly.
so maybe doing the "balancing" bit on the BasicATOM isn't the simplest either and doing it on the Mini-ITX under Linux is the better choice...
either is possible. i'm guessing you'll have some interesting times working out which is better.

another thing to take into account is how power hungry the Mini-ITX motherboards are. you will need a LOT of batteries on board if you plan to use one of these.
i've never used the Jetway boards (and they do look a lot less power hungry) but the ITX boards suck through power very quickly.
i'd recommend putting a lot of thought into powering the Mini-ITX motherboard right at the start of your project as the battery pack will be the heaviest single component on your bot.
let me know if you want a rundown of the low power Linux solutions i've looked at over the last year or two.

good luck with your project!

dunk.

 


Get Your Ad Here

data_list