Society of Robots - Robot Forum

Software => Software => Topic started by: benji on March 04, 2008, 06:09:42 AM

Title: closing the loop
Post by: benji on March 04, 2008, 06:09:42 AM
hey folks
i have a command sent to the robot to move 50 cm
my robot has error that it moves 49 cm .....51 cm
actually the robot is mapping using a sharp ir scanner
i dont want to do SLAM or anythin i just want someway to close the loop and fix this error
,any ideas are appreciated
Title: Re: closing the loop
Post by: Admin on March 04, 2008, 01:09:18 PM
Can the robot detect this error?

If not, then there is no way to fix it.
Title: Re: closing the loop
Post by: benji on March 04, 2008, 04:37:30 PM
what do u mean if the robot can detect it? (it could be because of the feet slip)
i need someway that i can compensate for this error
Title: Re: closing the loop
Post by: Qubix on March 05, 2008, 02:41:19 PM
What admin is asking is how do you know that you aren't going the 50cm? If you know the distance you have travelled (using an encoder of some sort), you can use the error signal (Error =The requested positon (50cm) - Actual position (encoder reading)) in a control scheme, which will allow you to "close the loop".

90% of all control problems can be solved quite well using PID control. You would probably get away with using proportional (P) control, which is even simpler to implement.

David
Title: Re: closing the loop
Post by: benji on March 05, 2008, 04:26:47 PM
well yea thats what i was sayin, its a hexapod so no way to use an encoder, i only have a sharp ir scanner, is there somthin i can add to help me with this error? a sensor? a programing trick using my ir?
Title: Re: closing the loop
Post by: Qubix on March 05, 2008, 05:27:26 PM
Using an accelerometer is the only thing I can think of, if you can't use encoders (the double integral of acceleration will give you position).

I haven't used an accelerometer for that purpose yet, but my guess is that the error in trying to intergrate on a microcontroller, plus and any drift or offest in the sensor (integrating a constant will give you and unbounded error) is unlike to result in a very accurate position infomation consistently.  There was an article in servo magazine (April 2007), doing this and was accurate to within 10-15%. Which is less accurate than your open loop method, so no use for you I guess. I don't see anyway of using your IR scanner.
Maybe someone else will have a suggestion, but I think Hexapods are just not as suited to dead reckoning/mapping, as a differential drive robot.

David
Title: Re: closing the loop
Post by: Admin on March 09, 2008, 09:40:20 AM
Quote
what do u mean if the robot can detect it? (it could be because of the feet slip)
I highly doubt your robot sensors can detect that slip ;)

Quote
its a hexapod so no way to use an encoder
Not true . . . put an encoder on each joint ;D
But that's probably waaaay too much work. Servos have an accuracy of about +/- 2 degrees.

Lastly, we have had this EXACT conversation in 3 other threads!!!!!!!!!
Please don't double/triple post!!!!!!!!!
Title: Re: closing the loop
Post by: benji on March 09, 2008, 11:37:16 AM
i dont think using an encoder with a hexapod is such a good idea
Quote
Servos have an accuracy of about +/- 2 degrees.
the hitec are very accurate but the degree/pwm isnt a linear function, that makes implementing an accurate system a little more harder