Society of Robots - Robot Forum
Software => Software => Topic started 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
-
Can the robot detect this error?
If not, then there is no way to fix it.
-
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
-
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
-
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?
-
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
-
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 ;)
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!!!!!!!!!
-
i dont think using an encoder with a hexapod is such a good idea
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