Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   how to program mecanum wheel drive? (http://www.chiefdelphi.com/forums/showthread.php?t=92041)

sonicwingmode 16-02-2011 18:42

how to program mecanum wheel drive?
 
our team searched the forums and found how to start program a mecanum wheel drive, but we are stuck.

http://www.chiefdelphi.com/forums/sh....php?p=1020714

We can't find the Mecanum Drive block. Do we have to download the Mecanum Drive block or do we have to make the program from scratch?

bmxer51 16-02-2011 21:54

Re: how to program mecanum wheel drive?
 
We also use mecanum wheels and last year our program was terrible. We have a pretty decent program this year after i sat down and learned labview. What controls are you using? We are using an xbox controller but it would be very simple to change it to the two joysticks provided in the kit. If you could give me that info I could help you come up with your equations to write for each wheel.

Teamcodeorange 16-02-2011 21:59

Re: how to program mecanum wheel drive?
 
When you say "block" I am going to assume that you are programing in labview. If you are available tomorrow (or today), I can help you program it using remote desktop software if that's ok with you. Send an email to therobotmaker@gmail.com if you are interested. :D :D :D

Alan Anderson 16-02-2011 22:35

Re: how to program mecanum wheel drive?
 
Quote:

Originally Posted by sonicwingmode (Post 1024622)
We can't find the Mecanum Drive block.

There's a Search button at the top of the Functions Palette. It'll show you where to find anything you can name. In this case, the name of the function you're looking for is actually Holonomic Drive.

Chexposito 17-02-2011 08:30

Re: how to program mecanum wheel drive?
 
i looked through the robot drive function and there is a mechanum drive...

Ether 17-02-2011 09:59

Re: how to program mecanum wheel drive?
 
3 Attachment(s)



See attached screenshots.




sonicwingmode 17-02-2011 15:32

Re: how to program mecanum wheel drive?
 
oh! there it is, I'm going to try to program it

sonicwingmode 18-02-2011 19:34

Re: how to program mecanum wheel drive?
 
what do we put in the rotation?

Owen Meaker 18-02-2011 23:43

Re: how to program mecanum wheel drive?
 
Quote:

Originally Posted by sonicwingmode (Post 1026265)
what do we put in the rotation?

rotation is the, well, rotation of the robot. If you have a joystick that can be twisted, you can use that (for our joystick its axis 4, but it could be different for other joysticks). If your joystick does not support twisting, you will need to have buttons that are wired in (for example, put in a case structure that determines which button is being pressed, that then outputs a 1 or -1 depending on which way you want to rotate it).

kornjones 19-02-2011 00:00

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

Ether 19-02-2011 09:11

Re: how to program mecanum wheel drive?
 
Quote:

Originally Posted by kornjones (Post 1026420)
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

What you have described has no rotation. Perhaps you left something out of your description?

Also, I assume there's a typo in there, because you said "front right and back left" twice.




sjspry 19-02-2011 16:23

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()

Ether 19-02-2011 16:38

Re: how to program mecanum wheel drive?
 
Quote:

Originally Posted by sjspry (Post 1026786)
mainJoy is the one used for forward/back and strafing, rotJoy is used for rotation... Remember forward is -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()

Two suggestions:

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



sjspry 19-02-2011 17:23

Re: how to program mecanum wheel drive?
 
Quote:

Originally Posted by Ether (Post 1026801)
Two suggestions:

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


As for #1, yeah, as far as I know everything should be backwards because of the Joystick output. They might need to modify it....

Didn't know about the handy PDF, though. Thanks :)

Ether 19-02-2011 23:23

Re: how to program mecanum wheel drive?
 
Quote:

Originally Posted by sjspry (Post 1026833)
As for #1, yeah, as far as I know everything should be backwards because of the Joystick output. They might need to modify it....

The joystick X-axis is + to the right. So your code should be

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()




All times are GMT -5. The time now is 03:53.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi