Quote:
Originally Posted by Tom Line
My team is trying to prototype a crab drive over the summer so we have it in our arsenal. We've looked extensive at ways of setting it up, and ways of programming it, and have some questions to teams that have done this long-term.
We're looking at doing either a single chain rotates all 4 modules, or 2 chains rotate two modules.
I've been doing pro/con on both, but I need to clarify something regarding the programming.
When a crab-bot is translating sideways, can it also rotate 360 degrees? If you run a single chain on all 4 modules, the answer appears to be an obvious no unless you stop to do the rotation.
With two chains running two modules each, it appears with some clever programming that it would be possible to rotate the robot 360 degrees while translating.
However, after watching a ton of match video of teams who have done crab, I've seen almost none of this. Most teams can tank-steer, but once they go into translational motion they do not rotate without going back into tank-steer configuration.
Is this correct? Is this due to the difficulty of the programming to rotate while translating, or this something else I'm missing? It would seem that having to go to tank mode to rotate the bot would be losing part of the beauty of crab drive.
So clarify it for me, if you can. What is your crab robot programmed to do when driving?
|
I can't say our team has been doing anything long-term, but our lunacy robot was able to do what you described. With the trailer, it was probably the most difficult part to program. It didn't work very well on the game surface, but on a rug and without a big object attached to the back of our robot obstructing our movement, our system would have probably worked out great.
Our crab drive had 4 independent crab modules. It might be more difficult to do this with chains, but I think it should. Our control system was field oriented. One joystick controlled the direction the robot moved, the other the direction the robot pointed. We used a gyro so that we always knew what direction our robot faced, and servos (might have been encoders, or hall-effect sensors, I forget) so that we knew what direction each of our wheels faced.
To rotate our robot while we were moving sideways, we simply made both wheels on one side of the robot spin faster than the other two, just like a crab drive. While our robot was turning, we constantly updated the facing of each wheel so that while was turning, our wheels were turning in the other direction and thus still moving in the desired direction.
(sorry for spelling/grammar errors I had to type this very quickly)