|
|
|
| Wanna hang together? |
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
||||
|
||||
|
calculating position using follower wheels
A certain robot with a 3 degree-of-freedom drivetrain (FWD, STR, RCW) is on a flat level floor. At time T=0, its center of geometry (CoG) is located at the origin of an XY coordinate system fixed with respect to the floor; it is facing 15 degrees clockwise from the +Y axis; and it has the the following robot-centric constant motions: forward = 5 ft/sQuestion 1: What are the coordinates 3 seconds later, and what direction is the robot facing? Students, Mentors, engineers, and professors welcome. Last edited by Ether : 04-10-2013 at 17:44. |
|
#2
|
|||
|
|||
|
Re: calculating position using follower wheels
It is at the origin, facing 15 degrees clockwise from the +Y axis.
EDIT: 120 deg/sec * 3 sec = 360 degrees -- it just goes in a circle. Last edited by flameout : 04-10-2013 at 18:07. Reason: Added a tiny bit of math |
|
#3
|
||||
|
||||
|
Re: calculating position using follower wheels
Quote:
Question 2: What's the radius of the circle? |
|
#4
|
|||
|
|||
|
Re: calculating position using follower wheels
Spoiler for solution:
EDIT: Perfectly matched text color w/ background color. EDIT2: Oops, it's 5 ft/s forward and 4 ft/s strafing, not 4 ft/s and 3 ft/s EDIT3: Changed colored text to a spoiler -- thank you EricH Last edited by flameout : 04-10-2013 at 21:53. Reason: color -> spoiler |
|
#5
|
||||
|
||||
|
Re: calculating position using follower wheels
Quote:
This one is quite a bit more difficult: Question 3: Exactly the same as Question 1, except the FWD speed is a function of time, as follows: FWD = 5.0 + 1.0*T. In other words, FWD starts with the value 5.0 at T=0, and increases smoothly and linearly at a rate of 1 ft/sec/sec. The STR and RCW remain constant at 4 ft/sec and 120 deg/sec respectively. |
|
#6
|
|||
|
|||
|
Re: calculating position using follower wheels
Spoiler for Solution:
Can this be done without integrals? Last edited by maths222 : 04-10-2013 at 21:47. Reason: Add spoiler tag |
|
#7
|
|||||
|
|||||
|
Re: calculating position using follower wheels
Not answering the math questions... just this one.
Quote:
Spoiler for This is a spoiler:
And now back to the math... |
|
#8
|
||||
|
||||
|
Re: calculating position using follower wheels
Spoiler for Question 3:
maths222, what coordinate orientation did you use? If X x Y is out of the page (like axes are usually drawn), I think you got your angle sign wrong (the strafe movement cancels out. rotation is clockwise, so the robot's forward movement is toward +X for most of the first half of the movement, and -X for the second half. since the robot moves faster during the second half, a negative result makes sense) |
|
#9
|
|||
|
|||
|
Re: calculating position using follower wheels
Quote:
|
|
#10
|
|||
|
|||
|
Re: calculating position using follower wheels
I did have it rotate counter-clockwise (oops). Corrected answer is the same, with both coordinates their opposites.
|
|
#11
|
||||
|
||||
|
Re: calculating position using follower wheels
Great work, Jacob and Ryan. Reps to you both. Ryan: what CAS did you use for that? The syntax you used was rejected by Maxima, Octave, and SciLab. (I got it to work in Maxima by changing the syntax a bit) Jacob: You got the right answer, but didn't show your work. How did you solve it? This has a potential practical application for FRC. If you put 3 omni follower wheels -- in the the correct configuration -- on a robot, you can get FWD, STR, and RCW information from them. Then you can use something like the attached C code to get the position and orientation of the robot. Last edited by Ether : 05-10-2013 at 14:22. |
|
#12
|
|||
|
|||
|
Re: calculating position using follower wheels
I used Microsoft mathematics, which only allows radians in calculus functions:
X: integral((5+1t)cos((90-15)(pi/180)-120pi/180t)+3sin((90-15)(pi/180)-120pi/180t), t, 0, 3) Y: integral((5+1t)sin((90-15)(pi/180)-120pi/180t)+3cos((90-15)(pi/180)-120pi/180t), t, 0, 3) |
|
#13
|
||||
|
||||
|
Re: calculating position using follower wheels
Question 4: In the code block highlighted in blue at the bottom of post 11 the following code appears for calculating position and heading: Code:
Q+=dR/2.0; X+=dF*sin(Q)+dS*cos(Q); Y+=dF*cos(Q)-dS*sin(Q); Q+=dR/2.0; Code:
Q+=dR; X+=dF*sin(Q)+dS*cos(Q); Y+=dF*cos(Q)-dS*sin(Q); |
|
#14
|
|||
|
|||
|
Re: calculating position using follower wheels
Spoiler for Justification:
It is not the best proof, but it explains the general reasoning. |
|
#15
|
||||
|
||||
|
Re: calculating position using follower wheels
Quote:
See attachment for additional explanation using geometry and a bit of calculus. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|