Omnidirectional Control

Similar documents
Chapter 10 Rotational Motion. Copyright 2009 Pearson Education, Inc.

Mechanics lecture 7 Moment of a force, torque, equilibrium of a body

Center of Gravity. We touched on this briefly in chapter 7! x 2

Awell-known lecture demonstration1

Practice Exam Three Solutions

Unified Lecture # 4 Vectors

Lecture L6 - Intrinsic Coordinates

11. Rotation Translational Motion: Rotational Motion:

Lecture L22-2D Rigid Body Dynamics: Work and Energy

Lecture L3 - Vectors, Matrices and Coordinate Transformations

Force on Moving Charges in a Magnetic Field

VELOCITY, ACCELERATION, FORCE

Lecture 16. Newton s Second Law for Rotation. Moment of Inertia. Angular momentum. Cutnell+Johnson: 9.4, 9.6

Physics 1A Lecture 10C

Unit 4 Practice Test: Rotational Motion

SOLID MECHANICS TUTORIAL MECHANISMS KINEMATICS - VELOCITY AND ACCELERATION DIAGRAMS

Rotation: Moment of Inertia and Torque

Physics 1120: Simple Harmonic Motion Solutions

Linear Motion vs. Rotational Motion

Objective: Equilibrium Applications of Newton s Laws of Motion I

Sample Questions for the AP Physics 1 Exam

PHY231 Section 2, Form A March 22, Which one of the following statements concerning kinetic energy is true?

Angular acceleration α

SYNCHRONOUS MACHINES

Lecture L5 - Other Coordinate Systems

Chapter 5 Using Newton s Laws: Friction, Circular Motion, Drag Forces. Copyright 2009 Pearson Education, Inc.

Power Electronics. Prof. K. Gopakumar. Centre for Electronics Design and Technology. Indian Institute of Science, Bangalore.

APPLIED MATHEMATICS ADVANCED LEVEL

Mechanical Principles

Modeling Mechanical Systems

Figure 1.1 Vector A and Vector F

PHY231 Section 1, Form B March 22, 2012

PS-6.2 Explain the factors that determine potential and kinetic energy and the transformation of one to the other.

Physics 235 Chapter 1. Chapter 1 Matrices, Vectors, and Vector Calculus

Torque Analyses of a Sliding Ladder

Tips For Selecting DC Motors For Your Mobile Robot

Let s first see how precession works in quantitative detail. The system is illustrated below: ...

Acceleration due to Gravity

1.3.1 Position, Distance and Displacement

How to Turn an AC Induction Motor Into a DC Motor (A Matter of Perspective) Steve Bowling Application Segments Engineer Microchip Technology, Inc.

FRICTION, WORK, AND THE INCLINED PLANE

Lab 7: Rotational Motion

Structural Axial, Shear and Bending Moments

Lecture 17. Last time we saw that the rotational analog of Newton s 2nd Law is

Name Partners Date. Energy Diagrams I

Rotational Motion: Moment of Inertia

Physics 2A, Sec B00: Mechanics -- Winter 2011 Instructor: B. Grinstein Final Exam

Electric Motors and Drives

Newton s Laws. Physics 1425 lecture 6. Michael Fowler, UVa.

Chapter 11 Equilibrium

Chapter 6 Circular Motion

EXPERIMENT: MOMENT OF INERTIA

SOLID MECHANICS BALANCING TUTORIAL BALANCING OF ROTATING BODIES

KINEMATICS OF PARTICLES RELATIVE MOTION WITH RESPECT TO TRANSLATING AXES

ANALYTICAL METHODS FOR ENGINEERS

Solving Simultaneous Equations and Matrices

Eðlisfræði 2, vor 2007

Vector Algebra II: Scalar and Vector Products

Rolling cylinder on a horizontal plane

Dynamics of Rotational Motion

Chapter 11. h = 5m. = mgh mv Iω 2. E f. = E i. v = 4 3 g(h h) = m / s2 (8m 5m) = 6.26m / s. ω = v r = 6.

Physics 201 Homework 8

Progettazione Funzionale di Sistemi Meccanici e Meccatronici

Physics 41 HW Set 1 Chapter 15

Rotational Inertia Demonstrator

88 CHAPTER 2. VECTOR FUNCTIONS. . First, we need to compute T (s). a By definition, r (s) T (s) = 1 a sin s a. sin s a, cos s a

11.1. Objectives. Component Form of a Vector. Component Form of a Vector. Component Form of a Vector. Vectors and the Geometry of Space

Solution Derivations for Capa #11

Copyright 2011 Casa Software Ltd. Centre of Mass

The Effects of Wheelbase and Track on Vehicle Dynamics. Automotive vehicles move by delivering rotational forces from the engine to

CHAPTER 6 WORK AND ENERGY

A vector is a directed line segment used to represent a vector quantity.

Experiment 9. The Pendulum

Physics: Principles and Applications, 6e Giancoli Chapter 2 Describing Motion: Kinematics in One Dimension

Chapter 3.8 & 6 Solutions

Vector Math Computer Graphics Scott D. Anderson

Chapter 6 Work and Energy

Midterm Solutions. mvr = ω f (I wheel + I bullet ) = ω f 2 MR2 + mr 2 ) ω f = v R. 1 + M 2m

EXPERIMENT 3 Analysis of a freely falling body Dependence of speed and position on time Objectives

PLANE TRUSSES. Definitions

Centripetal force, rotary motion, angular velocity, apparent force.

Centripetal Force. This result is independent of the size of r. A full circle has 2π rad, and 360 deg = 2π rad.

6. Vectors Scott Surgent (surgent@asu.edu)

MECHANICAL PRINCIPLES OUTCOME 4 MECHANICAL POWER TRANSMISSION TUTORIAL 1 SIMPLE MACHINES

Physics Notes Class 11 CHAPTER 3 MOTION IN A STRAIGHT LINE

Some Comments on the Derivative of a Vector with applications to angular momentum and curvature. E. L. Lady (October 18, 2000)

Torque and Rotary Motion

PHYS 211 FINAL FALL 2004 Form A

Problem 6.40 and 6.41 Kleppner and Kolenkow Notes by: Rishikesh Vaidya, Physics Group, BITS-Pilani

2. Spin Chemistry and the Vector Model

Physics 9e/Cutnell. correlated to the. College Board AP Physics 1 Course Objectives

Physics 11 Assignment KEY Dynamics Chapters 4 & 5

Copyright 2011 Casa Software Ltd.

Linear Equations ! $ & " % & " 11,750 12,750 13,750% MATHEMATICS LEARNING SERVICE Centre for Learning and Professional Development

Metrics on SO(3) and Inverse Kinematics

Tennessee State University

Cabri Geometry Application User Guide

Fric-3. force F k and the equation (4.2) may be used. The sense of F k is opposite

C B A T 3 T 2 T What is the magnitude of the force T 1? A) 37.5 N B) 75.0 N C) 113 N D) 157 N E) 192 N

AP Physics: Rotational Dynamics 2

Transcription:

Omnidirectional Control Raul Rojas Freie Universität Berlin Abstract We show how to control a robot with omnidirectional wheels, using as example a robot with four motors. Four wheels provide redundancy: many combinations of motors speeds can provide the same movement. Since the system is over determined, we show how to compute a set of motor speeds using the pseudoinverse of a coupling matrix. This approach allows us to determine if a wheel is slipping on the wheel by performing a consistency check. It is possible to avoid slippage on the floor by driving the robot with a motor torque under the slippage threshold. Omnidirectional Wheels Omnidirectional wheels have become popular for mobile robots used indoors, because they allow a robot to drive on a straight path from any point to any other point on the floor, without having to rotate first. Moreover, the translational movement along a desired path can be combined with a rotation, so that the robot arrives to its destination at the correct angle. Omnidirectional wheels are all based on the same general principle: while the wheel provides traction in the direction normal to the motor axis, it can

roll passively in the direction of the motor axis. In order to achieve this, the wheel is built using smaller wheels attached along the periphery of the wheel. Fig.?? shows an example of the kind of wheel that we have been using for our omnidirectional robots since 2002. Our wheel is a variation of the so-called Swedish wheels, which use rollers with a rotation direction not parallel to the motor axis, but with a certain slant. Usually more than two omnidirectional wheels are used to drive a robot. Each wheel provides a torque in the direction normal to the motor axis and parallel to the floor. The torques add up and provide a translational a rotational motion for the robot. If it were possible to put two orthogonal omnidirectional wheels under the center of a robot with a circular base, then driving the robot would be trivial. To give the robot a speed (v x, v y ), with respect to a cartesian coordinate system attached to the robot, each wheel would have to provide one of the two speeds. However, since the motors need some space, this simple arrangement is not possible. The wheels are put on the periphery. Then more than two wheels can be used, which makes also easier to balance and cancel any rotational torque which would make difficult driving the robot on a straight path. Popular configurations are three and four-wheeled omnidirectional robots. Fig. shows the CAD design of the omnidirectional robot which we used at RoboCup 2004. Each wheel can move the robot forward, but being attached on the periphery of the robot, can also rotate the robot s frame. In order to connect the motors torques with the movement of the robot, we need to analyze the geometry of the problem. Let us use a motor with four wheels as our working example. For simplicity, the robot has two symmetry axes, as shown in the diagram. Let us call φ the angle of the wheels with respect to the horizontal axis (the x-direction), as shown on the diagram. When the four motors are activated, we obtain four traction forces F, F 2, F 3, F 4 from the motors, which add up to a translational force and a rotational torque. The sum of the forces depends on the geometry of the wheels arrangement. 2

Figure : Our omnidirectional four-wheeled robot 2 Coupling matrix We are interested in the movement of the robot along the x and y direction. In order to simplify the expressions we will derive, we consider the instantaneous velocity of the robot with respect to its own reference frame. For example, a robot moving forward will have a certain positive velocity in the y direction and zero in the x direction. The translational acceleration of the center of mass of the robot (which we assume is located at the geometrical center of our robot), is given by a = (F + F 2 + F 3 + F 4 )/M where M is the mass of the robot. The rotational acceleration is given by ω = R I (f + f 2 + f 3 + f 4 ) where R is the radius of the robot, f i denote the magnitude of the force F i, for i =,..., 4, and I is the moment of inertia. The computation is possible using this formula, because the forces are tangent to the circular frame of the robot and point in the same rotational direction. 3

Figure 2: Arrangement of the wheels and distribution of forces We can compute the x and y components of the robot s acceleration, by considering the respective components of each force. Then Ma y = f cos φ f 2 cos φ + f 3 cos φ + f 4 cos φ and Ma x = f sin φ f 2 sin φ f 3 sin φ + f 4 sin φ For a homogeneous cylinder I = 2 MR2, for a ring I = MR 2. For any mass distribution strictly between a concentration of mass in the middle and concentration in the periphery, I = αmr 2, with 0 < α <. Substituting I for such a value, we can express the acceleration computations above as a matrix vector multiplication sin φ sin φ sin φ sin φ ( (a x, a y, ω) T f = cos φ cos φ cos φ cos φ M, f 2 M, f 3 M, f ) T 4 M MR I αr MR I αr MR I αr MR I which can be simplified to sin φ sin φ sin φ sin φ (a x, a y, ω) T = cos φ cos φ cos φ cos φ αr ( f M, f 2 M, f 3 M, f ) T 4 M Let us call, for further calculations, the matrix in the expression above the coupling matrix C α. 4

Given any four motor states (and the associated torques) it is then straightforward to compute the acceleration in the x and y directions, as well as the rotational acceleration of the robot s frame. Note that the forces can cancel. If, for example, f = f 2, f = f 4, and f 2 = f 3, then the robot stands still while the wheels work against each other. Much energy is wasted, but the robot does not move. We are assuming here that the wheels cannot slip, that is, all the torque from the motors is put on the floor. This is an unrealistic assumption, which we will later lift. It is interesting to note from the above expression, that the rotational acceleration depends on the mass distribution of the robot. A point-mass robot can be accelerated infinitely fast around its center (α = 0). A robot where the mass is distributed on a ring with very large radius (larger than the robot itself) will be accelerated around its center very slowly (α >> ). We can find the final velocities of the wheels, and the velocity of the robot on the plane, as well as its angular velocity, by integrating the movement equations with respect to time. Now, let us assume that the four wheels on the robot have reached the respective tangential velocities (v, v 2, v 3, v 4 ). The geometry of the problem remains unchanged and we can still use Fig. 2 as reference. The Euclidean velocity (v x, v y ) of the robot on the ground and its angular velocity ω are given by the expression (v x, v y, ω) T = sin φ sin φ sin φ sin φ cos φ cos φ cos φ cos φ Let us denote the coupling matrix by C. Where has it gone? (v, v 2, v 3, v 4 ) T The factor /α is not present. What the geometry of the problem shows is that if we just integrate over time, we obtain an inconsistency between the expression for the accelerations and the expression for the velocities. They are only equal when α = 4. For a homogeneous cylinder α = /2. This means that the desired angular velocity for the robot can be reached earlier than the desired Euclidean velocity (eight 5

times faster, in fact). It is also clear why: all motors cooperate rotating the robot, while they push partially against each other in order to move the robot on the plane. Therefore, we must decouple the control for the Euclidean velocity from the control for the rotation. We then apply the necessary wheel accelerations over a time t in order to reach the velocity (v x, v y ) and we overlay on top of that the necessary wheel accelerations for reaching the angular velocity ω, but we apply these accelerations for a period t, different in general from t. The only robot for which we can have t = t is one with α = 4. Such a robot corresponds to a ring of mass M and radius 2R, that is, with a radius twice as large as the wheel distances from the rotation center of the robot. 3 Redundancy and pseudoinverse control Let us assume that we drive the motors in the form described above, starting from rest, and with forces f, f 2, f 3, f 4 in each motor for a time t, and that the wheels do not slip on the ground. It is clear from the equations in the previous section, that if f +f 2 +f 3 +f 4 = 0, the robot will not rotate around its center. Can we find settings for the wheels, under this constraint, which allow us to accelerate the robot in any desired angle? (that is, v x and v y are arbitrary, within the velocity constraints of the motors). This is indeed the case, because in the equations a x = M ( f cos φ f 2 cos φ + f 3 cos φ + f 4 cos φ) and a y = M (f sin φ f 2 sin φ f 3 sin φ + f 4 sin φ) the combination of forces p = (,,, ) moves the robot forward with velocity 4cosφ. The combination q = (,,, ) moves the robot sideways to the right with velocity 4sinφ. Any linear combination ap + bq of the two vectors, of the form vy p + vx q accelerates the robot in the direction 4cosφ 4sinφ (v x, v y ). Here we are assuming that neither cos φ nor sin φ are equal to zero, otherwise we would have a very simple robot with four parallel wheels. 6

Also, since the sum of components of p and q is zero, any linear combination of both vectors does not let the robot rotate. Therefore we can easily find a vector of motor forces, for the desired direction, and which does not rotate the robot. Now let us compute the forces necessary for the desired angular velocity. The vector r = (,,, ) does not produce any forward or sideways acceleration (as can be tested by substituting in the acceleration equations). The angular acceleration with r is ω = (f +f 2 +f 3 +f 4 ) = 4. αr αr Therefore we see that we can decouple the control problem for the robot into two parts: we can find motor forces which accelerate the robot in the desired Euclidean direction, without making it rotate. We can also find forces which provide angular acceleration for the robot, without making it displace on the ground. The sum of both set of forces is the force to be applied to the robot. However, the forces for the linear displacement must be applied for a different total time as the forces for the rotation. We integrate the planar acceleration over a total time t, and the rotation over a total time t. In our system, we send the linear velocity (v x, v y ) to the robot and accelerate the wheels using a PID controller. Another PID controller receives the desired angular velocity ω and controls the wheels. Both PID controllers are interleaved. The wheel accelerations overlap. If the final linear motor velocities are (v, v 2, v 3, v 4 ), we can find the final linear displacements and linear angular rotation using the vector matrixmultiplication (v x, v y, ω) T = sin φ sin φ sin φ sin φ cos φ cos φ cos φ cos φ (v, v 2, v 3, v 4 ) T This expression is justified by purely geometrical considerations. The angular velocity, specially, is determined by the four wheel velocities, added together, and divided by. Translational components disappear after the addition, only the rotational elements contribute to the final result. Usually, we are interested in the inverse calculation: we want to give the robot a certain acceleration and we would like to compute the necessary 7

motor torques. We know from the previous section that (a x, a y, ω) T = C α M (f, f 2, f 3, f 4 ) T where C is the coupling matrix. Using the pseudoinverse C α + invert the calculation above to of C, we can (f, f 2, f 3, f 4 ) T = MC + α (a x, a y, ω) T For any desired acceleration vector (a x, a y, ω) T we obtain a set of four motor torques. For example, for zero accelerations, the computation tells us that we should use the vector of motor torques (0, 0, 0, 0), which is not surprising. Yet this example shows that the pseudoinverse computation extracts from all possible solutions to the problem the most efficient, in the sense of having small components. 4 Critical force and a limit example When we start the four motors used in our robots, the x and y components of the torques work in opposite directions. When the robot is rolling forward (positive y direction), for example, the force components sideways (x direction) cancel. However, if the forces which cancel each other are excessive, the wheels will lose their grip and will start to slip on the ground. The result is a robot which cannot drive accurately enough. Given a direction, let us call the maximum torque that a motor can put on the floor in that direction and without slipping, the critical torque for that direction. An extreme example can help to understand this concept. Assume that in our four-wheeled robot the angle ϕ is very small and near to zero. In that case, the two frontal and the two rear wheels are almost antiparallel. If all motors are started with maximum torque (,,, ), the robot should move forward, because the resultant force on the robot has only a component in the positive y direction. However, the opposing torques are so large that the wheels will probably slip on the wheel and will start spinning. The robot will slip on the floor. 8

Different values of ϕ mean that different projections of the motor torque are being considered. If ϕ is almost π/2, the wheels are all parallel and the robot can accelerate forward at the limit imposed by the grip of the wheels on the carpet. The critical torque limit is therefore related to the friction between the wheels and the carpet, and the angle in which the wheels oppose each other. In the limit case mentioned above (ϕ almost zero), if we are careful enough to start the motors slowly, then the robot will be accelerated forward. The forward movement is provided by the passive rolling wheels and the wheels themselves have to roll very slowly. If the forward velocity of the robot is v y, the needed tangential velocity of the wheel is v y sin(ϕ). In other words, if the motor can drive the wheel at a maximum speed of v, the robot can reach a maximum forward direction of v/sin(ϕ), that is, the robot can be, in the limit of zero ϕ, infinitely fast! This is so because the acceleration on the robot is always present and the robot can roll passively forward. In reality, the passive wheels have more and more friction with their axis the faster they roll. Eventually this friction limits the forward acceleration of the robot. 5 How to drive without wheel slippage Assume that you want to drive our robot forward, trying to avoid any significant wheel slippage. Assume that it has been determined experimentally that when the voltage for the DC motors is 2 Volts the wheels will not slip (the projected torque of the motors in the sideways direction stays under the critical value). We would like to drive as fast as possible (that is, with the maximum possible voltage for the motors). What we have to do then is to start the motors with V 0 = 2 and let the robot roll forward. After a few milliseconds, the induced current E in the motor rotor decreases the effective voltage on the rotor to V 0 E, and the motor torque correspondingly. We can now increase the value of the voltage to V = V 0 + E, and now the motor torque corresponds to the effective voltage V 0 + E E = V 0. Repeating this adjustment periodically allows us to drive the motors with the maximum possible torque which does not let the wheels slip. Fig. 3 shows the result of a computer simulation for a certain DC motor. As can be seen, the motor 9

angular speed increases along a damped curve. When the adjustment to the voltage is made (at discrete intervals) the curve changes to the corresponding damped curve for the higher voltage. In the limit, when the adjustment is made very often, the motor torque remains constant, the wheel acceleration too, and the angular velocity increases linearly. The slope of the curve is the maximum allowable acceleration before the wheels slip. This is therefore an optimum result. Figure 3: Driving a DC motor with a constant torque 6 Identifying slipping wheels The fact that we use the pseudoinverse for adjusting the motor speeds, gives us the possibility of testing for inconsistencies in the motors speed and thus detect wheel slippage. Let us call s the four-dimensional vector of motor speeds, C the coupling matrix, and v the three-dimensional vector (v x, v y, ω) T. Then we know that Cs = v. We control the motor speeds in such a way that s = C + v. The controller on the robot gets the desired vector v by radio communication and transforms v into the necessary motor speeds v. After some time, the tick counters in the motors provide a vector of current motor speeds s. Assuming that the four motors are as fast, and accelerate approximately at the same 0

pace, we can check if the motor speeds are consistent with the vector v. One simple check would be to see if s is nearly a multiple of s, for constant c <. If so, then the motors are probably accelerating at the same pace towards their final values. It is very improbable that the four motors would be slipping at the same rate. A better test can be done using the in-built redundancy of our motor values. Three motors values can always be used to deduce the value of the fourth motor value, when no slippage is present. In the equation s = C + v we know that the coupling matrix C is a three by four matrix. Given the first three motor values, for example, we can deduce the fourth value which is still consistent with the other three. To do this, let us assume that we trust the first three motor values but not the fourth in the vector (s, s 2, s 3, s 4 ). Then s s 2 s 3 s 4 ( = Cr c 4 ) v x v y ω where C r is a three by three matrix (the first three rows of the pseudoinverse C + ) and c + 4 is the fourth row of the peudoinverse. Then and v x v y ω = Cr s s 2 s 3 s 4 = c 4 C r (s, s 2, s 3 ) T The fourth motor value is a linear combination of the other three. If the linear combination does not correspond to the measurement, then we know that a wheel is slipping. We do not know exactly which, but usually the fastest wheel is the one slipping.