|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
|||
|
|||
|
Re: how to program mecanum wheel drive?
My team has been using mecanums for a few years and at the beginning of the year an alumni asked me to make a program that could take full advantage of the mecanum wheels instead of our usual tank drive with trigger strafe boringness. after much thought and many matrices i realized that if you subtract the y axis form the x axis for the front right and back left and add y and x axes for the front right and back left we could make what i like to call omnidrive. it basically made it so that the robot would move in any direction the stick was pointing. after some more finagling i put the controls on two sticks and fixed a few value issues and now we have 2 stick mecanum omnidrive. its pretty difficult to explain but its fantastic to drive. if anyone needs any help i am also available for assistance
|
|
#2
|
||||
|
||||
|
Re: how to program mecanum wheel drive?
Quote:
Also, I assume there's a typo in there, because you said "front right and back left" twice. |
|
#3
|
|||
|
|||
|
Re: how to program mecanum wheel drive?
![]() That picture should make it fairly obvious. If not, look below. mainJoy is the one used for forward/back and strafing, rotJoy is used for rotation (pretty much like a FPS game, we even wired our camera's tilt up to rotJoy's Y axis so it is exactly like the usual FPS controls ) For best results, use an Xbox/PS3 controller. Remember forward is -1.Assuming you get -1..1: front_Left = -mainJoy.getY() - rotJoy.getX() + mainJoy.getX() front_Right = -mainJoy.getY() + rotJoy.getX() - mainJoy.getX() back_Left = -mainJoy.getY() - rotJoy.getX() - mainJoy.getX() back_Right = -mainJoy.getY() + rotJoy.getX() + mainJoy.getX() |
|
#4
|
||||
|
||||
|
Re: how to program mecanum wheel drive?
Quote:
1) I would think it would be more intuitive if pushing rotJoy to the right would cause clockwise rotation*. 2) You need to normalize the 4 wheel commands, in a way that preserves their holonomic relationship, before sending them to the motors. * I am assuming that the motors are set up so that issuing a + command causes the wheels to rotate in the "forward" direction |
|
#5
|
|||
|
|||
|
Re: how to program mecanum wheel drive?
Quote:
Didn't know about the handy PDF, though. Thanks ![]() |
|
#6
|
||||
|
||||
|
Re: how to program mecanum wheel drive?
Quote:
Code:
front_Left = -mainJoy.getY() + rotJoy.getX() + mainJoy.getX() front_Right = -mainJoy.getY() - rotJoy.getX() - mainJoy.getX() back_Left = -mainJoy.getY() + rotJoy.getX() - mainJoy.getX() back_Right = -mainJoy.getY() - rotJoy.getX() + mainJoy.getX() |
|
#7
|
|||
|
|||
|
Re: how to program mecanum wheel drive?
so, how do I program this? |
|
#8
|
||||
|
||||
|
Re: how to program mecanum wheel drive?
Just like any other motor: it depends on what you want to do with it.
|
|
#9
|
|||
|
|||
|
Re: how to program mecanum wheel drive?
ok, thanks
|
|
#10
|
|||
|
|||
|
Re: how to program mecanum wheel drive?
our team is trying to use the relay to control the window motor, how do we program this?
|
|
#11
|
||||
|
||||
|
Re: how to program mecanum wheel drive?
Quote:
Last edited by Ether : 20-02-2011 at 17:15. |
|
#12
|
|||
|
|||
|
Re: how to program mecanum wheel drive?
edit: where do we put the program in?
Last edited by sonicwingmode : 20-02-2011 at 17:25. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|