Jump to content
Science Forums

Recommended Posts

Posted

Is there anyone out there familiar with the SkyCam? It's a 4 wire suspended flying camera. Can anyone help me figure out the equation/formula for getting the cameras xyz position based on pulley locations and line lengths? It basically forms an upside down pyramid.

 

Thanks!

 

Abad

Posted

Can you post or direct us to any diagrams? Depending on how the pulley's work, it shouldn't be too hard to figure out the math: we've got some pretty good mathematicians around here....

 

Cheers,

Buffy

Posted
Is there anyone out there familiar with the SkyCam? It's a 4 wire suspended flying camera. Can anyone help me figure out the equation/formula for getting the cameras xyz position based on pulley locations and line lengths? It basically forms an upside down pyramid.

 

Thanks!

 

Abad

 

 

Excellent question. I have only a general idea, but the curve of a suspended cable is a catenary and this link may help get you started. :painting:

Catenary -- from Wolfram MathWorld

Posted
You can see a video of it at work here: gatocrane.com/skycam/skycamdemo.mov

 

I'll work on getting a diagram together

 

 

I get a plug-in error for the link. I don't know if that means it's on my end or yours. ?? :nahnahbooboo:

 

Did the catenary reference help?

Posted

Turtle: You prolly are missing QuickTime which is the format the movie is in.

 

gato: Impressive demo!

 

Turtle and Pyro each have half of the puzzle: you need to convert the straight lines on Pyro's graphic with caternary curves. The shape of these curves is going to be a function of the weight of the camera and the weight of the cables themselves. If the camera is very heavy compared to the cables, its possible that the correction due to curvature could be so small that you could do some simple trigonometry to get the solution, but that camera looks really small and I betcha the "h" in Pyro's diagram is going to be much higher than the "straightline" solution would indicate.

 

Now on to the math....

 

Cosine,

Buffy

Posted

As Buffy notes, ignoring the catenary-like curve of the lines, the skycam position is described by this system of 4 equations:

[math]x^2 +y^2 +(z-h)^2 = r_1^2[/math]

 

[math](x-w)^2 +y^2 +(z-h)^2 = r_2^2[/math]

 

[math]x^2 +(y-v)^2 +(z-h)^2 = r_3^2[/math]

 

[math](x-w)^2 +(y-v)^2 +(z-h)^2 = r_4^2[/math]

 

where [math]x[/math], [math]y[/math] give the horizontal, and [math]z[/math] the vertical, position of the vertex of the inverted pyramid/camera, [math]w[/math], [math]v[/math] are the distances between adjacent towers, and [math]h[/math] their height, and [math]r_1[/math], [math]r_2[/math], [math]r_3[/math], and [math]r_4[/math] the lengths of the lines. A rectangular arrangement of equal height towers is assumed.

 

Note that, despite having 4 lines, this system has only 3 degrees of freedom. Setting the length of any 3 lines determines not only the position of their vertex, but the length of the 4th line.

 

They can be easily manipulated to give any variable in terms of two or three of the others. Here’s a sample MUMPS program that calculates x, y, z given r1, r2, and r3, or vice versa

r "h:",h,! q:'h  r "v:",v,!  q:'v  r "w:",w,!  q:'w  s x=w/2,y=v/2,z=0 f  s r1=x**2+(y**2)+(h-z**2)**.5,r2=x-w**2+(y**2)+(h-z**2)**.5,r3=x**2+(y-v**2)+(h-z**2)**.5 w !,"r1:",r1,"/ " r R,! q:R="."  s:R]"" r1=R w "r2:",r2,"/ " r R,! q:R="."   s:R]"" r2=R w "r3:",r3,"/ " r R,! q:R="."   s:R]"" r3=R s x=r1**2-(r2**2)+(w**2)/2/w,y=r1**2-(r3**2)+(v**2)/2/v,z=h-(r1**2-(x**2)-(y**2)**.5),r4=x-w**2+(y-v**2)+(h-z**2)**.5 w "r4:",r4,! w "x:",x,"/ " r R,! q:R="."   s:R]"" x=R w "y:",y,"/ " r R,! q:R="."   s:R]"" y=R w "z:",z,"/ " r R,! q:R="."   s:R]"" z=R

Note that a**b in MUMPS means [math]a^b[/math], and expressions are evaluated within parenthesis strictly left-to-right.

 

Here’s some sample input/output

h:100
v:460
w:250

r1:280.2231253840410653/
r2:280.2231253840410653/
r3:280.2231253840410653/
r4:280.2231253840410653
x:125/
y:230/
z:-.0000000000000002/

r1:280.2231253840410653/ 270
r2:280.2231253840410653/ 270
r3:280.2231253840410653/
r4:280.2231253840410653
x:125/
y:223.8858695652173913/
z:15.4416331222837237/

r1:270/
r2:270/ 260
r3:280.2231253840410653/
r4:270.6011825546961648
x:135.6/
y:223.8858695652173913/
z:33.7598504755124739/

r1:270/ .

Posted

Well, now we get to the sticky part, actually doing the math.

 

I agree with Buffy. The cables will be catenaries because the cable weights will probably equal or exceed the payload weight. But I suggest we assume straight lines for the first approximation. Catenary equations have inverse trig functions and we are going to have to do some calculus.

 

Joysticks do not input positions. They input changes to position. Specifically, if the payload position is (x, y, h), then the joystick allows us to enter the *speeds* with which we desire x, y and h to change. This means the first derivatives of x, y and h.

 

Our desired outputs are the *speeds* with which the reel motors must operate to change the position of the payload. Again, first derivatives. So, we want:

 

R1' = fcn( x, y, h, x', y', h' )

R2' = fcn( x, y, h, x', y', h' )

R3' = fcn( x, y, h, x', y', h' )

R4' = fcn( x, y, h, x', y', h' )

 

where R1' is the take-in/let-out speed of the cable motor on tower R, measured in, say, meters per second;

x, y and h are the current position of the payload;

x', y' and h' are our joystick inputs (desired changes to position in m/sec).

Posted
Well, now we get to the sticky part, actually doing the math.
I already did – it’s straightforward, and imbedded in the long single line code box in post #8.
The cables will be catenaries because the cable weights will probably equal or exceed the payload weight. But I suggest we assume straight lines for the first approximation.
I ignored the droop of the cables, stretch, and other complicating stuff because… well, just because it was easier to ignore than attempt. Thin, strong cable much lighter than the camera pod being scooted around should make this approximation not too inaccurate.

 

After going to the minor trouble of allowing x,y,z to be calculated from r1,r2,r3 (and the dependent variable, r4), since that was the question originally posed in post #1, I found that that wasn’t very useful for fun “flying around” simulations. Just using the initial 4 equations to calculate r1,r2,r3,r4 for an inputted x,y,z was much more useful. Rounding the numbers to a sensible precision and displaying everything on a single line helped, too.

 

Here’s a brief “flight”, starting at z=0 in the middle of the field, straight up to z=2, then in a straight line, then the other way at an angle, then back down to z=0. If you thing of each line as occurring 1 second apart, and the units as meters, this is about an eye-level view of at sprinting speed.

h:50 v:200 w:100
       r1        r2        r3        r4  x           y           z
  122.474   122.474   122.474   122.474  50.000<     100.000<    0.000<2
  122.474   122.474   122.474   122.474  50.000<     100.000<    0.000<.5
  122.271   122.271   122.271   122.271  50.000<     100.000<    0.500<1
  122.070   122.070   122.070   122.070  50.000<     100.000<    1.000<1.5
  121.870   121.870   121.870   121.870  50.000<     100.000<    1.500<2
  121.672   121.672   121.672   121.672  50.000<     100.000<98  2.000<
  120.033   120.033   123.321   123.321  50.000<     98.000<94   2.000<
  116.790   116.790   126.649   126.649  50.000<     94.000<88   2.000<
  112.018   112.018   131.712   131.712  50.000<     88.000<80   2.000<
  105.849   105.849   138.578   138.578  50.000<     80.000<70   2.000<
   98.509    98.509   147.323   147.323  50.000<     70.000<60   2.000<
   91.673    91.673   156.218   156.218  50.000<     60.000<54   2.000<
   87.864    87.864   161.617   161.617  50.000<     54.000<51   2.000<
   86.052    86.052   164.332   164.332  50.000<     51.000<50   2.000<
   85.463    85.463   165.239   165.239  50.000<51   50.000<52   2.000<
   87.230    86.076   163.735   163.123  51.000<53   52.000<56   2.000<
   90.824    87.459   160.776   158.899  53.000<56   56.000<62   2.000<
   96.354    89.911   156.474   152.591  56.000<60   62.000<70   2.000<
  103.942    93.830   151.010   144.236  60.000<64   70.000<80   2.000<
  113.137   100.000   144.222   134.164  64.000<68   80.000<90   2.000<
  122.589   106.902   137.942   124.210  68.000<72   90.000<100  2.000<
  132.242   114.403   132.242   114.403  72.000<76   100.000<110 2.000<
  142.056   122.393   127.201   104.785  76.000<82   110.000<120 2.000<
  153.062   130.491   124.210    95.016  82.000<86   120.000<125 2.000<
  159.138   134.629   123.794    90.139  86.000<90   125.000<128 2.000<
  163.670   137.069   124.852    87.109  90.000<92   128.000<130 2.000<
  166.337   138.809   125.172    85.253  92.000<     130.000<    2.000<1.5
  166.482   138.983   125.364    85.535  92.000<     130.000<    1.500<1
  166.628   139.158   125.559    85.820  92.000<     130.000<    1.000<.5
  166.776   139.335   125.755    86.106  92.000<     130.000<    0.500<0
  166.925   139.513   125.952    86.394  92.000<.

  • 2 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...