Page 4 of 4 FirstFirst 1234
Results 31 to 40 of 40

Thread: Quad 4DOF Mech - Immortal

  1. #31
    Join Date
    Dec 2007
    Location
    Portland, OR
    Posts
    3,198
    Images
    952
    Rep Power
    141

    Re: Quad 4DOF Mech - Immortal

    Fantastic work!

    On something like this I'd probably go to Shapeways or i.materialize to get printed, given the tolerances needed.

    Seriously awesome work though!

  2. #32
    Join Date
    Sep 2010
    Posts
    206
    Images
    16
    Rep Power
    39

    Re: Quad 4DOF Mech - Immortal

    Quote Originally Posted by Tyberius View Post
    Fantastic work!

    On something like this I'd probably go to Shapeways or i.materialize to get printed, given the tolerances needed.

    Seriously awesome work though!
    Do you know what tolerences the makerbot is capable of? It is possible to make this where it doesn't require very high tolerances, +/- .015 maybe. (shim stock would be used in a few places, and you would drill the holes after print)

  3. #33
    Join Date
    Sep 2010
    Posts
    206
    Images
    16
    Rep Power
    39

    Re: Quad 4DOF Mech - Immortal




    Immortal has had some.. Upgrades since my last post.

    New Coxa Brackets
    New tilt on turret
    New guns
    Better gait
    Better looks
    Cleaned wiring
    and more..

    Heres a view from the pilots perspective:

  4. Re: Quad 4DOF Mech - Immortal

    This looks seriously awesome Oo

    Any more photos / videos of the beast ?
    I'd like to see the improved gaits very much
    ---
    Personal blog: http://xevel.org
    USB2AX documentation: http://xevelabs.com

  5. #35
    Join Date
    Jan 2008
    Location
    Norway, Stavanger
    Posts
    790
    Images
    276
    Rep Power
    80

    Re: Quad 4DOF Mech - Immortal

    Wow, thats awesome!
    I really like the video overlay.

    Great work!
    Kåre Halvorsen aka Zenta
    ---------------------------------
    Zenta's YouTube channel
    Zenta's Blog
    Zenta's Instagram

  6. #36
    Join Date
    Apr 2010
    Location
    Illinois
    Posts
    417
    Images
    105
    Rep Power
    48

    Re: Quad 4DOF Mech - Immortal

    Damn cire. Looks really fierce! I do not want to see that thing with those guns on in the ring. But can't say Immortal isn't looking awesome as hell man.

    Great work. +rep

  7. #37
    Join Date
    Sep 2010
    Posts
    206
    Images
    16
    Rep Power
    39

    Re: Quad 4DOF Mech - Immortal

    Immortal fared well at Robogames, winning gold as well as the innovation award. There weren't any major issues besides one AX-12 gears getting stripped. Here is a video of two of the matches:

    [ame="http://www.youtube.com/watch?v=FrhlYsF2uTU"]YouTube - Mech Warfare 2011 - Immortal[/ame]

    Since then I have been playing around with the walking a bit more, I made it more stable by changing the feet and doubled the speed.

    [ame="http://www.youtube.com/watch?v=gDpMWpen4JQ"]YouTube - Immortal gets a 100% speed boost[/ame]

  8. #38
    Join Date
    Sep 2010
    Posts
    206
    Images
    16
    Rep Power
    39

    Re: Quad 4DOF Mech - Immortal

    Here is Immortal's main control code that I used at Robogames to help out people trying to control their robot they want to. Things you will find in this code:

    • Panning & tilting control for turret
    • 3 walking modes for NUKE type quads (normal, crab, circle strafe)
    • Switchable burst fire and full automatic gun control
    • Voltage monitoring loop (no guarantees I still managed to kill a battery by leaving my robot on by accident )


    Code:
    /*
     * Auto-Generated by NUKE!
     *   http://arbotix.googlecode.com
     */
    
    #include <ax12.h>
    #include <BioloidController.h>
    #include <Commander.h>
    #include "nuke.h"
    #include <Servo.h>
    #include "poses.h"
    
    Commander command = Commander();
    
    
    
    void setup(){
        pinMode(0,OUTPUT);
       // pinMode(1,OUTPUT); // Digital Pin to drive tank gun setup
       // pinMode(3,OUTPUT); // Digital Pin to drive tank gun setup
    
        tilting = 490;     //Starting position of the tilt of the turret
        panning = 512;     //starting position of the panning of the turret
       
        // setup IK
        setupIK();
        gaitSelect(AMBLE);
        // setup serial
        Serial.begin(38400);
    
        // wait, then check the voltage (LiPO safety)
        delay (1000);
        float voltage = (ax12GetRegister (1, AX_PRESENT_VOLTAGE, 1)) / 10.0;
        Serial.print ("System Voltage: ");
        Serial.print (voltage);
        Serial.println (" volts.");
        if (voltage < 10.0)  //If voltage is below 10, then robot does not move - Note that if you dont have ax-12 id 1 plugged in, your robot will not work.
            while(1);
    
    
    
        // stand up slowly
        bioloid.poseSize = 18;
        bioloid.readPose();
        doIK();  
        bioloid.interpolateSetup(1000);
        while(bioloid.interpolating > 0){
            bioloid.interpolateStep();
            delay(3);
        }
    }
    
    void loop(){
    
      
      
    //-------------Voltage Monitoring Loop-----------
    
      voltagecheck++;
      if(voltagecheck >= 9){  //checks voltage every so many cycles to reduce the ammont of voltage checks processing
        voltagecheck = 0;    
        voltagecalculate++;
        voltageadd = (ax12GetRegister (1, AX_PRESENT_VOLTAGE, 1));
        if(voltageadd < 2){    //Detects bogus voltage reads and ignores the data
          voltageadd = 0;
          voltagecalculate--;
        } 
      
        voltagesum = voltagesum + voltageadd;    //Sum of the voltage checks
          if(voltagecalculate == 10){    //if average voltage is less then 10 then the guns turn off and the robot stops  
                if(voltagesum <1050){   
                       digitalWrite(1, LOW);
                       digitalWrite(3, LOW);
                       ax12SetRegister2(19,32,0);
                       ax12SetRegister2(20,32,0);
                        while(1==1){
                        }
                 }
              voltagesum = 0;
              voltagecalculate = 0;
             }
      
      }
      
      
      
      // -------------Inverse Kinematics Updater -----------
      if(bioloid.interpolating == 0){
        doIK();
        bioloid.interpolateSetup(tranTime);
      }
      
      
      // update joints
      bioloid.interpolateStep();
     
     
     
     
     
      // #############take commands####################
      
      
      //--------- Movement Control --------------
      if(command.ReadMsgs() > 0){
        digitalWrite(0,HIGH-digitalRead(0));
        Xspeed = (command.walkV)*2;        //The *2 value determines the max speed of the bot in the x direction, in multiples of 100mm/sec
        if((command.buttons&BUT_R1) > 0){  //If this is true, walk in crab mode, otherwise body rotates
          Yspeed = (command.walkH)*2;
          Xspeed = (command.walkV)*2;
          Rspeed = 0;
          }
          else if((command.buttons&BUT_LT) > 0){  //If this is true, walk in a reversing rotating strafe mode (For circuling a robot at a certain distance away)
          Xspeed = 0;
          Yspeed = (command.walkH)*2;
          
            if (Yspeed > 0){  //If robot is moving left, rotate body right
              Rspeed = ((command.walkV)/250.0);
            }
            else{   // If robot is moving right, rotate body left
               Rspeed = (-(command.walkV)/250.0); 
            }
          }
          
          else{    //for normal walking mode
          Rspeed = (-(command.walkH)/250.0)*2;
          Yspeed = 0;  
          }
          
          
          
          
          // --------Turret Control -------------
          
          panadd = (-(float)command.lookH)/20;   //This is the value added to the panning position each time. A higher division value means slower movement.
          tiltadd = (-(float)command.lookV)/30;  //This value is added to the tilting position each time the program loops.
          
          //This section creates a deadband for the commander controller (removed because issue of turret wandering stopped)
      /*    if(-1 < panadd && panadd < 1){
           panadd = 0; 
          }
          if (-1 < tiltadd && tiltadd < 1){
           tiltadd = 0;  
          }  */
          
          //This code allows the user to go into a "fast" turret control if the controller is moved past a certain range
          if(panadd < -5){
            panadd = -8;
          }
          if(panadd > 5){
            panadd = 8;
          }
          if(tiltadd < -4){
            tiltadd = -7;
          }
          if(tiltadd > 4){
            tiltadd = 7;
          }
          
          
          
          panning += panadd;    //This updates the value of panning / tilting
          tilting += tiltadd;
          
          
          
          if(tilting < 370)    //Limits the max range of the pan and tilt so the robot doesnt turn too far.
            tilting = 370;
          
          if(tilting > 490)
             tilting = 490;
          
          if(panning < 200)
          panning = 200;
          
          if(panning > 800)
          panning = 800;
          
          //Return turret to front view
          if((command.buttons&BUT_R2) > 0){   
          panning = 512;
         // tilting = 450; 
          }
          
    
    
    // ------------  Resting -------------      
          
          //Sits the robot down for low action times to save power
          if((command.buttons&BUT_L6) > 0){  
              rest = true;
            }
            else{
             rest = false;
            }
            
            
            
    //------------   Guns -------------
      if((command.buttons&BUT_R3) > 0){
        Gunmode = 2;    //Alternating burst fire mode
      }
      if((command.buttons&BUT_L4) > 0){
        Gunmode = 1;    //Full auto mode
      }
        
                 
      if(Gunmode == 1){    //Gun Trigger - Full auto - both guns fire at 50% voltage
          if((command.buttons&BUT_RT) > 0){
              ax12SetRegister2(19,32,602);
              ax12SetRegister2(20,32,602); 
          }
          else {
              ax12SetRegister2(20,32,0);
              ax12SetRegister2(19,32,0);  
          }
          }
          
          
     if(Gunmode == 2){ //Alternating burst fire mode
         if((command.buttons&BUT_RT) > 0 && burst_gun == 1){  //first gun in the burst cycle
           burst_start = millis(); //gets current time
           ax12SetRegister2(20,32,602);  //50% power to gun
           ax12SetRegister2(19,32,0);
           burst_gun = 2;
         }
         if((command.buttons&BUT_RT) > 0 && burst_gun == 3){   //second gun in the burst cycle
           burst_start = millis(); //gets current time
           ax12SetRegister2(19,32,602); 
           ax12SetRegister2(20,32,0);
           burst_gun = 0;
         }
           
           
         if(burst_start > 0 && millis() > burst_start + 500){   //Turns off guns once 500ms have passed
           ax12SetRegister2(20,32,0); 
           ax12SetRegister2(19,32,0); 
           burst_start = 0;
           if(burst_gun == 2){
           burst_gun = 3;  //Alternates the gun for the next burst cycle
           }
           else{
            burst_gun = 1; 
           }
           
          }
     }
          
       //This code is just for fun, not used in normal competition. Possible usage if need to aim higher then available.   
      if((command.buttons&BUT_L4) > 0){
    //    panning = 512;
    //    tilting = 512;
    
        bodyRotY = (((float)command.lookV))/600;
        bodyRotX = ((float)command.lookH)/600;
        //  bodyRotZ = ((float)command.lookH)/250.0;   */
        }
     }
    
    }

  9. #39
    Join Date
    Sep 2010
    Posts
    206
    Images
    16
    Rep Power
    39

    Re: Quad 4DOF Mech - Immortal


  10. Re: Quad 4DOF Mech - Immortal

    That is looking good my man. I love the cable job you did on that. It is so nice when cables are wrapped up! Congratz on the awards!

Thread Information

Users Browsing this Thread

There are currently 3 users browsing this thread. (0 members and 3 guests)

Similar Threads

  1. Mech Warfare 2012 Draft Rules
    By lnxfergy in forum Mech Warfare
    Replies: 81
    Last Post: 04-26-2012, 09:41 PM
  2. Mech Warfare 2010 Draft Rules
    By lnxfergy in forum Mech Warfare
    Replies: 125
    Last Post: 05-24-2010, 12:47 PM
  3. New Mech: Nostromo
    By webgeek in forum Mech Warfare
    Replies: 109
    Last Post: 04-04-2010, 08:00 AM
  4. Mech Warfare Rules and Guidelines
    By DresnerRobotics in forum Mech Warfare
    Replies: 238
    Last Post: 07-29-2009, 12:43 PM
  5. Big Sexy Yeti talks about Mech Wars, News at 11
    By DresnerRobotics in forum Mech Warfare
    Replies: 13
    Last Post: 09-01-2008, 07:24 PM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •