Skip to content

Skid Steer

Lucas edited this page Aug 14, 2020 · 5 revisions

Skid Steer

What is Skid Steer?

Skid steer, or differential drive, is a drivetrain configuration whereby the motors on each side are locked in synchronization. There is thus only separate control over the left and right sides. Wheels are typically held in a rigid configuration relative to the body of the vehicle. Forward / backwards movement is achieved by rotating the left and right side wheels in the same direction. Turning can be achieved by opposite rotations on each side.

This drivetrain implementation is common on forklifts, or skid-steer loaders used in excavation / construction. skidsteer

For more information, see this Wikipedia Article

How sciencebot Uses Skid Steer

Skid steer is the chosen drivetrain for the sciencebot vehicle (thought the architecture is easily modified to support other drivetrains / motor configurations). See it in action here

A formula exists for converting a desired linear and angular velocity to velocity commands for the left and right side:

left_velocity = (linear - angular * WHEEL_BASE / 2.0) / RADIUS

right_velocity = (linear + angular * WHEEL_BASE / 2.0) / RADIUS

where WHEEL_BASE is the distance between the left and right wheels, and RADIUS is the radius of each wheel.

One could imagine a system where a higher level software routine requests certain velocities, which are then translated to left and right velocities for the wheels.

For the sciencebot, there are several setbacks preventing this setup from working ideally.

First, even if accurate velocity requests are made for the left and right wheels, translating these to motors commands is not easy. With commodity motors, and relatively cheap batteries to power them, consistency is an issue; the same motor command will not always result in the same motor rotation speed. Furthermore, even if an RPM calculation could be relied upon, real frictional forces come into play. Some motor commands are simply insufficient to cause real movement of the vehicle, even if the motors happen to be spinning (or are at told to be spinning, but are not). The working solution is to operate at power combinations that result in real consistent movement (achieved by lower and upper caps), and to not rely upon too precise adjustments in the math.

The wheels themselves (3D printed) do not provide perfect grip by any means, and slippage is common. To mitigate the issue, one cannot simply increase the grip of the wheels either. An experiment was carried out to help with the slipping: each of the wheels was coated with Plastidip, giving them a thin rubber outer-layering. This was highly effective in increasing the grip with the ground. Forward movements that before were at insufficent power levels could now move the vehicle, and the movement stopped virtually instantly after the motors stopped spinning (no sliding!). Unfortunately, the vehicle was now incapable of turning, even at max differential drive. There was too much grip, which was great for forwards / backwards movement, but skid steer turning relies on the namesake "skid," whereby the fixed orientation wheels are dragged across the ground. If there is too much grip, dragging is difficult; one could consider this to be worst case friction, in a direction perpendicular to the wheels rotation. For full-size implementations (such as skid-steer loaders in construction) the extreme forces caused by turning often result in the ground underneath being torn up. For our comparably feeble sciencebot, this just means that the vehicle remains stationary even as the motors squeal at maximum power. The rubber coating was scraped off, and functionality was restored to its previous state.

See this page for more on Skid Steer

Clone this wiki locally