How to Install Pip on Ubuntu 20.04

In this project, we will install pip. Pip makes it easy to manage software packages written in Python.

You Will Need

Directions

Log in to your Ubuntu Linux machine.

Click on the nine white dots in the lower left of the desktop.

1-six-dots

Type “terminal” in the search blank, and then click on the Terminal icon.

2-terminal-search-blank

Before we install anything, let’s make sure we have the latest list of available packages. Let’s also upgrade the system if necessary.

Type the following command in the terminal window:

sudo apt update

You’ll need to type your password and then press Enter.

Now, let’s upgrade our system.

sudo apt -y upgrade

The -y flag means that we agree to upgrade our system to the latest and greatest software packages.

Now, we need to install pip. Type the following command and press Enter:

sudo apt install -y python3-pip

Pip should take a minute or two to install.

If at any time you want to install a Python package, you use the following command:

pip3 install package_name

You’ll need to replace package_name above with the name of the library or package you want to have installed.

For example, let’s install some mathematical packages. We will install numpy (scientific computing library), scipy (scientific computing library), matplotlib (graph plotting library), and sympy (computer algebra library).

Here is the command you need to type into the Terminal:

pip3 install numpy scipy matplotlib sympy
4-install-math-packagesJPG

That’s it!

Impact of Different Sized Wheels on a Tripod-Wheeled Robot

Consider a tripod-wheeled (i.e. three-wheeled) unmanned ground vehicle whose motors and wheels look like this:

tanklike_png
Two rear wheels that are connected by an axle and a free turning wheel that is in the front.

How will the vehicle move if the right rear wheel is larger than the left? Assume that the free turning wheel remains the same size, and an axle connects the left wheel to the right wheel.

The motion of a point has two types of motion, linear velocity and angular velocity. Because both wheels are connected by the same axle, the big right rear wheel and the relatively smaller left rear wheel will both rotate at the same rates. Therefore, they will have the same angular velocity.

Angular velocity (often denoted as ω) is the rate of change of the angle Ɵ. It is the number of radians (or degrees) the angle Ɵ is changing in a given amount of time.

ω = Ɵ/t

Linear velocity (denoted as v) is the rate of change of the distance traveled of the wheel. Linear velocity is related to angular velocity by the following equation, where r is the radius of the wheel.

v = rω

Therefore, the larger the wheel, the more distance it will travel given the same amount of rotation.

What does this mean for the tripod vehicle that has a right rear wheel that is larger than the left? The right rear wheel is going to cover a lot more distance on the ground in a given amount of time than the left rear wheel it is connected to. This means that, assuming the vehicle is trying to go forward, the vehicle will continuously move in a counter-clockwise direction.

Here is the diagram. Note that the big wheel has a larger radius (denoted as R) than the smaller wheel (denoted as r):

wheel-diagram

How will the vehicle move if the front turning wheel is larger than the two rear wheels? Assume the two rear wheels are equal in size and are connected by a single axle.

A larger wheel will cover a greater distance over the ground than a smaller wheel given the same amount of rotation (in either radians or degrees) per unit time. Therefore, equipping the vehicle with a larger steering wheel will enable the vehicle to move faster, holding all other wheels constant at ‘normal’.

In fact, the penny-farthing bicycles of the 1800s as well as the big wheel tricycles of the 1970s took advantage of this fact. Each had a large front wheel (and two normal rear wheels) that enabled the vehicle to move faster given a certain amount of rotation (i.e. pedaling in those cases).

penny-farthing-bicycle
Penny-farthing bicycle

Force Vector Diagrams for an Omni-directional Mobile Robot

In this post, we will take a look out how to draw the force vector diagrams for an omni-directional mobile robot with Mecanum wheels. But before we do that, let’s take a look at a few real-world applications of these vehicles.

Real-World Applications

The following are some common real-world applications for Mecanum-wheeled robots:

  • Industrial forklifts: Moving long loads sideways through narrow aisles and doors.
  • Military: Rescue missions and hazardous environment exploration in tight spaces.
  • Medical: Powered wheelchairs that can maneuver in congested areas.
  • Aviation: Transport of helicopters or large pieces of aircraft

Below is a video of Mecanum-wheeled robots helping to move a piece of a passenger train.

Here is a Mecanum-wheeled robot transporting a helicopter.

Here is a sports car design that uses Mecanum wheels. Makes parallel parking a breeze!

Force Vector Diagrams

The robot schematic diagram below consists of four Mecanum wheels. Each wheel is driven by a motor and contains a set of passive rubber cylinders that are oriented at an angle of 45° to the axis of rotation of the wheel (the axis of rotation of the wheel is the imaginary line that goes through the center of the wheel).

1-mecanum-omnidirectional-robotJPG

The 45° orientation of the rollers is what gives the robot the ability to move in directions other than just forwards and backwards.

Another thing to note is that the rubber rollers of the robot are oriented as an ‘X’ (i.e. the red line below). This X configuration enables the Mecanum-wheeled robot to be able to move in any direction (I’ll show why this is the case in the force/rotation diagrams).

The rollers could also be oriented as an ‘O’ as seen from the top, but in this case, we will assume an X configuration.

2-mecanum-omnidirectional-robotJPG

Before I draw the force/rotation diagrams that cause the different directions of motion of the robot, let’s take a look at the concept of friction because it plays an important role in how the Mecanum wheels do what they do.

Below we have a person trying to push a box across a floor.

The person exerts a pushing force on the box. As the box moves to the right, the surface of the floor exerts a frictional force that acts in the opposite direction of the motion of the box. The person must make sure he pushes hard enough on the box to overcome that frictional force; otherwise, the box won’t move.

3-pushing-forceJPG

Similarly, in the case of the omni-directional Mecanum-wheeled robot, as the wheels rotate, each rubber roller on each wheel makes contact with the surface of the ground at an angle of 45° to the axis of rotation of the wheel.

At the moment each rubber roller makes contact with the ground, the surface of the ground exerts a frictional force that acts in the opposite direction of the force exerted on the ground surface by the rubber roller. There are four frictional forces that act on the robot simultaneously (one for each wheel). It is these forces that cause the robot to move.

In what direction does the robot move? The direction the robot moves is determined by the magnitude and direction of each of the four frictional forces.

Below are the vehicle diagrams (as shown from above the robot) that show how all of this works. The diagrams show how each wheel must move, both direction and angular rate (long vector for high angular rate, short vector for small), so that the indicated motion results. The diagrams also show which way force is applied on the robot when the wheels rotate along the surface of the ground, with the key point being that the sum of the four force vectors (i.e. resultant force) equals the direction of motion of the reference point (which is located in the center of the robot).

  • The red arrows show the magnitude and direction of the rotation of the wheels.
  • The black and orange arrows show the frictional force vectors that act when the rubber roller makes contact with the ground surface. Although these vectors are shown above the robot, they act underneath the robot. They are the frictional forces that act on each rubber roller when it touches the ground surface.
  • The blue arrow shows the motion of the vehicle reference point.
4-linear-forwardJPG

Now, we add up the force vectors on the front and rear of the robot to calculate the resultant force (i.e. motion of the robot/vehicle reference point).

5-resultant-forcesJPG

Using the head-to-tail method to add the force vectors (black and orange arrows above), we see that the x-components of these force vectors on both the front and rear of the vehicle cancel out, so all that is left are the y-components. It is this net, resultant force in the positive y-direction, which results in straight-ahead, forward motion of the robot (i.e. vehicle reference point).

6-linear-reverseJPG

Now, we add up the force vectors on the front and rear of the robot to calculate the resultant force (i.e. motion of the robot/vehicle reference point).

7-resultant-forcesJPG

Similar to the linear forward case, the x-components of the force vectors on both the front and rear of the vehicle cancel out, so all that is left are the y-components. The net force is in the negative y-direction, causing the robot (i.e. vehicle reference point) to move in reverse.

8-linear-leftJPG

Now, we add up the force vectors on the front and rear of the robot to calculate the resultant force (i.e. motion of the robot/vehicle reference point).

9-resultant-forcesJPG

Using the head-to-tail method to add the force vectors (black and orange arrows above), we see that the y-components of these force vectors on both the front and rear of the vehicle cancel out, so all that is left are the x-components. It is this net, resultant force in the negative x-direction, which causes the robot to move linearly to the left.

10-linear-to-rightJPG

Now, we add up the force vectors on the front and rear of the robot to calculate the resultant force (i.e. motion of the robot/vehicle reference point).

11-resultant-forcesJPG

Using the head-to-tail method to add the force vectors (black and orange arrows above), we see that the y-components of these force vectors on both the front and rear of the vehicle cancel out, so all that is left are the x-components. It is this net, resultant force in the positive x-direction which causes the robot to move in a sideways direction to the right.

Finally, here are the force vector diagrams for when the robot spins in-place, either to the left or to the right.

12-pivot-leftJPG
13-pivot-rightJPG