Quote:
Originally Posted by apalrd
Nonadrive:
...
Here is how it works:
There are four omni wheels on the perimeter of the robot, driven in standard tank drive. Each wheel is on a "pod" with a high-traction wheel, and the pods are pneumatically moved so the traction wheels can either provide traction or float above the ground.
In the middle there is a single omni wheel, driven by a single CIM, which is sideways (to cross the bumps, 148 and 217 pneumatically lifted this wheel a few inches to give them the center clearance necessary to cross the bumps).
This provides the "standard" amount of power (4 CIM's, or around 1.2 kw) in the forward/backward direction, while allowing non-pushing motion sideways. Since omni wheels are push-able, they can lower the perimeter wheels to push or avoid being pushed.
|
Quote:
Originally Posted by Chris is me
I would argue that Nonadrive is simpler to code because it basically takes zero programming
|
so robot-centric nonadrive in tank mode looks something like this:
Code:
Left-side motor(s) = Y1
Right-side motor(s) = Y2
Center_motor = X or zero,
depending on whether traction wheels
are raised or lowered
... plus code to respond to commands
and decide when to raise and lower the traction wheels,
and set flags to let the center motor code know
what state the traction wheels are in
and robot-centric mecanum in tank mode looks something like this:
Code:
motor1 = Y1 + X
motor2 = Y2 - X
motor3 = Y1 - X
motor4 = Y2 + X
... plus code to normalize the motor commands to the range -1 to +1
Frankly, I don't see where nonadrive is simpler.