![]() |
Holonomic Control System
For the first time our team is experimenting with holonomic drive (4 omnis placed at 45 degree angles relative to the frame) and it has fallen to me to code the movement. I have a system in place, but it came to my attention after the initial code was written that different people have different opinions as to how the joystick movements should coorelate to robot movement. As such I'm reaching out to teams who have done this in the past...how'd you guys do it?
At the moment we've got a two joystick design. One stick changes position but not orientation. The robot maintains "front" while moving in whatever direction the joystick tells it to. The second stick controls spin while maintaining position (they won't mix at the moment). This was the first control method that came to mind for me since it allows us to make use of all three degrees of freedom to the greatest extent, but our coach believes that it won't be natural after our years of straight drivetrains. The other suggested method of control is one sticck that drives much as arcade has in the past, but accompanied by a second stick for strafing to take advantage of our added range of motion. Our coach thinks this will be more natural as a transition, but I don't think it has the same potential since we won't be able to strafe will moving forward. So for teams who've been successful in the past, how did yours move? Did you find any particular strengths or weaknesses in the control system? Features you wished you'd had? Thanks in advance for the help! |
Re: Holonomic Control System
Quote:
1) 3-axis joystick. Y controls fwd/rev, X controls strafe, Z (twist axis) controls rotation. 2) Halo. 2 2-axis joysticks. Y1 controls fwd/rev, X1 controls strafe, X2 controls rotation. 3) Arcade plus strafe. 2 2-axis joysticks. Y1 controls fwd/rev, X1 controls rotation, X2 controls strafe. Quote:
|
Re: Holonomic Control System
When we did it in the past (not for competition) we programmed it the first way you said, with one joystick that controls movement and the other to control rotation. This is actually very intuitive since which ever way you move the joystick, that's the direction the robot will move in. Driver's should adapt to the new control method quite easily.
|
Re: Holonomic Control System
Quote:
Solution 2 also works extremely well - especially if you've got a bunch of gamers on your team. |
Re: Holonomic Control System
This year our team is going with a 3-axis joystick, with a twist handle. Logitech sells these for around $30. We got ours at best buy.
|
Re: Holonomic Control System
Solution 1 (3 axis) is somewhat difficult to use because you may find yourself twisting the joystick slightly during normal operation - the "twist" motion isn't too intuitive for me personally.
Solution 2 (one stick for motion one for reorientation) is my personal favorite. With all control systems, the number one rule is driver preference. What they feel best with is what they get. |
Re: Holonomic Control System
Quote:
Since this is your first experience with holonomic, I hesitate to bring this up, but some have found that using the gyro as a fixed-angle reference to provide "field-centric" control (sometimes aka "driver-centric control") provides a superior driver experience with a quicker learning curve. |
Re: Holonomic Control System
We used mecanum last year which is pretty much the same from a control point of view. We tried both a single 3-axis joystick and 2 dual axis. We ended up going with 2 dual axis, using one for position control, and one for rotation because that was what our driver prefered, I personally liked the 3 axis better. So I would recommend trying both and just seeing what feels more natural, if your code is writen well, it should be trivial to change.
Also, I would STRONGLY recommend that you look into using a gyro to compensate for robot rotation. Basicly, when you push the movement stick forward, the robot knows how it is oriented and will always move away from you. Likewise, when you move the stick left, it will always go left relative to the control station. This takes just a few minutes to get used to, and is extremely natural after that. If you go with this it is very important to have a button that turns it off also because sometimes the gyro gets messed up. |
Re: Holonomic Control System
Quote:
As for the gyro losing calibration, I suggest a second button you can use to re-calibrate the gyro. Rotate the robot to the zero degree orientation and momentarily press the button to tell the gyro "here, this is zero degrees". |
Re: Holonomic Control System
Quote:
|
Re: Holonomic Control System
Quote:
Quote:
And thanks all for the responses, I've been thinking CD was down for a few days now when my Droid wouldn't access it XD. |
Re: Holonomic Control System
Quote:
Quote:
|
Re: Holonomic Control System
I didn't set out to re-invent the wheel, but it came to that after a small series of events. Basically, our cRio is stuck on last year's bot, so we're using the '07 robot controller and player station mounted to a piece of plywood. As such, I'm writing in C, not LabVIEW (our normal programming language at this point is Java anyway, but I assume there's a class for that as well). And I'm sure it's capable of two dimensional movement while spinning, I just haven't put forth the energy into performing those calculations yet. Good to know that there's a class waiting for me when we transition to this year's real bot though.
|
Re: Holonomic Control System
Ether--
According to the inverse kinematics solution (http://www.simbotics.org/files/first...irectional.pdf), The wheel speeds are also functions of the distance between the wheels and the center of the robot...the labview VI doesn't seem to account for this. Any suggestions? I'm assuming all the axis probably will need to be scaled anyway. |
Re: Holonomic Control System
Quote:
I posted a paper (see link below) which goes into more technical detail showing how the wheel positions affect the calculations, if you are interested. It even covers cases where the wheels are not located equidistant from the chosen centerpoint. http://www.chiefdelphi.com/media/papers/download/2722 [edit] the above-referenced paper specifically deals with mecanum wheels, but the same principles can be used to analyze holonomic [/edit] |
| All times are GMT -5. The time now is 03:52. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi