Go to Post Nothing worse than an intolerant field :D - JB987 [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

 
 
 
Thread Tools Rate Thread Display Modes
Prev Previous Post   Next Post Next
  #4   Spotlight this post!  
Unread 17-02-2007, 10:38
michniewski michniewski is offline
Registered User
FRC #1353
 
Join Date: Jan 2007
Location: Canada
Posts: 6
michniewski is an unknown quantity at this point
Re: Trig Lookup Table

Thanks for the replies.

I'm not just looking for a given number of angles (ie set positions), but rather within a range (almost 360 degrees for at least one of two angles).

I'll try the suggestion of replacing the cos function in Kevin's code with the cosine inverse.

Here's the current code. I put things that are used or calculated more than once in a variable, which is called later.

Basically I'm just looking for the quickest way to execute this code, my main idea being using a trig lookup table.

Code:
//
// For Calculations
//
l_upper_squared = arm.length_upper^2;
l_lower_squared = arm.length_lower^2;

// dist. of arm infront of bot + offset of arm from front of bot
temp_o_d = (arm.offset_front + arm.distance); 

temp_R_squared = (arm.height^2) + (temp_o_d^2);
temp_R = sqrt(temp_R_squared);

//
// Calculate Angles
//

// calculate joint1 angle 1
j1_angle1 = acos( arm.distance / temp_R  );

// calculate joint1 angle 2
temp_var = ( (l_upper_squared) - (l_lower_squared) - (temp_R_squared) ) / ( (-2) * (arm.length_lower) * temp_R );
j1_angle2 = acos( temp_var );

// calculate joint2 angle
temp_var =  ( temp_R_squared - (l_lower_squared) - (l_upper_squared) ) / ( (-2) * arm.length_lower * arm.length_upper );
j2_angle = acos( temp_var );

//
// Set Joint Angles
//
arm.j1_set_angle = j1_angle1 + j1_angle2;	// joint1
arm.j2_set_angle = j2_angle;				// joint2

// done
I've tried to keep all the trig functions the same (so they're all arccos, or inverse cosine).

Thanks,

Michael

Edit: the arccos in the code should be (and now is) acos, right?
__________________
- Michael Michniewski
Team 1353, The Spartans



Greater Toronto Regional
- look for the Spartan mascot

Last edited by michniewski : 17-02-2007 at 10:43.
 


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
Lookup Table Generator GUI teh_r4v3 Programming 6 15-02-2006 22:22
A VERY nice perl script for generating lookup tables. Validius Programming 11 31-03-2005 10:15
Large Lookup Tables Mr. Lim Programming 5 16-02-2004 21:30
Lookup table generation tool WillyC Programming 12 15-02-2004 21:01
Trig archiver 2001 4 23-06-2002 23:14


All times are GMT -5. The time now is 00:30.

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