Mastering Mobility: Modeling an Omni-Directional Robot in Simscape: Part 1

Introduction

Every robot navigates with different levels of control and agility. If a mobile robot’s level of control matches its total possible degrees of freedom, its movement is described as holonomic [1]. When the level of control is less than its available degrees of freedom, its movement is described as non-holonomic. A good example of this is a car. Even though the car has three available degrees of freedom – its position in the XY plane and its orientation, it can only control its movement with two controls – acceleration and steering angle. It’s easy to imagine the limitation this imposes on the available paths a car can follow.

A car’s position can be described by its position (x, y) and orientation θ. However, it can move by adjusting just two control variables – acceleration a and steering angle Φ.

A standard wheel only has one degree of freedom, i.e. it can only rotate about its center. This rotation causes the wheel to exert a force along its tangent on the road. The road exerts a reactionary force due to friction in the opposite direction. The weight of the robot exerts a force downwards on the road. When the force exerted by the wheel is lesser than the frictional force, the wheel rolls. If the force exerted by the wheel exceeds the frictional force, the wheel will lose contact with the road and rotate freely.

Forces acting on a rolling wheel.

We can add another degree of freedom to this standard wheel by adding a small wheel between the wheel and the road such that the wheel can roll in a direction perpendicular to the rolling direction of the larger wheel. Now, the wheel can continue rolling along the primary direction of motion by applying a rotational torque or the secondary direction of motion by applying a lateral force along the rotational axis of the larger wheel. Since this smaller wheel is not subject to any external forces, we can call it a passive wheel or roller.

Passive roller added to a standard wheel adds an additional degree of freedom.

While this does add an additional degree of freedom, the rolling motion of the larger wheel is uneven due to the cylindrical shape of the passive roller. Also, its easy to see that one would have to add more such passive rollers along the circumference to achieve this additional degree of freedom at any give rotation of the larger wheel. Furthermore, we can change the shape of the passive rollers such that its profile exactly matches the circumference of the larger wheel, giving it a barrel shape.

Barrel-shaped passive rollers offset by 60°. The main wheel has been modified to provide pivot points where the passive rollers can be attached.

Adding the barrel-shaped rollers helps maintain the overall shape of the wheel but there are still gaps between the rollers where the wheel cannot roll freely. One solution explored to solve this problem is to make the rollers as small as possible such that the gap between them becomes negligible. Another clever solution to this problem is to simply sandwich two of these assemblies together and rotate them by a fixed angle relative to each other. The rendering shows a wheel configuration with six passive rollers. Choice of a particular configuration will largely depend on cost and application area.

3D Rendering of the final assembly of the wheel.

To finish off this section, we will finally try to answer this question – How does this wheel help in making the robot omni-directional? The wheel we arrived at has two degrees of freedom. Adding three such wheels to a robot chassis allows us to add the same two degrees of freedom to the entire robot as well. To understand how such an assembly would move, let us consider the following scenarios:

Different movement scenarios. Arrows with different colors indicate different rotation speeds.

Let us begin by discussing the easiest scenario (e). In this case, we apply an equal rotation to all three wheels in the same direction, causing the entire robot assembly to rotate in place. In the rotation amounts are different, the robot will move in a spiral as seen in (f).

In scenarios (a) & (b), we apply opposite equal rotations to two wheels. This pushes or pulls against the third wheel which is unpowered. Due to the passive rollers, this wheel will freely roll in the direction that the assembly is pushing or pulling, which in this case is along its own main axis of rotation.

In scenarios ( c) & (d), different combinations of rotations to each wheel will result the entire assembly to move in the lateral directions. In fact, it can be shown that by carefully choosing the right rotation amount and direction for each wheel, we can move the entire assembly in any direction without changing its original orientation, making it an omni-directional robot.

3D Rendering of the final assembly of the omni-directional robot.

Now we have the basic idea in place about holonomic drives and omni-directional robots. We have seen how the omni-directional wheels behave given different inputs. We have also seen how these wheels allow the robot to move in any direction. And we have done so without a single line of mathematics. But as we begin to move to the exciting step of modeling the assembly and its behavior in Simscape, we will dive into some of that math which we cannot avoid.

References

  1. M. West and H. Asada, “Design of a holonomic omnidirectional vehicle,” Proceedings 1992 IEEE International Conference on Robotics and Automation, Nice, France, 1992, pp. 97-103 vol.1, doi: 10.1109/ROBOT.1992.220328. keywords: {Vehicles;Wheels;Angular velocity;Tires;Kinematics;Jacobian matrices;Friction;Manufacturing industries;Angular velocity control;Mechanical systems},
Mastering Mobility: Modeling an Omni-Directional Robot in Simscape: Part 1