How to Use Mecanum Wheels in 200 Seconds

Поделиться
HTML-код
  • Опубликовано: 21 июл 2024
  • An animated guide to using mecanum wheels or omni wheels. This video visually demonstrates how to mount and program mecanum wheels.
    The code in this video was created for FTC using the Qualcomm RobotCore platform, but it should be trivial to translate to a different programming language.
    Chapters:
    0:00 Intro
    0:24 Mounting
    1:02 Programming
    3:02 End
    Programs used:
    Blender
    Adobe After Effects
    Adobe Illustrator
    Desmotion (Developed by a friend and me)
    link: www.monkeyflowermath.com/desm...
    Krita
    Audacity
    HitFilm Express

Комментарии • 34

  • @Gavin_4D
    @Gavin_4D  Год назад +15

    IMPORTANT CORRECTION:
    In method 2, inside of the if statement the turn values should be inside of absolute value functions:
    If ((power + Math.abs(turn)) > 1) {
    leftFront /= power + Math.abs(turn);
    rightFront /= power + Math.abs(turn);
    leftRear /= power + Math.abs(turn);
    rightRear /= power + Math.abs(turn);
    }

  • @CarlDoesEverything
    @CarlDoesEverything Год назад +5

    By far the best video I've ever found to describe mecanum drive. Absolutely wonderful, keep up the good work!

  • @yogpanjarale
    @yogpanjarale Год назад

    Amazing visuals, explanations, love the video style 🙌🏻pls keep making videos

  • @teodorvangelov
    @teodorvangelov 2 года назад +4

    Thanks. Really well made video.

  • @LeoDaLionEdits
    @LeoDaLionEdits 2 года назад +4

    Super well made video

  • @elywickander4666
    @elywickander4666 2 года назад +4

    the animations are awesome

  • @hakanatas
    @hakanatas 9 месяцев назад

    It is a wonderful tutorial. Thanks.

  • @nyeinchanzaw6936
    @nyeinchanzaw6936 2 года назад +2

    More contents like this please.

  • @MarinusMakesStuff
    @MarinusMakesStuff Год назад

    Super useful to know how to position the wheels correctly. My challenge will be how to implement this motion into the controller that I'm using. I was thinking to use stepper motors and reuse an old 3D printer controller I had laying around. But I'm not sure how to work out the kinematics. I'm very new to that.

  • @catdisc5304
    @catdisc5304 Год назад +2

    thank you so much for this video, I used these 200 second for a couple of hours now to try to implement a mecanum wheel based movement system in my robot. I'm using an arduino UNO with a FS ia6B receiver and noticed, that by using my own implementation of your code (yours seems to be in Java whereas the UNO uses c++ as its coding language, also my motor drivers dont use negative numbers but instead forward/backward + speed between 0 and 255) that my motors behave weirdly using method 2.
    I only get a limited range on my sticks when trying to move diagonally, when i go to full throttle 45 degrees it will just stop after moving the stick past 75%ish. method one however works flawlessly, so i think im going to stick with that. Also apparently using method 2 was too much for my arduino as it started drawing all my current with method 2 and basically none with 1.
    I'm kinda proud of my implementation of your method 2 but it's sad that all the time I spent on it was for nothing...

  • @reee3166
    @reee3166 2 года назад +4

    Ty, I have been looking on how to program a Mecanum wheel but so many videos only show which way the motor turns and no methods.

  • @SinopleTree
    @SinopleTree 7 месяцев назад

    Nice and useful content. Greetings!

  • @GarageAngel
    @GarageAngel Год назад

    Great video and explanation, does this solution also work for 3 wheel omni drive "kiwi" systems? what would change?

  • @arctan4547
    @arctan4547 9 месяцев назад +1

    I really think that you should enter SoME4 when it comes around and cover a topic similar to this

  • @thedodgemaster4977
    @thedodgemaster4977 7 месяцев назад

    A different way to do the first half of method 2 with x and y input is to look at them as a vector and rotate them -45 degrees using a rotation matrix. Then you get the new axis. For field centric drive all what is needed is to put the angle of the robot in the rotation: (θ-45).

  • @johnhoffman1969
    @johnhoffman1969 2 года назад +7

    Very nice video! What are your controllers values at stick fully up, stick middle, stick fully down for Speed control? The final output to a wheel is in? (percentage or min / max bits for motor controller?)

    • @Gavin_4D
      @Gavin_4D  2 года назад +2

      The programming was primarily created for FTC, which has the vertical axis inverted so up is -1 and down is +1 the middle is 0. The horizontal axis has left as -1 and right as +1. The final output for each wheel is a range from -1 to +1 which you could convert to whatever scale your specific controller uses. I hope this helps

  • @usnaveen
    @usnaveen 4 месяца назад

    Noway you have such less subscribers. Keep working hard may god bless you.

  • @danmadesclaire4706
    @danmadesclaire4706 4 месяца назад

    Ty for helpful video. btw what if I just what to control it in 4 direction, then could I short 2 motor in same side together?

  • @localobug3034
    @localobug3034 Год назад +1

    Oh my god thank you

  • @jedferreras4559
    @jedferreras4559 Год назад +3

    This video has a 3blue 1 brown vibe, What software did you use ?
    Really cool animation btw

    • @Gavin_4D
      @Gavin_4D  Год назад +3

      Thanks :)
      I used many different programs to make this video here is all of them:
      Blender
      Adobe After Effects
      Adobe Illustrator
      Desmotion (Developed by a friend and me; link is description)
      Krita
      Audacity
      HitFilm Express

  • @floris2872
    @floris2872 Год назад +1

    Very helpfull video! Im trying to code the second method in c ++ for arduino, but i was wondering what the " /= " operator does. You state in your video it scales them down so the values dont exceed 1, does it scale each wheel's speed by the same value?

    • @CarlDoesEverything
      @CarlDoesEverything Год назад +2

      /= means to divide itself by something. Thus the example from the video:
      leftFront /= power + turn;
      is functionally equivalent to:
      leftFront = leftFront / (power + turn)

    • @MrStebeau
      @MrStebeau Год назад

      Hi, have you been able to make the code for Arduino work ?

  • @davidgeorge1271
    @davidgeorge1271 Год назад +1

    Do you have a code to move the robot in a circular path ?

  • @shibainugamer
    @shibainugamer Год назад

    Amazing tutorial, explained everything very clearly and accurately without using vectors and had clean animatoin. However, the dividing by the maximum power to achieve a different direction was not explained clearly.

  • @garethdicker9262
    @garethdicker9262 9 месяцев назад +1

    This may be silly, but do you need to be reading from encoders for this, or is it open loop?

    • @markhenry1118
      @markhenry1118 7 месяцев назад

      If you are ok with potential slight inaccuracies I think you can just use percentage speed control using the pwm motor controller your dc motor is connected to.

  • @dailyfunnytv358
    @dailyfunnytv358 9 месяцев назад +1

    how about a demo

  • @nazryJ
    @nazryJ Год назад +3

    Why do we subtract with Mat.PI/4 to convert to radians? Is this because you rotate the whole robot by -45°?

    • @HaHa-xk7nj
      @HaHa-xk7nj 7 месяцев назад

      No because X would be one set of wheel and Y would be the other that way

  • @actionverse3799
    @actionverse3799 29 дней назад

    Bro this c++?

  • @actionverse3799
    @actionverse3799 29 дней назад

    Bro this c++?