|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
||||
|
||||
|
Move Robot a set angle
Hi,
In order to align my team's robot to the target, we need to move the robot a certain number of degrees. We have 4 Motor Drive with encoders on a cimple gearbox. We have already written the code to figure out how many degrees to move, but we cannot figure out how that corresponds to wheel movement. I would assume that it is dependent on wheel size and robot size. Wheels: 8" Diameter, 25.1327412" circumference http://www.andymark.com/product-p/am-0569.htm Robot: I am unsure as to how wide the robot is, because I don't have it in front of me right now, but an explanation of how to use the width (If necessary) would be helpful. My question is, How do I figure out how much to move the wheels? |
|
#2
|
|||
|
|||
|
Re: Move Robot a set angle
You'd need to know the behavior of the wheels while your robot turns, then use that model to determine the amount of turns, then use that to count the number of ticks while driving in a turning motion.
It might be easier to use a gyro sensor. |
|
#3
|
||||
|
||||
|
Re: Move Robot a set angle
Man,
If you turn your robot using just one side of your drive train, you can calculate the arc of the circle by counting the enconder pulses. The radius will be the distance between both side of drive train. |
|
#4
|
||||
|
||||
|
Re: Move Robot a set angle
Quote:
|
|
#5
|
||||
|
||||
|
Re: Move Robot a set angle
Never lol.
But I guess that could be an solution. The arc perimeter is 2*3,1415*R / angle You can measure your linear distance (perimeter circle) with an encoder. |
|
#6
|
||||
|
||||
|
Re: Move Robot a set angle
No, it's angle*R ... (where "angle" is in radians)
Code:
You can measure your linear distance (perimeter circle) with an encoder. |
|
#7
|
||||
|
||||
|
Re: Move Robot a set angle
Like many others have said, a gyro would be the best bet. You can use them for more than just positioning too. We use them to keep us driving in straight lines since doing that based on encoders alone is near impossible. You also may consider a range finder in addition to help your robot know where it is in relation to the field for greater accuracy. Just remember to have your gyro automatically recalibrate itself at the begging of autonomous for best results as they tend to wander over a course of time.
|
|
#8
|
||||
|
||||
|
Re: Move Robot a set angle
2*3,1415 = 2*PI = 360 radians = angle ( in radians )
So 360 radians * R = angle (entire circle)*R 360 radians = Full Perimeter x radians = arc Perimeter So Arc Perimeter= 2*Pi*R / angle wished ( in radians ) And, When I say "arc perimeter" I mean about the linear distance of This segment, so the encoder could return this measurement I guess... |
|
#9
|
||||
|
||||
|
Re: Move Robot a set angle
Two things:
1) There are not 360 radians in a full perimeter. 2) Look at your formula. It says that as the angle_wished gets larger, the arc_perimeter gets smaller. |
|
#10
|
|||||
|
|||||
|
Re: Move Robot a set angle
http://www-personal.umich.edu/~johan...s/pos96rep.pdf
This link points to a document that explains how to do localization. The PDF pages 19 & 20 show the formula to convert wheel movement into position. For this to work your robot would need to pivot about the center wheels. If they are dropped some this often happens. This isn't the total solution you are looking for but I think it will get you moving in the right direction. If you have a gyro there is some default code that does all of this for you. Look in the targeting example code. -Hugh |
|
#11
|
||||
|
||||
|
Re: Move Robot a set angle
Quote:
|
|
#12
|
||||
|
||||
|
Re: Move Robot a set angle
We had a lot of success a few years ago with a gyro, I'd recommend it.
|
|
#13
|
||||
|
||||
|
Re: Move Robot a set angle
I'd recommend the gyro as well. We found the provided gyro sensors to be very responsive and accurate. Easy to program too!
Using a gyro, it would be pretty easy to set up a PID loop like in the attached image. |
|
#14
|
||||
|
||||
|
Re: Move Robot a set angle
Quote:
|
|
#15
|
||||
|
||||
|
Re: Move Robot a set angle
To add to Ether's recommendation.
I was teaching how to use encoders and applying geometry and trigonometry. One of the tasks I had them figure out is to make the robot turn a certain angle using left and right encoders. They were successful, but due to the slip-n-slide nature of your drive train, it really is by chance (aka lottery and moon phase). It was within about 10˚ of where it should have been. Of course, a better solution (as also mentioned) would be to use the included gyro. It's easy to wire (have a spare PWM Cable?), easy to program (They have an example on how to use it), and easy to use (output is already in degrees). |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|