gatocrane Posted December 19, 2006 Report Posted December 19, 2006 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 Quote
Buffy Posted December 19, 2006 Report Posted December 19, 2006 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 Quote
Turtle Posted December 19, 2006 Report Posted December 19, 2006 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. Catenary -- from Wolfram MathWorld Quote
gatocrane Posted December 19, 2006 Author Report Posted December 19, 2006 You can see a video of it at work here: gatocrane.com/skycam/skycamdemo.mov I'll work on getting a diagram together Quote
Turtle Posted December 19, 2006 Report Posted December 19, 2006 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. ?? Did the catenary reference help? Quote
Pyrotex Posted December 19, 2006 Report Posted December 19, 2006 I threw together a fast sketch of the geometry of the football field, the four towers and the camera system. Does this help? Quote
Buffy Posted December 19, 2006 Report Posted December 19, 2006 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 Quote
CraigD Posted December 20, 2006 Report Posted December 20, 2006 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 versar "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=RNote 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/outputh: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/ . Quote
Pyrotex Posted December 20, 2006 Report Posted December 20, 2006 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). Quote
CraigD Posted December 20, 2006 Report Posted December 20, 2006 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<. Pyrotex 1 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.