|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
|||
|
|||
|
Re: Mecanum Drive control
Our team took a fairly simple approach with regards to controlled mecanum drive.
For (1), We used a highly accurate gyro. Today, the navX-MXP is a great choice. For (2), we put three "follow wheels" on the robot to measure our velocity relative to the floor. These were small omniwheels sprung to press against the carpet with encoders on them. We then broke mecanum drive into two components - rotation and translation. The rotational PID attempted to keep robot heading constant unless the driver indicated a change via joysticks. The translational PID compared the ideal velocity (from the driver's joysticks) to the actual robot X/Y velocity. Between these two, we had a "rotational intent" and "translational intent" that were fed into the WPILib mecanum library. This ended up being a good approach for us, since we didn't need to worry about wheel slip - the follow wheels were very accurate throughout the match. (This approach doesn't work as well when the playing field isn't level). By applying PID on the total output of the system (i.e. how exactly is the robot moving) we were able to account for drift, slip, X/Y friction asymmetry, weight distribution, etc... with this one solution. |
|
#2
|
|||
|
|||
|
Re: Mecanum Drive control
Quote:
Is there any mechanical design info or pictures you can post of the spring-loaded omniwheels you're using? |
|
#3
|
|||
|
|||
|
Re: Mecanum Drive control
Sadly, right now the only image I can find is pretty bad (attached). You can barely see 2 of the 3 follow wheels near the center of the chassis. All the spring attachment points and encoder mounts are occluded.
I'll have to poke some of the people who have CAD access to see if they can share anything. =] |
|
#4
|
||||
|
||||
|
Re: Mecanum Drive control
Do not use encoders on mecanums. It will not work. Mecanum wheels slip, which completely destroys the value/quality of the ticks that your encoder returns. How many times a mecanum wheel turns cannot directly be translated into distance. Again, don't try to use encoders it will not work.
If you put a gyroscope on your robot, and you know the direction that you want to be going, you could use a PID loop to keep the robot on the heading. All you would need to do is set the PID's setpoint to the angle that the robot should be at, and that should compensate for a lot of drift. Good luck, -Tyler |
|
#5
|
|||
|
|||
|
Re: Mecanum Drive control
Quote:
In other words, there is very little error in the encoder reading of the wheel angle relative to the robot (maybe some backlash in the gearbox) however I agree that there is a large amount of error in the encoder reading of the robot position relative to the field. Correct me if I'm wrong, but I think that since we are looking to use the first one, encoders are acceptable. |
|
#6
|
||||
|
||||
|
Quote:
However, if your goal is to drive straight, I would suggest using a gyroscope, because even if you drive all 4 (or 8?) mecanums at the same RPM, they still will likely not operate identically to each other because of various conditions like the consistency of the floor that could cause the rollers to spin more/less. All that said, the main use of encoders is to see how far a spinning motor or axel has moved (and at what speed), so I still can't recommend using encoders with mecanums because they simply, by design, do not give very useful data. Even if you just looked at how far they wheels turned, that data, while perhaps being accurate, would not be very useful. |
|
#7
|
||||
|
||||
|
Re: Mecanum Drive control
Quote:
|
|
#8
|
|||
|
|||
|
Re: Mecanum Drive control
Well, their effective COF is decreased by a factor of 1/sqrt(2), so I suppose they are more prone to actually slipping.
|
|
#9
|
||||
|
||||
|
Re: Mecanum Drive control
Quote:
Or did you mean they slip all the time, which completely destroys the value/quality of the ticks that your encoder returns, and therefore how many times a mecanum wheel turns cannot directly be translated into distance? |
|
#10
|
||||
|
||||
|
Re: Mecanum Drive control
Quote:
When I say that mecanums slip, what I mean is that the rollers on mecanums do not consistently spin. While you can control how far a mecanum wheel spins, the free-spinning rollers that make up the wheel do not regularly spin. In both pushing matches and hard acceleration, the rollers on mecanum wheels tend to spin in irregular ways, which essentially results in an inconsistent measure of speed and position. I think that mecanums can be very useful for strafing and maneuverability, but trying to precisely control their motion can be very difficult if not impossible because of the free-spinning rollers. |
|
#11
|
||||
|
||||
|
Re: Mecanum Drive control
Hi Tyler, Thank you for taking the time to respond to my question. Some of the things you wrote are still a bit ambiguous to me. I think it would be enlightening to discuss it further. Would you be interested in doing that? I don't want to pester you if you don't want to do that. |
|
#12
|
||||
|
||||
|
Re: Mecanum Drive control
In 2015 my team used encoders and a gyro for mecnuam and I'm pretty sure it worked out good for us
|
|
#13
|
|||
|
|||
|
Re: Mecanum Drive control
I, for one, would love to see that discussion
|
|
#14
|
||||
|
||||
|
Re: Mecanum Drive control
OK, I'll kick it off with this.
If you make certain simplifying assumptions (which under certain adverse conditions may not be too realistic; more on this if there is interest), mecanum wheels do not "slip" unless they are torqued so hard that they lose traction. And yes, they lose traction more easily than normal wheels because of the nature of the reaction forces between the floor and the rollers. Under these assumptions, the rollers are rolling, not slipping. The rolling of the rollers is what makes mecanum do what it does. The computation to turn a driver command of a simultaneous combination of forward/reverse plus strafe_right/left plus rotate_CW/CCW into four wheel speeds is called inverse kinematics. The four wheel speeds resulting from this computation will cause the desired robot motion, if the resulting reaction forces between the roller and floor are less than the available traction so that the rollers roll without slipping. On the other hand, taking 4 instantaneous measured wheel speeds (one for each wheel) and turning them into the corresponding instantaneous robot motion (forward/reverse plus strafe_right/left plus rotate_CW/CCW) is called forward kinematics. If the rollers are not slipping, it is possible to do the forward kinematic computation. And in theory, you could integrate the resulting instantaneous robot motion over time to find the robot position and heading. I do not know if any teams have done this with a fruitful degree of success. Last edited by Ether : 22-01-2017 at 00:47. |
|
#15
|
|||
|
|||
|
Re: Mecanum Drive control
I could be wrong, but I believe he's suggesting that mecanum rollers are prone to "sticking" and not rolling freely (this would be consistent with my experience of certain brands/models of mecanum wheel). Under these conditions, the wheels of a strafing mecanum robot could be said to "slip," and throw off the correspondence between encoder readings and movement.
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|