Non-Jet Omnicraft.

View previous topic View next topic Go down

Non-Jet Omnicraft.

Post by Sean Mirrsen on Thu Aug 19, 2010 1:04 am

So, I've been experimenting with an Omni-Craft, meaning a vehicle capable of driving, swimming, and flying, without using direct force from Jets (which are cheating for this purpose). Its base form is a (sort of a) car, which is why it's in the car model forum.

I've chosen a submarine and a helicopter for the swimming and flight modes. The helicopter mode isn't controllable yet, but seems stable enough by itself to implement some sort of control at a later point. It's possible to implement with some form of script, but I haven't yet succeeded with making even a normal controllable helicopter, let alone a transforming one. So, any suggestions?

Code:
// [RCD]
Val
{
   ALT(default=0, min=-30, max=30, step=3)
   BRAKE(default=0, max=8000, step=100)
   DRIVE(default=0, min=-4000, max=8000, step=800)
   FIRE(default=0, max=16000, step=5000)
   FORM1(default=30, min=10, max=30)
   FORM10(default=179, min=10, max=179)
   FORM11(default=70, min=20, max=70)
   FORM12(default=179, min=150, max=179)
   FORM13(default=179, min=20, max=179)
   FORM2(default=120, min=-100, max=120)
   FORM3(default=10, max=10)
   FORM4(default=0, max=30)
   FORM5(default=160, min=-10, max=160)
   FORM6(default=40, min=40, max=90)
   FORM7(default=90, max=90)
   FORM8(default=120, min=120, max=175)
   FORM9(default=0, max=40)
   STEER(default=0, min=-20, max=20, step=2)
   THRUST(default=0, min=-200000, max=200000, step=10000)
}
Key
{
   0:DRIVE(step=600)
   1:DRIVE(step=-600)
   2:STEER(step=1)
   3:STEER(step=-1)
   4:FORM1(step=-1), FORM2(step=-11), FORM3(step=-2), FORM4(step=-2), FORM5(step=-9), FORM6(step=5), FORM7(step=-5), FORM8(step=5), FORM9(step=-5), FORM10(step=12), FORM11(step=6), FORM12(step=5), FORM13(step=5)
   5:FORM3(step=2), FORM2(step=4), FORM1(step=1), FORM4(step=-2), FORM5(step=3), FORM6(step=-3), FORM7(step=5), FORM8(step=-5), FORM9(step=-2), FORM10(step=12), FORM11(step=6), FORM12(step=3), FORM13(step=6)
   6:ALT(step=-5)
   7:THRUST(step=1000)
   8:THRUST(step=-1000)
   9:ALT(step=5)
   10:FORM9(step=5), FORM1(step=-2), FORM10(step=-10), FORM2(step=-14), FORM3(step=2), FORM4(step=2), FORM5(step=-9), FORM6(step=5), FORM7(step=5), FORM8(step=5), FORM11(step=-6), FORM12(step=-3), FORM13(step=-5)
   11:FIRE(step=6000)
   12:FORM10(step=10)
   13:FORM10(step=-10)
}
Body
{
   Core() {
      N:Chip(angle=FORM3) {
         W:Chip(angle=-30) {
            W:Chip(angle=-150) {
               S:Chip(angle=STEER) {
                  S:Chip(angle=-FORM1) { }
               }
            }
         }
         E:Chip(angle=-30) {
            E:Chip(angle=-150) {
               S:Chip(angle=-STEER) {
                  S:Chip(angle=-FORM1) { }
               }
            }
         }
         N:TrimF(angle=90) {
            N:Chip(angle=FORM8) {
               N:Frame(angle=-FORM8) {
                  N:Wheel(angle=STEER, power=DRIVE) { }
                  N:Chip(angle=160) { }
               }
            }
            N:Chip(angle=-FORM8) {
               N:Frame(angle=FORM8) {
                  N:Wheel(angle=STEER, power=DRIVE) { }
                  N:Chip(angle=-160) { }
               }
            }
         }
         E:Chip(angle=FORM1) {
            E:Chip(angle=-FORM7) {
               E:Chip(angle=-90) { }
            }
            S:Chip(color=#000000) { }
         }
         W:Chip(angle=FORM1) {
            W:Chip(angle=-FORM7) {
               W:Chip(angle=-90) { }
            }
            S:Chip(color=#000000) { }
         }
         N:Chip(angle=-32) {
            N:Chip(angle=-148) { }
         }
      }
      S:Chip(angle=-120) {
         S:Chip(angle=-60, color=#80FFFF) {
            S:Chip(angle=-23, color=#80FFFF) {
               W:Chip(angle=-90) { }
               E:Chip(angle=-90) { }
            }
            E:Chip(angle=-70) {
               E:Wheel(angle=-FORM11, power=-DRIVE) { }
            }
            W:Chip(angle=-70) {
               W:Wheel(angle=-FORM11, power=DRIVE) { }
            }
         }
      }
      S:Frame(angle=-FORM1) {
         S:Frame(angle=-FORM12) {
            S:Frame(angle=FORM13) {
               S:Frame(angle=FORM9) {
                  S:Wheel(angle=-FORM2, power=THRUST, brake=BRAKE) {
                     E:TrimF(angle=30) {
                        E:Chip(angle=-FORM10) {
                           E:Chip(angle=FORM10) { }
                        }
                     }
                     S:TrimF(angle=30) {
                        S:Chip(angle=-FORM10) {
                           S:Chip(angle=FORM10) { }
                        }
                     }
                     W:TrimF(angle=30) {
                        W:Chip(angle=-FORM10) {
                           W:Chip(angle=FORM10) { }
                        }
                     }
                     N:TrimF(angle=30) {
                        N:Chip(angle=-FORM10) {
                           N:Chip(angle=FORM10) { }
                        }
                     }
                  }
                  S:Frame(angle=-FORM5) {
                     S:Wheel(angle=FORM6, power=-THRUST, brake=BRAKE) {
                        S:TrimF(angle=-30) {
                           S:Chip(angle=-FORM10) {
                              S:Chip(angle=FORM10) { }
                           }
                        }
                        E:TrimF(angle=-30) {
                           E:Chip(angle=-FORM10) {
                              E:Chip(angle=FORM10) { }
                           }
                        }
                        N:TrimF(angle=-30) {
                           N:Chip(angle=-FORM10) {
                              N:Chip(angle=FORM10) { }
                           }
                        }
                        W:TrimF(angle=-30) {
                           W:Chip(angle=-FORM10) {
                              W:Chip(angle=FORM10) { }
                           }
                        }
                     }
                  }
               }
            }
         }
      }
      W:Chip(angle=-FORM4) {
         W:Trim(angle=-FORM3) {
            S:Trim(angle=FORM7) {
               S:Frame(angle=-FORM13) {
                  S:Frame(angle=FORM13) {
                     S:Wheel(angle=FORM4, power=-DRIVE, brake=BRAKE) { }
                  }
               }
            }
            W:Chip(angle=-90) {
               W:Chip(angle=-90) {
                  W:Chip(angle=-45) { }
                  S:Chip(angle=-20) { }
                  N:RLW(angle=-90) { }
               }
            }
         }
      }
      E:Chip(angle=-FORM4) {
         E:Trim(angle=FORM3) {
            S:Trim(angle=-FORM7) {
               S:Frame(angle=-FORM13) {
                  S:Frame(angle=FORM13) {
                     S:Wheel(angle=FORM4, power=DRIVE, brake=BRAKE) { }
                  }
               }
            }
            E:Chip(angle=-90) {
               E:Chip(angle=-90) {
                  E:Chip(angle=-45) { }
                  N:RLW(angle=-90) { }
                  S:Chip(angle=-20) { }
               }
            }
         }
      }
      S:Chip(angle=ALT) {
         W:Trim(angle=-ALT) { }
         E:Trim(angle=ALT) { }
      }
      S:TrimF(angle=90) {
         S:Frame(angle=FORM13) {
            S:Frame(angle=-FORM13) {
               S:Wheel(angle=-STEER) { }
            }
         }
         S:Frame(angle=-FORM13) {
            S:Frame(angle=FORM13) {
               S:Wheel(angle=-STEER) { }
            }
         }
      }
   }
}
Script
{
   print 0,"Omnicraft, test model."
   print 1,"X: Car mode."
   print 2," In car mode: Arrow keys to drive."
   print 3,"Z: Submarine mode."
   print 4," In submarine mode: A: Accelerate, S: Reverse, Left/Right Arrows: Turn and roll,"
   print 5,"      D: Dive, C: Surface, G: Extend prop blades."
   print 6,"V: Helicopter mode."
   print 7," In helicopter mode: Arrow keys to taxi, S: Increase throttle."
}

Sean Mirrsen
Cube
Cube

Posts : 4
Join date : 2010-08-19

View user profile

Back to top Go down

Re: Non-Jet Omnicraft.

Post by bwansy on Thu Aug 19, 2010 1:59 am

Helicopter control is among the most complicated vehicle controls of all. It's called "cyclic control", which involves rapidly changing the angle of each individual rotor blade.

_________________
A.K.A. Bernard

bwansy
Admin

Posts : 170
Join date : 2010-07-15

View user profile http://rigidchips.forum-motion.com

Back to top Go down

Re: Non-Jet Omnicraft.

Post by Sean Mirrsen on Thu Aug 19, 2010 2:18 am

Yes, and it's quite difficult to pull off, I'm aware of that. I've tried, with minimal success. However, for the purposes of the model, a simplified scheme such as used in the 3-channel mini-models can work. Dual props, brakes on either one for yaw, autobalancer on the top prop, plus some way of tilting the whole thing - by shifting balance for example, because adding another prop is going to overcomplicate the other modes of the vehicle.

Sean Mirrsen
Cube
Cube

Posts : 4
Join date : 2010-08-19

View user profile

Back to top Go down

Re: Non-Jet Omnicraft.

Post by Chris220 on Wed Aug 25, 2010 3:56 am

You can do cyclic control pretty easily with some simple circular trigonometry (have a look at a unit circle if you don't get what I mean)

_________________
mov ah,9
mov dl,msg
int 21h
int 20h

msg db "lolol",36h
avatar
Chris220
Moderator

Posts : 58
Join date : 2010-07-15
Age : 24
Location : Right behind you

View user profile

Back to top Go down

Re: Non-Jet Omnicraft.

Post by JHaskly on Thu Aug 26, 2010 12:45 am

Or the cyclic control tutorial bwansy posted (here)

_________________
Previously (and currently) known as Juz.

Please do not write "LUA", beause it's "Lua". It's Moon in Portuguese, not a Limited User Account, Last Universal Ancestor, or the Lukla Airport in Nepal.

JHaskly
Admin

Posts : 235
Join date : 2010-07-16
Age : 21
Location : Brisbane

View user profile

Back to top Go down

Re: Non-Jet Omnicraft.

Post by Chris220 on Thu Aug 26, 2010 3:11 pm

That is the trigonometry I was talking about
Didn't realise Bwansy had written a tutorial about it

_________________
mov ah,9
mov dl,msg
int 21h
int 20h

msg db "lolol",36h
avatar
Chris220
Moderator

Posts : 58
Join date : 2010-07-15
Age : 24
Location : Right behind you

View user profile

Back to top Go down

Re: Non-Jet Omnicraft.

Post by Sponsored content


Sponsored content


Back to top Go down

View previous topic View next topic Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum