Go to Post You can't expect a situation to get better if you don't make an attempt to confront it. - AndyB [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 21-01-2007, 15:45
maniac_2040's Avatar
maniac_2040 maniac_2040 is offline
Registered User
AKA: Matt
FRC #3302 (Turbo Trojans)
Team Role: Programmer
 
Join Date: Jan 2006
Rookie Year: 2005
Location: Clawson, Michigan
Posts: 34
maniac_2040 is infamous around these partsmaniac_2040 is infamous around these partsmaniac_2040 is infamous around these partsmaniac_2040 is infamous around these parts
Send a message via MSN to maniac_2040
Arc Driving

Say I have a robot with car-like steering and I want to drive in a circle. At what angle would I have to turn the steering wheels in order to drive in a circle/arc of radius r?
  #2   Spotlight this post!  
Unread 21-01-2007, 19:29
maniac_2040's Avatar
maniac_2040 maniac_2040 is offline
Registered User
AKA: Matt
FRC #3302 (Turbo Trojans)
Team Role: Programmer
 
Join Date: Jan 2006
Rookie Year: 2005
Location: Clawson, Michigan
Posts: 34
maniac_2040 is infamous around these partsmaniac_2040 is infamous around these partsmaniac_2040 is infamous around these partsmaniac_2040 is infamous around these parts
Send a message via MSN to maniac_2040
Re: Arc Driving

Quote:
Originally Posted by maniac_2040 View Post
Say I have a robot with car-like steering and I want to drive in a circle. At what angle would I have to turn the steering wheels in order to drive in a circle/arc of radius r?
Perhaps I wasn't quite clear. I would like for our robot to be able to drive in a circle of any specified radius. So, my question is, given a radius of the circle that I would want my robot to drive in, what angle would the steering wheels have to be, relative to the front of the car/robot, in order to drive in that circle? Pretty much I'm looking for a function f(x), where x is the radius of the circle I want to drive, and the output is the angle the steering wheels need to be.

Thanks in Advance.
  #3   Spotlight this post!  
Unread 21-01-2007, 19:59
Dan Zollman's Avatar
Dan Zollman Dan Zollman is offline
7
FRC #1712 (Dawgma)
Team Role: Alumni
 
Join Date: May 2005
Rookie Year: 2005
Location: Ardmore, PA
Posts: 392
Dan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond repute
Re: Arc Driving

I could give you a function that would work in theory with a perfect set of wheels, but the function depends on the distance between the front and back wheels, and you'd also have to account for any friction between the wheels and the floor that would resist turning. Third, are you actually rotating the wheels, or translating this into differing wheel speeds? In the latter case, this would also depend on the distance between the left and right sides. Finally, I think a robot would be harder to control if you were inputting radius instead of turning angle.

That said, this is what I can come up with:
f(x) = sin-1(d/x)
where d is the average distance between front and back wheels, and x is the arc radius.
__________________
Product design student at Rensselaer
Web designer/consultant
FIRST alum, Dawgma 1712

dan.zollman - at - gmail.com
  #4   Spotlight this post!  
Unread 21-01-2007, 21:32
maniac_2040's Avatar
maniac_2040 maniac_2040 is offline
Registered User
AKA: Matt
FRC #3302 (Turbo Trojans)
Team Role: Programmer
 
Join Date: Jan 2006
Rookie Year: 2005
Location: Clawson, Michigan
Posts: 34
maniac_2040 is infamous around these partsmaniac_2040 is infamous around these partsmaniac_2040 is infamous around these partsmaniac_2040 is infamous around these parts
Send a message via MSN to maniac_2040
Re: Arc Driving

Quote:
Originally Posted by worldbringer View Post
I could give you a function that would work in theory with a perfect set of wheels, but the function depends on the distance between the front and back wheels, and you'd also have to account for any friction between the wheels and the floor that would resist turning. Third, are you actually rotating the wheels, or translating this into differing wheel speeds? In the latter case, this would also depend on the distance between the left and right sides. Finally, I think a robot would be harder to control if you were inputting radius instead of turning angle.

That said, this is what I can come up with:
f(x) = sin-1(d/x)
where d is the average distance between front and back wheels, and x is the arc radius.
Thank you, this is what I was looking for, but I would like to know how/where you got that from.

I am actually rotatin the wheels, yes.

Of course it would be harder to control if you were inputting radius to control the robot. I didn't want this for regular joystick control. For that, yes, I will be inputting the turning angle. I want that function for a more specific purpose, and probably precalculated.
  #5   Spotlight this post!  
Unread 21-01-2007, 22:34
Ben Margolis Ben Margolis is offline
Programmer Boy
no team
 
Join Date: Mar 2005
Rookie Year: 2005
Location: San Bruno, CA
Posts: 9
Ben Margolis is a glorious beacon of lightBen Margolis is a glorious beacon of lightBen Margolis is a glorious beacon of lightBen Margolis is a glorious beacon of lightBen Margolis is a glorious beacon of lightBen Margolis is a glorious beacon of light
Re: Arc Driving

Sounds like autonomous.
  #6   Spotlight this post!  
Unread 21-01-2007, 22:54
DanDon's Avatar
DanDon DanDon is offline
ohhh MY god
AKA: Dan Hoizner
FRC #0375 (The Robotic Plague)
Team Role: Mentor
 
Join Date: Jan 2005
Rookie Year: 2004
Location: Staten Island, NY
Posts: 1,432
DanDon has a reputation beyond reputeDanDon has a reputation beyond reputeDanDon has a reputation beyond reputeDanDon has a reputation beyond reputeDanDon has a reputation beyond reputeDanDon has a reputation beyond reputeDanDon has a reputation beyond reputeDanDon has a reputation beyond reputeDanDon has a reputation beyond reputeDanDon has a reputation beyond reputeDanDon has a reputation beyond repute
Send a message via ICQ to DanDon Send a message via AIM to DanDon Send a message via MSN to DanDon
Re: Arc Driving

Quote:
Originally Posted by Ben Margolis View Post
Sounds like autonomous.
Perhaps motivated by Kevin's drawing?
__________________
  #7   Spotlight this post!  
Unread 21-01-2007, 22:54
Dan Zollman's Avatar
Dan Zollman Dan Zollman is offline
7
FRC #1712 (Dawgma)
Team Role: Alumni
 
Join Date: May 2005
Rookie Year: 2005
Location: Ardmore, PA
Posts: 392
Dan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond repute
Re: Arc Driving

I thought a bit more about that equation and realized that the equation is incorrect. I should withdraw what I posted because I'm not sure if my method was correct.

I now think that the equation should use inverse tangent instead of inverse sine, but please don't use it at all until someone can provide a second opinion. Sorry if it misled you.

I'll come back to it tomorrow when I'm less tired and see if I can come up with a more solid solution.
__________________
Product design student at Rensselaer
Web designer/consultant
FIRST alum, Dawgma 1712

dan.zollman - at - gmail.com
  #8   Spotlight this post!  
Unread 21-01-2007, 23:33
maniac_2040's Avatar
maniac_2040 maniac_2040 is offline
Registered User
AKA: Matt
FRC #3302 (Turbo Trojans)
Team Role: Programmer
 
Join Date: Jan 2006
Rookie Year: 2005
Location: Clawson, Michigan
Posts: 34
maniac_2040 is infamous around these partsmaniac_2040 is infamous around these partsmaniac_2040 is infamous around these partsmaniac_2040 is infamous around these parts
Send a message via MSN to maniac_2040
Re: Arc Driving

Quote:
Originally Posted by dhoizner View Post
Perhaps motivated by Kevin's drawing?
heh...
  #9   Spotlight this post!  
Unread 22-01-2007, 00:16
TimCraig TimCraig is offline
Registered User
AKA: Tim Craig
no team
 
Join Date: Aug 2004
Rookie Year: 2003
Location: San Jose, CA
Posts: 221
TimCraig is a splendid one to beholdTimCraig is a splendid one to beholdTimCraig is a splendid one to beholdTimCraig is a splendid one to beholdTimCraig is a splendid one to beholdTimCraig is a splendid one to beholdTimCraig is a splendid one to behold
Re: Arc Driving

Quote:
Originally Posted by maniac_2040 View Post
Say I have a robot with car-like steering and I want to drive in a circle. At what angle would I have to turn the steering wheels in order to drive in a circle/arc of radius r?
The steering system in cars is called Ackerman steering. The front wheels have to turn at slightly different angles such that the if lines drawn perpendicular to the plane of each wheel and through the center of the wheel all meet at a single point, the center of the turn. This is a pretty good article:

http://www.rctek.com/handling/ackerm...principle.html
  #10   Spotlight this post!  
Unread 22-01-2007, 01:09
Kevin Watson's Avatar
Kevin Watson Kevin Watson is offline
La Caņada High School
FRC #2429
Team Role: Mentor
 
Join Date: Jan 2002
Rookie Year: 2001
Location: La Caņada, California
Posts: 1,335
Kevin Watson has a reputation beyond reputeKevin Watson has a reputation beyond reputeKevin Watson has a reputation beyond reputeKevin Watson has a reputation beyond reputeKevin Watson has a reputation beyond reputeKevin Watson has a reputation beyond reputeKevin Watson has a reputation beyond reputeKevin Watson has a reputation beyond reputeKevin Watson has a reputation beyond reputeKevin Watson has a reputation beyond reputeKevin Watson has a reputation beyond repute
Re: Arc Driving

Quote:
Originally Posted by dhoizner View Post
Perhaps motivated by Kevin's drawing?
Perhaps it's presumptious of me to assume that you're referring to the drawing I posted, but in case it is, Ackerman steering won't work very well because the strategy counts on the 'bots ability to do a turn-in-place, which Ackerman can't do very well. Actually, I had in mind a tank-drive setup, which can do a nice turn-in-place (with suitable wheels/tires) and driving arcs can be achieved by just driving each side at a different velocity.

If it's not my drawing you're referring to, then never mind <grin>.

-Kevin
__________________
Kevin Watson
Engineer at stealth-mode startup
http://kevin.org

Last edited by Kevin Watson : 22-01-2007 at 13:07. Reason: Splling eror.
  #11   Spotlight this post!  
Unread 22-01-2007, 12:53
maniac_2040's Avatar
maniac_2040 maniac_2040 is offline
Registered User
AKA: Matt
FRC #3302 (Turbo Trojans)
Team Role: Programmer
 
Join Date: Jan 2006
Rookie Year: 2005
Location: Clawson, Michigan
Posts: 34
maniac_2040 is infamous around these partsmaniac_2040 is infamous around these partsmaniac_2040 is infamous around these partsmaniac_2040 is infamous around these parts
Send a message via MSN to maniac_2040
Re: Arc Driving

Quote:
Originally Posted by Kevin Watson View Post
Perhaps it's presumptious of me to assume that you're referring to the drawing I posted, but in case it is, Ackerman steering won't work very well because the strategy counts on the 'bots ability to do a turn-in-place, which Ackerman can't do very well. Actually, I had in mind a tank-drive setup, which can do a nice turn-in-place (with suitable wheels/tires) and driving arcs can be achieved by just driving each side at a different velocity.

If it's not my drawing you're referring to, then nevermind <grin>.

-Kevin
heh, the strategy in the picture did give me ideas. It happens to work perfect for our forklift drivetrain(easier to drive in an arc).

- Not going with Ackerman steering, so turns in place will be just fine.

Quote:
The steering system in cars is called Ackerman steering. The front wheels have to turn at slightly different angles such that the if lines drawn perpendicular to the plane of each wheel and through the center of the wheel all meet at a single point, the center of the turn. This is a pretty good article:

http://www.rctek.com/handling/ackerm...principle.html
That is very good information, however it doesn't help me with my problem as I am not using ackerman steering. Also, it doesn't give any mathematcal equations which is what I was looking for. Thanks anyway.
  #12   Spotlight this post!  
Unread 22-01-2007, 13:36
ericand's Avatar
ericand ericand is offline
Registered User
AKA: Eric Anderson
FRC #3765 (Terrabots)
Team Role: Mentor
 
Join Date: Jan 2005
Rookie Year: 2004
Location: St. Paul, MN
Posts: 148
ericand is a jewel in the roughericand is a jewel in the roughericand is a jewel in the rough
Re: Arc Driving

I think the math works out very simply if you work in radians. If you want to follow a curve of radius R through an ARC of angle A (in radians), then the inside track of the robot will travel a distance of R*A. since the outside track of the robot is at a fixed distance from the inside (by the width of the robot W), the distance traveled by the ouside would be (R+W)*A.

Distance inside of curve : Di
Distance outside of curve : Do

Di = R*A
Do = (R+W)*A = R*A + W*A = Di + W*A

You can use simiar math to compute the robot's heading change based on the distances traveld by the right and left sides of the robot and the width of the robot.

Note that by using radians you can avoid the need for trig functions.

Last edited by ericand : 22-01-2007 at 13:39. Reason: update
  #13   Spotlight this post!  
Unread 22-01-2007, 13:37
Dan Zollman's Avatar
Dan Zollman Dan Zollman is offline
7
FRC #1712 (Dawgma)
Team Role: Alumni
 
Join Date: May 2005
Rookie Year: 2005
Location: Ardmore, PA
Posts: 392
Dan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond repute
Re: Arc Driving

I'm pretty sure that f(x) = tan-1(d/x) would work.

If you draw lines through the front and back wheels (basically, through their axles) as TimCraig said, I am assuming that the intersection of those lines would be the center point of the arc. The line from the point between the two back wheels to the point between the front wheels gives you d (I'll call it line D). Line D is perpendicular to the line drawn from the back wheels to the center of the circle/arc (line B). Thus lines D and B make a right triangle with hypotenuse drawn from the front wheels to the center of the circle.

The tangent function is described as the ratio of length d to length b. b is the arc radius. Angle A is the angle between b and the hypotenuse.
tan(A) = d/x
A = tan-1(d/x)

I don't think it matters if the front wheels don't share an axle, because the lines are drawn from the midpoint between the two wheels.
__________________
Product design student at Rensselaer
Web designer/consultant
FIRST alum, Dawgma 1712

dan.zollman - at - gmail.com
  #14   Spotlight this post!  
Unread 22-01-2007, 13:48
Dan Zollman's Avatar
Dan Zollman Dan Zollman is offline
7
FRC #1712 (Dawgma)
Team Role: Alumni
 
Join Date: May 2005
Rookie Year: 2005
Location: Ardmore, PA
Posts: 392
Dan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond reputeDan Zollman has a reputation beyond repute
Re: Arc Driving

Quote:
Originally Posted by ericand View Post
I think the math works out very simply if you work in radians. If you want to follow a curve of radius R through an ARC of angle A (in radians), then the inside track of the robot will travel a distance of R*A. since the outside track of the robot is at a fixed distance from the inside (by the width of the robot W), the distance traveled by the ouside would be (R+W)*A.

Distance inside of curve : Di
Distance outside of curve : Do

Di = R*A
Do = (R+W)*A = R*A + W*A = Di + W*A

You can use simiar math to compute the robot's heading change based on the distances traveld by the right and left sides of the robot and the width of the robot.

Note that by using radians you can avoid the need for trig functions.
This would work for computing the distance traveled if you know the angle traveled and the arc radius, but an inverse trig function would still be necessary to determine what angles the wheels have to be in order to achieve that arc radius. The angle of the wheels are independent from the angle through which the vehicle travels.
__________________
Product design student at Rensselaer
Web designer/consultant
FIRST alum, Dawgma 1712

dan.zollman - at - gmail.com
  #15   Spotlight this post!  
Unread 22-01-2007, 20:13
maniac_2040's Avatar
maniac_2040 maniac_2040 is offline
Registered User
AKA: Matt
FRC #3302 (Turbo Trojans)
Team Role: Programmer
 
Join Date: Jan 2006
Rookie Year: 2005
Location: Clawson, Michigan
Posts: 34
maniac_2040 is infamous around these partsmaniac_2040 is infamous around these partsmaniac_2040 is infamous around these partsmaniac_2040 is infamous around these parts
Send a message via MSN to maniac_2040
Re: Arc Driving

Quote:
Originally Posted by worldbringer View Post
I'm pretty sure that f(x) = tan-1(d/x) would work.

If you draw lines through the front and back wheels (basically, through their axles) as TimCraig said, I am assuming that the intersection of those lines would be the center point of the arc. The line from the point between the two back wheels to the point between the front wheels gives you d (I'll call it line D). Line D is perpendicular to the line drawn from the back wheels to the center of the circle/arc (line B). Thus lines D and B make a right triangle with hypotenuse drawn from the front wheels to the center of the circle.

The tangent function is described as the ratio of length d to length b. b is the arc radius. Angle A is the angle between b and the hypotenuse.
tan(A) = d/x
A = tan-1(d/x)

I don't think it matters if the front wheels don't share an axle, because the lines are drawn from the midpoint between the two wheels.
Thanks, I will test this to see if it works out. Sounds right, but could you perhaps maybe post a picture? It's hard to visualize what you are saying.
Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Build your own Arc Welder! Adam Richards Technical Discussion 4 23-09-2006 16:22
ARC Welding Aluminum Simon Strauss Technical Discussion 12 20-09-2006 19:45
Driving at Last! The_Goodie Robot Showcase 4 10-02-2005 20:23
Power arc? Tytus Gerrish Technical Discussion 1 31-08-2003 20:15
Driving a clutch Kevin A Chit-Chat 18 03-07-2003 16:02


All times are GMT -5. The time now is 22:48.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi