Society of Robots - Robot Forum

Electronics => Electronics => Topic started by: Aziz on March 02, 2007, 12:16:51 PM

Title: Feedback control in omni wheel robot
Post by: Aziz on March 02, 2007, 12:16:51 PM
I am making an omni wheel robot as gven on the website below

http://www.societyofrobots.com/robot_omni_wheel.shtml#fuzzy

I was wanting to know that would a feedback control loop be required to be attatched with each of the four servo motors ?

Secondly the electronics of the robot. has not been explained on the website I would be thankful if I could get some help in this regard
Title: Re: Feedback control in omni wheel robot
Post by: Admin on March 02, 2007, 12:44:22 PM
Quote
I was wanting to know that would a feedback control loop be required to be attatched with each of the four servo motors ?
I used no feedback control on the servos of that robot. All feedback came from the sonar and scanning IR only.

Quote
Secondly the electronics of the robot. has not been explained on the website I would be thankful if I could get some help in this regard
I used the Cerebellum by Botrics (http://botrics.com/products/cereb/). However, they discontinued their product and are no longer selling them. The electronics doesnt really matter,  a microcontroller of any type will work . . .
Title: Re: Feedback control in omni wheel robot
Post by: Aziz on March 03, 2007, 12:01:55 AM
I see

But if I want to control the robot myself would I still be requiring the sonar system and IR scanner and secondly what would be the best way to control the robot. I want to use an RF transmitter and receiver and interface the transmitter to the computer so that all movements of the robot can be fully controlled by the computer. Could you please help me a little on this.   
Title: Re: Feedback control in omni wheel robot
Post by: Admin on March 03, 2007, 11:18:20 AM
Well it depends on what you want the robot to do.

You could just go without sensors, but then what would your robot do if it couldnt 'see'?

The best way to control it would be to use a microcontroller:
http://www.societyofrobots.com/microcontroller_tutorial.shtml
http://www.societyofrobots.com/step_by_step_robot_step3A.shtml (you can also buy one ready-made)

To make it wireless and controlled by the computer, you will need to interface someone wireless electronics with your microcontroller. Search this forum for 'bluetooth' and 'easyradio'.
this might be helpful, too: http://www.societyofrobots.com/electronics_bluetooth_robot.shtml

If this is your first robot, you may want to keep things simple and stay away from wireless. :P
Title: Re: Feedback control in omni wheel robot
Post by: Aziz on March 04, 2007, 03:59:22 AM
Well you see I would myself be controlling the robot from my PC so I dont think I would be requiring sensors

And I am a student of final year communication engineering and this is my senior proejct..wireless control of this robot..so as much as I would love to.. I cant leave the wireless control part out.

I shall now explain to you fully my objective..I have to develope a program perhaps in VC++ that provides an interface to fully control the omni wheel robot in a wireless fashion..I mean like I would have buttons for forward,left,right, spin...and by clicking on them the robot should act correspondingly. So please would u advise me the easiest and simplest way out...Thnx
Title: Re: Feedback control in omni wheel robot
Post by: Admin on March 04, 2007, 04:34:08 PM
check out this post, it should explain how to do it:
http://www.societyofrobots.com/robotforum/index.php?topic=104.0

Again, I highly recommend looking into bluetooth, zigbee, and easy radio modules.

I guess the ultra easiest way would be to attach a rs232 to bluetooth adaptor on both your computer and your robot. Then, just buy a microcontroller with built in rs232 or bluetooth and you are set to go.
Title: Re: Feedback control in omni wheel robot
Post by: Aziz on March 06, 2007, 08:30:59 PM
Thnx..I found this RS 232 RF wireless telemetry module

http://www.active-robots.com/products/radio-solutions/radio-communication.shtml

 I thnk it would be able to do the job..What do you say??

Title: Re: Feedback control in omni wheel robot
Post by: Admin on March 06, 2007, 10:41:22 PM
yeap that will work

it actually uses the Easy Radio device I mentioned
Title: Re: Feedback control in omni wheel robot
Post by: Aziz on March 07, 2007, 08:36:37 AM
K thats great... :)

I have another question..Hope you are not getting bothered too much..!!!

You have used serevos in this robot...How did you manage to achieve speed control?

Bcz the rpm of servos is pretty low but in the video the robot appears to be moving quite fast?? ???

I connected a hitec HS-311 servo motor to a micronctroller and pulsed it at different frquencies..but I could not achieve a wide range of speeds and the max rpm was not very fascinating.
Title: Re: Feedback control in omni wheel robot
Post by: Admin on March 07, 2007, 09:05:41 AM
there are two ways to get your robot to go faster:

higher rpm <- get more expensive/faster servos
larger diameter wheels <- use bigger wheels

on this omni wheel robot i didnt use HS-311. i used HS-225MG which is about 36% faster. i had to run the servo at 6V+ to maximize the speed.
Title: Re: Feedback control in omni wheel robot
Post by: Aziz on March 08, 2007, 08:07:37 AM
Ok I see.. and how did you manage to get a range of speeds bcz for the robot to move in any angle you would need a really sharp contol on speeds...I connected a HS-311 to a signal generator and gave it a square wave (0-5v) at different frequencies but I did not get a good range of speeds.

And another problem was that two different motors did not give the same speed for the same frequencies.  How to go about this??

I shall be grateful if you could explain to me how you managed to control the movement of the robot like spin, movement at  different angles etc...

Thnx  :)



Title: Re: Feedback control in omni wheel robot
Post by: Admin on March 08, 2007, 08:31:16 AM
Quote
I connected a HS-311 to a signal generator and gave it a square wave (0-5v) at different frequencies but I did not get a good range of speeds.
I think the HS-311 has about 50 different speeds it can go at. I ran a test on it many years ago to test the number of speeds it can do, but my memory is bad and I dont remember how exactly the test was done . . .

Quote
And another problem was that two different motors did not give the same speed for the same frequencies.  How to go about this??
Usually they will all go the same speed, but I've had a few servos in the past that didnt. You will need to calibrate the speed for each servo by adding or subtracting some small amount of time to the servo square wave pulse. If your robot as a whole has a good control system, the speed differences will correct itself.

Quote
I shall be grateful if you could explain to me how you managed to control the movement of the robot like spin, movement at  different angles etc...
It was actually somewhat complicated. If you have a PC controlling your robot, you can use trig functions. Each motor moves at a speed that is a function of the direction of desired travel.

servo speed = speed_constant*cos(angle_of_wheel - angle_of_travel)

I however used a microcontroller so trig is out of the question - microcontrollers take a significant amount of time to do a trig calculation. Instead I had to write a trig lookup table (http://www.societyofrobots.com/programming_trigtable.shtml) with a resolution of about 10 degrees. Basically you precalculate cos(angle) and then the microcontroller just looks up that value from an array.

It gets even more complicated if you want to control overall vehicle speed, or do spinning while traveling in a certain direction.

Oh, one reason I chose four wheels over three is that four is mathematically simpler - three wheels requires 3 calculations while four wheels requires 2 (calculate two, then reverse direction for the other two with a minus sign).

I think a lot of this will become obvious when you start building the robot . . .
Title: Re: Feedback control in omni wheel robot
Post by: Aziz on March 09, 2007, 06:49:11 AM
Thanks for the detailed reply.. :)

I have a number of questions

1) What do u mean by "angle_of_wheel" ? Could you please explain how to cntrol the movement??

2) How did you measure the servo speed?? bcz for correction of speed I would need to know the current speed and then compare it with a reference value then change the duration of pulses accordingly??  Bcz in spinning the speeds of all four motors must exactly be the same i think....

3) Would you recommend using DC motors or stepper motors with an H-bridge  drive instead of the servos??

4) I was using the high r.p.m HS-925 mg today with a power suppy and signal gernator but it was drawing 2A when stopped.
   Here I was using a power supply but when I would be using a battery it would exhaust them pretty quickly.

Title: Re: Feedback control in omni wheel robot
Post by: dunk on March 09, 2007, 08:01:22 AM
a comment on point 4.
i usually cut the power to servos when they are not moving to save power.

2A sounds like a LOT for stationary servos to be drawing though.

dunk.
Title: Re: Feedback control in omni wheel robot
Post by: Admin on March 09, 2007, 08:05:28 AM
as you build it, it should become obvious to you. after all, i managed to figure it out without any help from anywhere (meaning anyone can do it with a tutorial) :P

Quote
What do u mean by "angle_of_wheel" ?
'angle_of_wheel - angle_of_travel' basically means the direction the wheel is pointing with respect to the direction you want the robot to go

Quote
How did you measure the servo speed?
i told the servo to rotate, and every second i increased the PWM by one clock cycle. each time the motor changed speeds marked a different speed.

Quote
bcz for correction of speed I would need to know the current speed and then compare it with a reference value then change the duration of pulses accordingly??
my robot used sensors to correct for speed error. i did some minor tweaking, but didn't care if any of the motors weren't exactly the correct speed. it worked great like this.

Quote
Would you recommend using DC motors or stepper motors with an H-bridge  drive instead of the servos??
ive seen some really fast really impressive omni wheel robots that do this, but you will have poor control unless you also install encoders on each DC motor. four stepper motors might also be very difficult to interface with a microcontroller.

Quote
I was using the high r.p.m HS-925 mg today with a power suppy and signal gernator but it was drawing 2A when stopped.
when you stop the servo, you have to bring the voltage to ground and NOT send pulses. 2A is really high and isnt correct for a properly stopped servo.
Title: Re: Feedback control in omni wheel robot
Post by: Aziz on March 09, 2007, 02:08:31 PM
Well too bad you were not as fortunate as I am  to have someone like you to help...lolzz

Quote
my robot used sensors to correct for speed error

Which type of sensors did you use.... The only way out that I see is to use an optical encoder...Is there any other way besides that??
Title: Re: Feedback control in omni wheel robot
Post by: Admin on March 09, 2007, 02:14:22 PM
Quote
Quote
my robot used sensors to correct for speed error

Which type of sensors did you use.... The only way out that I see is to use an optical encoder...Is there any other way besides that??

My robot was designed to map and avoid objects. The sensors I used were sharp IR and sonar to detect the objects. The robot would keep moving (no matter how inaccurate the wheels were) until it cleared and moved around an object.

For example, when you get off your chair and walk to the kitchen, your legs dont need encoders. Your eyes sense the error and make adjustments to how you walk. Its not about feedback from your motors, but instead a global path planner.
Title: Re: Feedback control in omni wheel robot
Post by: Aziz on March 10, 2007, 04:46:44 AM
Ok I see...

Thanks for all your help.... :)

Title: Re: Feedback control in omni wheel robot
Post by: Aziz on March 19, 2007, 09:49:07 AM
Hi again...

Would you be knowing of any site where I could find gear motors with built in encoders??