Ball-balancing robot and drive assembly therefor

10189342 ยท 2019-01-29

Assignee

Inventors

Cpc classification

International classification

Abstract

A ball-balancing drive assembly includes a ball having a ball surface and a reference axis extending through a centroid of the ball. Three omniwheel assemblies, each having a motor with a motor axle and an omniwheel configured to rotate around the motor axle are mounted on a chassis configured for supporting the three omniwheel assemblies at radially symmetric spacings with the motor axles oriented at an angle relative to the reference axis and the omniwheels oriented in mutually-orthogonal planes. Each omniwheel frictionally contacts the ball surface to convert rotational motion of the motor axle to torque on the ball.

Claims

1. A ball-balancing drive assembly, comprising: a ball having a ball surface and a reference axis extending through a centroid of the ball; three omniwheel assemblies, each omniwheel assembly comprising a motor having a motor axle and an omniwheel configured to rotate around the motor axle; a chassis configured for supporting the three omniwheel assemblies at radially symmetric spacings with the motor axles oriented at an angle relative to the reference axis and the omniwheels oriented in mutually-orthogonal planes, wherein each omniwheel frictionally contacts the ball surface to convert rotational motion of the motor axle to torque on the ball.

2. The ball-balancing drive assembly of claim 1, wherein the ball surface has an equator corresponding to a plane perpendicular to the reference axis that bisects the ball, wherein the omniwheels frictionally contact the ball surface within a mid-latitude range near the equator.

3. The ball-balancing drive assembly of claim 2, wherein the mid-latitude range comprises 20 N to 30 N of the equator.

4. The ball-balancing drive assembly of claim 1, wherein angle relative to the reference axis is within a range of 45 to 80.

5. The ball-balancing drive assembly of claim 1, wherein the angle relative to the reference axis is within a range of 60 to 70.

6. The ball-balancing drive assembly of claim 1, wherein the omniwheels are oriented mutually-orthogonally within a range of 35 to 55.

7. The ball-balancing drive assembly of claim 1, wherein the omniwheels are oriented mutually-orthogonally within a range of 48 to 52.

8. The ball-balancing drive assembly of claim 1, wherein the omniwheels are single row omniwheels.

9. The ball-balancing drive assembly of claim 1, wherein the omniwheels are double row omniwheels.

10. The ball-balancing drive assembly of claim 1, further comprising a frame extending from the chassis, the frame configured for supporting a power supply.

11. The ball-balancing drive assembly of claim 1, further comprising a controller for selectively and independently activating each omniwheel assembly.

12. A ball-balancing robot, comprising: a ball having a ball surface and a reference axis extending through a centroid of the ball; three omniwheel assemblies, each omniwheel assembly comprising a motor having a motor axle and an omniwheel configured to rotate around the motor axle; a chassis configured for supporting the three omniwheel assemblies at 120 spacings with the motor axles oriented at an angle a relative to the reference axis and the omniwheels rotated at an angle to define mutually-orthogonal planes, wherein each omniwheel frictionally contacts the ball surface to convert rotational motion of the motor axle to torque on the ball; a frame extending upward from the chassis; a control assembly disposed on the frame, the control assembly comprising an electronic controller for selectively and independently activating the omniwheel assemblies; and a power supply for powering the motors and the control assembly.

13. The ball-balancing robot of claim 12, wherein the ball surface has an equator corresponding to a plane perpendicular to the reference axis that bisects the ball, wherein the omniwheels frictionally contact the ball surface within a mid-latitude range near the equator.

14. The ball-balancing robot of claim 13, wherein the mid-latitude range comprises 20 N to 30 N of the equator.

15. The ball-balancing robot of claim 12, wherein angle is within a range of 45 to 80.

16. The ball-balancing robot of claim 12, wherein the angle is within a range of 35 to 55.

17. The ball-balancing robot of claim 12, wherein the angle and the angle are selected as an angle pair from the pairs consisting of TABLE-US-00004 45 60 70 80 35.237 48.186 52.082 54.145

18. The ball-balancing robot of claim 12, wherein the omniwheels are single row omniwheels.

19. The ball-balancing robot of claim 12, wherein the omniwheels are double row omniwheels.

20. The ball-balancing robot of claim 12, further comprising an outer skin configured for enclosing at least of portion of the frame, control assembly and power supply.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) FIGS. 1A and 1B are diagrammatic perspective and top view, respectively, of an embodiment of the inventive omniball robot.

(2) FIGS. 1C-1E diagrammatically illustrate a selection process for orientation of the omniwheels according to an embodiment of the invention.

(3) FIGS. 2A and 2B illustrate an exemplary perpendicular wheel setup with reference lines indicating relative angles.

(4) FIG. 3 is a diagrammatic perspective view of a first embodiment of an omniwheel robot.

(5) FIGS. 4A and 4B illustrate exemplary single and double row omniwheel arrangements, respectively.

(6) FIG. 5 illustrates omniwheel and ball contact interaction for an exemplary double row embodiment.

(7) FIGS. 6A and 6B illustrate omniwheel placement and orientation showing angle from the north pole and angle of twist, respectively.

(8) FIG. 7 illustrates generalized coordinates of an embodiment of a MBBR.

(9) FIG. 8 is a block diagram of an embodiment of a SLC controller.

(10) FIG. 9 is a perspective view of an MBBR according to an embodiment of the invention.

(11) FIG. 10 is a front view of an exemplary toy robot based on embodiment of the invention.

(12) FIGS. 11A-11C are plots of the upper body tilt angle (upper) and variation in ball rotation angle (lower) for single row orthogonal omniwheel angle =70, double row orthogonal omniwheel angle =70, and single row conventional omniwheel angle =45, respectively.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

(13) Existing ball balancers do not have orthogonal wheel axes. By using orthogonal wheel axes and the omniwheels, it is possible to drive the wheels independently from each other. This means that the wheels are decoupled from each other and the ball can be driven in any direction with minimum interference in between the wheels. The wheels are swiveled such a way that they still maintain the constraints above and the three wheel axes are orthogonal.

(14) The omniwheels can drive the ball in one direction and let any ball rotation perpendicular to this direction pass through with minimum friction because of the side rollers attached at the circumference of the wheel. So, perpendicular wheel axes has the advantage of having decoupled wheel motion, as in one wheel will not interfere with the other wheel.

(15) FIGS. 1A-1E diagrammatically illustrate how to orient the omniwheels so that they are perpendicular. FIGS. 1A and 1B illustrate an isometric and top view, respectively, of the basic elements of the drive assembly 10, which includes spherical wheel 2, and three omniwheel assemblies 8. In each omniwheel assembly 8, the rotational axes 22 of motors 20 are oriented at an angle of about 70 from the reference axis 50, which will be referred to herein as the north pole, or NP. The omniwheel assemblies 8 are retained in position by a frame or chassis, which is only shown in the later figures. As shown in FIG. 1B, the omniwheel assemblies 8 are symmetrically positioned 120 apart from each other with the respective wheels 24 in contact with the outer surface of spherical wheel 2 at the same latitude 52. For purposes of this description, latitude is used according to its common meaning, i.e., the angular distance of a position on the surface of the sphere relative to (north or south) of the equator. The equator 40, shown in FIGS. 1A and 1C, is defined as a circle on the surface of the sphere that corresponds to a plane that is perpendicular to the reference axis 50 that divides the sphere into halves, i.e., extending through the sphere's centroid 44.

(16) To facilitate understanding of the novel positioning of the omniwheel assemblies, the following reference lines will be defined. For simplicity, the reference lines are provided only with respect to a single omniwheel assembly. It will be readily apparent that the same relationships would be used for each assembly.

(17) As shown in FIG. 1C, line 30 runs between point 42, i.e., the lowest extent of axis 22 in each omniwheel assembly 8, and the north pole 50. Line 32 extends between point 42 (within wheel 24) and the centroid 44 of spherical ball 2. Line 34 corresponds to the axis 22 of each omniwheel assembly, extending from point 42 within wheel 24. At its initial position of =0, in which the omniwheels are not mutually orthogonal, line 34 is coincident with line 30.

(18) Starting with the orientation shown in FIG. 1C, the omniwheel assembly 8 is twisted or rotated around line 32, as shown in FIG. 1D, so that line 30 and line 34 are separated by angle , which in this example is 52.082. While FIG. 1D illustrates this configuration as a perspective view, FIG. 1E shows the same rotation viewed looking directly at the omniwheel assembly 8.

(19) FIGS. 2A and 2B illustrate the perpendicular wheels setup, again with reference lines 30, 32 and 34 shown only with respect to one of the illustrated omniwheel assemblies 8. The motor rotates around line 34. The angle refers to the motor axle angle from the north pole (NP) 50; the angle refers to the amount of omniwheel twist:

(20) TABLE-US-00001 TABLE 1 Angle from NP () 60 48.189 65 50.429 70 52.082

(21) The ball can be driven in any direction using the superposition of the three wheel rotations. Since the wheels are decoupled, the superposition process is easy because the wheels do not interact with each other, resulting in less noise or disturbance in the system.

(22) Also, by lowering the omniwheels to 70 degrees from the north pole, we increase the normal force on the omniwheels, reducing the change of ball/wheel slip. The equation for the normal force of the omniwheel is:

(23) N = mg 3 cos , ( 1 )
where m is mass, g is acceleration due to gravity, and is the angle of the wheel relative to the reference axis, i.e., the north pole.

(24) Thus, by choosing to position the omniwheels at 70 instead of 20 to 45 of previous BBR designs, we can double the normal force on the omniwheels. This low position is critical for lightweight and small BBR in order to prevent the ball from popping out of the socket and prevent the wheels from slipping.

(25) FIG. 3 illustrates an exemplary embodiment of the inventive BBR. In this configuration, the BBR is driven by using three identical omniwheel assemblies 108 mounted on a support frame 132, each assembly including a wheel 124, a motor 120 and an axle 122 (also the rotational axis). Briefly, operation of the robot uses the same principles as the prior art ballbots: each wheel 124 rotates around a motor-drive axle. Friction between the wheel's edge and ball 102 impart torque on the ball, causing the ball to rotate, propelling the robot. The difference is that the ballbots reported in the prior art do not use a perpendicular axes approach as described above and used herein. The improved perpendicular wheel axes configuration provides significant advantages over existing designs. The improvement lies in the positioning of the wheels so that the axle is at an angle relative to the north pole of the ball and the plane of rotation of the wheels is perpendicular to the ball. The inventive approach can be achieved by calculating the angle needed to achieve the perpendicular axes while also having 120 degree wheel separation, 45 degree angle from north pole and wheels perpendicular to the ball.

(26) FIGS. 4A and 4B illustrate two possible omniwheel designs for use in a BBR according to an embodiment of the invention. FIG. 4A provides plan and side views of a conventional single row (SROW) omniwheel 402, while FIG. 4B shows plan and side views of a conventional double row (DROW) omniwheel 502. For purposes of constructing a prototype MBBR, omniwheels were custom-fabricated. Due to manufacturing tolerances and material strength limitations, the smallest omniwheels that could be fabricated were 2.5 cm in diameter.

(27) The SROW design 402 included twelve rollers lying in the same plane. The rollers alternate between large and small, allowing the smaller rollers to nest within the larger rollers to form a nearly circular profile. In practice, SROWs allowed for very smooth actuation of the ball due to the absence of gaps between rollers and the single contact point on the ball. A few drawbacks were also encountered: first, the design complexity is high, with thirty-seven parts per wheel, which increases the manufacturing cost significantly. Additionally, to achieve the desired scale, parts of the hub had to be made as thin as 1 mm, making them prone to mechanical failure.

(28) The DROW design (FIG. 4B) included twelve equally-sized rollers arranged in two parallel planes, which greatly simplified the construction. Although the part count is still relatively high, the individual pieces were larger and more robust. The drawback of the DROW design lies in the differences in the engagement of the two different rows on the curved surface of the ball. On flat surfaces, a DROW behaves much like a SROW. However, in MBBRs, as the ratio between the ball diameter and the distance between the two rows of rollers becomes smaller, the omniwheels induce a characteristic wobble into the dynamics, as demonstrated below.

(29) As illustrated in FIG. 5, as the DROW 502 rotates, the normal force f.sub.a generated by the DROW on the ball 500 creates (via stiction (static friction)) a torque on the ball, .sub.a, in a direction perpendicular to both f.sub.a and the azimuthal direction of the omniwheel. As the omniwheel continues to rotate, the second roller contacts the ball, resulting in a normal force f.sub.b and concomitant torque on the ball, .sub.b. It is thus seen that the torque that the DROW 502 generates on the ball switches back and forth between .sub.a and .sub.b. This switching induces a periodic disturbance that leads to an undesirable wobble. The angle between the two axes of rotation in the DROW is given by
sin()=w/(2r.sub.b),(2)
where is the angle between the contact points 510, 512 on the ball 500 of the rows of rollers 504, 506 and r.sub.b is the radius of ball (sphere) 500. As the ratio between the radius of the ball and the distance between the two rows of rollers 504, 506 in the DROW increases, wobble diminishes, as verified in the discussion below. In practice, we found both the SROW and DROW designs viable for miniaturization, though neither was perfect.

(30) Following the work of others, the omniwheel-driven MBBR prototypes placed the omniwheels between =30 and =45, as shown in FIG. 6A, and took =0, as shown in FIG. 6B. With the omniwheels in such a position, we found that slippage between the DROW and the ball was significant. To mitigate this problem, the friction between the wheel and the ball must be increased. There are two ways to accomplish this: increase the coefficient of friction between the ball and rollers, or increase the normal force between the omniwheels and the ball. Since there are limited options in materials, and it is undesirable to increase normal force by adding mass to the main body, we sought other solutions to this problem. We found that placing omniwheels closer to the equator 40 of the ball (that is, in the mid-latitudes between around 10 to 40 N of the equator), could greatly increase the normal force between the ball and omniwheels. Optimal results were obtained from about 20 to 30 N latitude. The normal force, provided above in Equation (1), is:
N=mg/[3 cos()].
The normal force monotonically increases as increases from near 0 to near 90. Thus, by moving the omniwheels from =45 to 70, we can double the normal force between the omniwheels and without adding any mass. This simple geometric change significantly mitigated the omniwheel slippage issues. Note that if becomes too large, the amplified normal forces increase friction in the drivetrain, and degrades performance.

(31) We built several prototypes, with ={45, 60, 70, 80}, and found that, for our design, in a range of 60 to 70 provided good results. The lower placement of the omniwheels also effectively solved the problem of the omniwheels losing contact with the ball during quick maneuvers. Lowering the omniwheels result in larger normal forces, which allows the omniwheels to grip the ball better, and the contact points upon which the upper body rests are spaced farther apart, requiring a larger moment to tip the upper body off the ball.

(32) Problems can arise when lowering the omniwheel placement if the orientation of the omniwheels is left in the conventional, non-mutually orthogonal orientation with =0. The magnitude of the component of the torque that contributes to the yaw of the ball about the vertical axis scales with sin(). Conversely, the magnitude of the components of torque that contribute to translational movement of the ball scales with cos(). Thus, as approaches 90, the actuator input corresponding to balancing the vehicle approaches 0, and balancing becomes impossible. A natural solution to this problem is achieved by varying , as discussed below.

(33) We now consider the issue of the omniwheel orientation . One possible solution is to mount the omniwheels in mutually-orthogonal planes, which increases the overall efficiency of the power transfer and, as discussed above, is desirable when used in conjunction with mid-latitude omniwheel placement.

(34) Traditionally, omniwheels are spaced evenly apart, with 120 separation, and oriented in a radially-symmetric fashion about the z-axis, with =0. By aligning the three omniwheels in mutually-orthogonal planes, we effectively decouple their effects.

(35) If the omniwheels are not in mutually orthogonal planes, actuating one omniwheel while holding the other two fixed results in both rolling of the ball about an axis parallel to that of the actuated omniwheel, and rolling about the other two axes, which gives no slip in the direction of rotation of the other two omniwheels. This is achieved by spinning the rollers of all three omniwheels, including the actuated omniwheel.

(36) If, on the other hand, the omniwheels are in mutually orthogonal planes, actuating one while holding the other two fixed results in pure rolling of the ball about an axis parallel to that of the actuated omniwheel, and zero rolling about the other two axes. This is more direct and efficient, as it does not result in the spinning of the roller of the actuated omniwheel.

(37) The inventive approach to enforce orthogonal omniwheel orientation follows: let the torque produced by each motor on the omniwheel i{1, 2, 3} be represented by .sup.i=.sub.i.sup.i where the scalar .sub.i is the magnitude of the torque, and .sup.i=(.sub.x.sup.i, .sub.y.sup.i, .sub.z.sup.i).sup.T is the unit vector in the direction of the vector .sup.i. The actuators .sub.i contribute to the three components of torque in the upper body coordinates as follows:

(38) ( x y z ) = r b r w .Math. i = 1 3 i = r b r w ( w ^ 1 .Math. w ^ 2 .Math. w ^ 3 ) ( 1 2 3 ) , ( 3 ) T w = ( w ^ 1 .Math. w ^ 2 .Math. w ^ 3 ) , ( 4 )
where the r.sub.b and r.sub.w are the radius of the ball and omniwheel, respectively, the matrix T.sub.w is invertible, and the torques .sub.x, .sub.y and .sub.z represent the torques in the upper body coordinates. The ball rotation can also be computed using this transformation from the omniwheel rotation values measured by the encoders. Defining =(.sub.x, .sub.y, .sub.z).sup.T, .sub.w=(.sub.1, .sub.2, .sub.3).sup.T, =(.sub.x, .sub.y, .sub.z).sup.T, and .sub.w=(.sub.1, .sub.2, .sub.3).sup.T, yields
=(r.sub.b/r.sub.w)T.sub.w.sub.w,(5)
=(r.sub.w/r.sub.b)T.sub.w.sub.w,(6)
where .sub.x, .sub.y and .sub.z are the ball rotation in the upper body coordinates, and .sub.1, .sub.2, .sub.3 are the omniwheels rotational values as measured by the encoders.

(39) The omniwheels are orthogonal to each other if the vectors .sup.1, .sup.2, .sup.3 are mutually orthogonal. This may be achieved by calculating the .sup.i given the and , then checking if .sup.i.Math..sup.j=0 for ij and i, j{1, 2, 3}. The .sup.i can be determined using the following equations:
.sup.i=Rot({circumflex over (z)}.sub.1.sup.i,)Rot(.sub.0.sup.i, ){circumflex over (x)}.sub.0.sup.i,(7)
{circumflex over (z)}.sub.1.sup.i=Rot(.sub.0.sup.i, ){circumflex over (z)}.sub.0.sup.i,(8)
.sup.i=Rot(.sup.3,2/3).sup.i1.sup.1,(9)
where Rot({circumflex over (x)}, ) is the Euler rotation matrix about {circumflex over (x)}, and {{circumflex over (x)}.sub.0.sup.i, .sub.0.sup.i, {circumflex over (z)}.sub.0.sup.i} are the initial wheel axis coordinates, which are set up as shown in FIG. 7. In particular, our prototype is set up such that the initial coordinates for the first wheel are the same as lab coordinates {.sup.1, .sup.2, .sup.3}. Given a particular value for , we can determine the which gives us .sup.i.Math..sup.j=0 for ij using an iterative method. Examples of {, } pairs resulting in orthogonal omniwheel orientation are provided in Table 2 below. (Note that a few of the {,} pairs provided in Table 1 are repeated in Table 2.)

(40) TABLE-US-00002 TABLE 2 45 60 70 80 35.237 48.186 52.082 54.145

(41) The case of =70, =52.082 gives a transformation matrix T.sub.w of:

(42) T w = ( 0.2102 - 0.7883 0.5781 0.7889 - 0.2124 - 0.5765 - 0.5775 - 0.5775 - 0.5775 ) . ( 10 )

(43) As discussed above, there are multiple benefits of the inventive orthogonal omniwheel orientation. First, the conventional omniwheel orientation at large a angles leads to diminished torque available to translate the ball. Further, the orthogonal omniwheel orientation leads directly to rotation of the ball in the actuated direction; actuation of a single omniwheel does not result in a force applied against the other two omniwheels in a manner that results in the spinning of the rollers of the actuated omniwheel, thereby providing a smoother application of torque.

(44) The MBBR dynamics are inherently 3D, complex, and nonlinear. They can be derived with Lagrangian dynamics using no slip constraints between the ball and the floor (x=r.sub.b.sub.y, y=r.sub.b.sub.x) and ideal omniwheel assumptions. In order to apply linear control, we simplify the problem significantly by assuming that the yaw rate (spin) of the MBBR (i.e., around the z axis) is negligible (i.e., 0). Next, we linearized the .sub.x and .sub.y about small angles. This simplifies the equations of motion into two linear, decoupled, non-minimum phase Mobile Inverted Pendulum (MIP) problems in the x and y directions. Additional simplifying assumptions include: no slip between the ball and the floor (x=r.sub.b.sub.y, y=r.sub.b.sub.x), and ideal omniwheels. We define as the upper-body tilt angle, and as the ball rotation angle in upper-body coordinates (see FIG. 7). Note that the angles in the y-direction affect the linear displacement in the x-direction, and vice-versa.

(45) Using the free body diagram in FIG. 7, we can write the planar equation of motion in the x-direction as

(46) I b y .Math. y = y - r b f x , I t y .Math. y = - y - P z l sin y - P x l cos y , m b x .Math. = P x - f x , m t [ r .Math. .Math. e ^ 1 ] = m t [ x .Math. - l cos y .Math. y + l sin y . y 2 ] = - P x , m t [ r .Math. .Math. e ^ ] = m t [ cos y x .Math. - l .Math. y ] , = - m t g sin y - P z sin y + P x cos y ,
where m is the mass, I is the moment of inertia about the center of mass, the subscripts b and t represents the ball and top body, respectively, r.sub.b is the ball radius, l is the distance from the top body center of mass to the ball center, g is the acceleration of gravity, x is the linear displacement of the ball, P.sub.x and P.sub.z are the normal forces, f.sub.x is the friction between the ball and the floor, and .sub.y is the net effective motor torque. Combining, applying the no slip condition, and linearizing using the small angle approximation on .sub.y leads to the following linear system:
[I.sub.b.sub.y+(m.sub.t+m.sub.b)r.sub.b.sup.2]{umlaut over ()}.sub.y+m.sub.tr.sub.bl{umlaut over ()}.sub.y=.sub.y,(11)
m.sub.tr.sub.bl{umlaut over ()}.sub.y+I.sub.t.sub.y{umlaut over ()}.sub.ym.sub.tgl.sub.y=.sub.y,(12)
where I.sub.t.sub.y is the inertia of the top body at the ball's center of mass. The motor dynamics are augmented to the equations of motion above, resulting in a model that may be used to design the controller. The torque produced by the motors in this direction can be expressed using the linear motor model:
.sub.y=(kV.sub.max/R.sub.m)u.sub.y(b+k.sup.2/R.sub.m)({dot over ()}.sub.y{dot over ()}.sub.y),(13)
where k is the motor constant, V.sub.max is the maximum battery voltage, R.sub.m is the motor internal resistance, b is the motor Coulomb friction, and u.sub.y is the effective motor duty cycle. The x-direction has similar dynamics, with a different inertia, ball rotation speed, and input directions.

(47) Successive Loop Closure (SLC), which is well known in the fields of autonomous vehicle control and robotics, was used to separate the SIMO (single-input, multiple output) dynamics of each MIP (mobile inverted pendulum) problem into two SISO (single-input, single-output) parts. The (fast) inner loop stabilizes the upper body angle to some reference .sub.r. The (slow) outer loop adjusts .sub.r to stabilize the ball rotation angle about some reference value, which can be changed via remote control. This strategy works due to frequency separation (of at least a factor of 3) between the crossover frequencies of the inner and outer loops. A block diagram representation of the controller formulation is shown in FIG. 8. Briefly, the SIMO plant G(s) can be idealized as a cascade of two SISO transfer functions, G.sub.1(s) and G.sub.2(s), as follows:

(48) G 1 ( s ) = y ( s ) U y ( s ) = c 1 s a 3 s 3 + a 2 s 2 + a 1 s + a 0 , ( 14 ) G 2 ( s ) = y ( s ) y ( s ) = ( b 2 s 2 + b 0 ) s 2 , where ( 15 )
c.sub.1=(kV.sub.max/R.sub.m)(I.sub.b.sub.y+(m.sub.t+m.sub.b)r.sub.b.sup.2+m.sub.tr.sub.bl),
a.sub.3=I.sub.t.sub.y[I.sub.b.sub.y+(m.sub.t+m.sub.b)r.sub.b.sup.2](m.sub.tr.sub.bl).sup.2,
a.sub.2=(b+k.sup.2/R.sub.m)(I.sub.b.sub.y+(m.sub.t+m.sub.b)r.sub.b.sup.2+2m.sub.tr.sub.bl+I.sub.t.sub.y),
a.sub.1=(I.sub.b.sub.y+(m.sub.t+m.sub.b)r.sub.b.sup.2)(m.sub.tgl),
a.sub.0=(b+k.sup.2/R.sub.m)m.sub.tgl,
b.sub.2=(m.sub.tr.sub.bl+I.sub.t.sub.y)/(I.sub.b.sub.y+(m.sub.t+m.sub.b)r.sub.b.sup.2+m.sub.tr.sub.bl),
b.sub.0=m.sub.tgl/(I.sub.b.sub.y+(m.sub.t+m.sub.b)r.sub.b.sup.2+m.sub.tr.sub.bl).
We use a dirty differentiator filter F.sub.d(s) to estimate the value of {dot over ()} to be used in the velocity controller as follows:

(49) . y e ( s ) = s s + c y ( s ) = F d ( s ) y ( s ) , ( 16 )
where .sub.c is the cutoff frequency of the filter. The inner loop controller D.sub.1(s) takes the difference between the reference body angle .sub.r and the current angle as an input and outputs the motor command value u. The outer loop controller D.sub.2(s) takes the difference between the reference ball angular velocity {dot over ()}.sub.r.sup. and the current speed {dot over ()} and outputs the reference body angle .sub.r. Each controller D.sub.1(s) and D.sub.2(s) are designed independently, where the prescaler P value is set to counteract the steady state error of the inner loop. Using the measured parameters and .sub.c=40 rad/s, the system transfer functions are:

(50) G 1 ( s ) = 17.9 s ( s - 13.33 ) ( s + 13.45 ) ( s + 0.06 ) , ( 17 ) G 2 ( s ) = - 3.48 ( s + 8.63 ) ( s - 8.63 ) s 2 , ( 18 ) F d ( s ) = s s + 40 . ( 19 )

(51) The transfer functions are the same for both x- and y-directions as long as their respective inertia are the same.

(52) The following controller was used for both directions:

(53) D 1 ( s ) = 50 ( s + 13.45 ) ( s + 0.06 ) s ( s + 40.34 ) ( 20 ) D 2 ( s ) = 4 P 1 ( s + 8.63 ) ( 21 ) P = 1 / 2.5 ( 22 )

(54) These controllers have a closed loop step response with inner and outer loop rise time t.sub.r of 0.11 sec and 0.38 sec respectively. The inner loop has 5% overshoot while the outer loop has no overshoot. Based on the assumption that the heading .sub.z is approximately constant, the headings can be controlled using the simple PD controller
u.sub.z=K.sub.p(.sub.z.sub.ref.sub.z)+K.sub.d({dot over ()}.sub.z.sub.ref{dot over ()}.sub.z).(23)
After determining u.sub.x, u.sub.y, and u.sub.z, we convert these values back into each individual motor PWM commands u.sub.i, i={1, 2, 3}, using the same transformation for Equation (5) because of the linear relationship between and u. Then we calculate

(55) ( u 1 u 2 u 3 ) = r w r b T w - 1 ( u x u y u z ) . ( 24 )

(56) After the conversion, the static friction on the omniwheels must also be taken into account. Using mid-latitude omniwheel placement introduces more normal force into the system, increasing friction. Using the nonlinear input value given by
u.sub.i=csign(u.sub.i)+(1c)u.sub.i,(25)
where c is the static boast constant and u.sub.i[1, 1] is the final motor command value for the motor i.

EXAMPLE 1

Prototype DROW-driven MBBR

(57) Multiple prototypes with similar mechanical architectures and hardware were constructed. The most robust configuration was a DROW driven MBBR with wheels placed at =70. FIG. 9 illustrates the basic components of this embodiment, which includes DROW 91, gearmotor 92, optical encoder 93, ball 94, chassis 95, a support ball bearing housing 96, frame/electronics mount 97, control electronics/microprocessor 98, and battery pack 99. Additional details of the prototype as constructed are provided in Table 3 below:

(58) TABLE-US-00003 TABLE 3 Component Details DROW (91) 2.5 cm Gearmotor (92) Toy-grade plastic Ball (94) Rubber, 6.4 cm diameter Chassis (95) 3D printed Ball Bearing Housing (96) Acetal ball Frame/Electronics mount (97) 3D printed Control Electronics/ BeagleBone Black microprocessor Microprocessor (98) (BeagleBoard.org) Battery pack (99) Lithium-ion (Panasonic 18650)

(59) One of the most difficult components to source was the main ball 94. It was found that the ball must be sufficiently round and have a high coefficient of friction. Most balls smaller than 7 cm in diameter had surface imperfections and lacked the roundness to work properly. Also, balls that had a high coefficient of friction tended to be too compliant, causing the ball to deform under large dynamic loads. We found that a high quality rubber juggling ball was the best compromise between hardness, roundness, and surface friction. The omniwheels were placed in contact with the ball in the orthogonal configuration with =70 and =52.082. The motors 92 and omniwheels 91 were rigidly mounted to a 3D printed toroidal chassis 95. The torus was designed to remain rigid under the larger normal forces associated with large angles. Low friction acetal support balls in ball bearing housing 96 were used to constrain the ball 94 against the omniwheels 91 under dynamic maneuvers. The support ball bearing housing 96 was designed to be adjustable, to allow varying of the preload of the support ball against the ball. Finally, 3D printed frame 97 was used to mount the battery 99 and electronics 98, with the legs of the frame 97 attaching to the top of chassis 95 by screws or other fasteners.

(60) FIG. 10 illustrates an example of a toy MBBR 102 in which an outer molded skin 104 closely fits over a structure similar to that shown in FIG. 9. The chassis 95, lower portion of frame 97, ball 94, support ball bearing housing 96, and gear motors 92 can be clearly seen at the lower part of the MBBR 102. In this embodiment, the omniwheel 101 is shown as a single wheel for simplicity. It will be readily apparent that a SROW or DROW wheel structure may also be used. In a commercial embodiment, arms (not shown) may be attached at shoulders 106 to give a more anthropomorphic appearance. In some embodiments, additional control elements may be included in the electronics to provide control commands to, and feedback from, motors within the MBBR body, the arms, or a combination thereof, to allow for independent and/or coordinated movement of the robot's arms.

EXAMPLE 2

Experimental Results

(61) After many design iterations, several trends were observed: as expected, SROWs resulted in lower friction and better overall performance due to their roundness and single contact plane. However, there were issues with SROW durability which were believed to be intrinsic to the SROW design at small scales. Also, by increasing the angle, we were able to stabilize designs that were not viable due to ball contact issues. For example, the experimental DROW MBBR designs only worked if was increased from 45 to 70. However, increasing to 80 significantly increased friction and could jam the ball into the socket due to the combination of widely spaced contact points and ball compliance.

(62) In addition, some designs were found to be more reliant on the support balls in the ball bearing housing to constrain the ball. For example, with the support balls removed, we found the SROW =70 design was able to balance, but the SROW =45 could not. In practice, all designs benefited from the use of supporting balls, however, experiments demonstrated that larger angles are better able to constrain the ball.

(63) Data were generated for three successful MBBR designs: orthogonal SROW with =70, orthogonal DROW with =70, and conventional SROW with =45. Data was logged from these three prototypes during a 3 second velocity input of 1.2 rad/s which commands the robot to move forward then to come to a full stop. The results are shown in FIGS. 11A-11C, where the solid line corresponds to the measurement and the dashed line indicates the reference. All three MBBR designs responded and tracked the velocity step well while the actual angle closely matches the controller's inner loop reference .sub.r. This allows the MBBRs to be smoothly driven using remote control.

(64) Looking at the values of the DROW MBBR (upper plot of FIG. 11B), it is seen to suffer from a8 Hz wobble caused by the reasons described above. In addition, the {dot over ()} (lower plot of FIG. 11B) shows that the prototype struggles to follow the velocity step response. This is because the inner loop, which has priority over the outer loop, attempts to stabilize the wobble prior to following the velocity command. Also, the controller gains for the DROW MBBR needed to be increased relative to the SROW MBBR in order to achieve similar performance. Without wishing to be bound by theory, we believe this is caused by the switching of actuation planes, which requires additional control to counteract the perturbations. The squared sum of the control values at time step k, u.sub.k for t=3-10 sec can be calculated to compare the control effort J.sub.u of both designs. The J.sub.u for the SROW and DROW MBBRs are 430 and 1050 respectively, which means that the SROW MBBR can be driven much more efficiently than the DROW MBBR. Comparing the SROW build with =45 and =0 to the SROW build with =70 and orthogonal omniwheels, we saw a relatively small difference in performance.

(65) Based on the above-described results, it appears that the SROW MBBR exhibits less slip against the ball and has smoother actuation compared to the DROW MBBR. However, at the micro scales needed for MBBRs, the SROW configuration tends to be more fragile, and might be cost prohibitive in some applications. Also, increasing the angle can counteract the low mass of MBBRs by increasing the normal force to eliminate omniwheel slip and reduce ball ejection. However, increasing the must be balanced against increased friction and stress on the omniwheels. The orthogonal orientation is essential when larger angles are employed in order to maintain sufficient torque to balance the vehicle. It will be readily apparent to those in the art that, while the examples and discussion provided herein have been primarily focused on micro ball-balancing robots (MBBRs), the inventive configurations can also be applied to high-performance large-scale BBRs.

(66) While the foregoing written description contains many specifics, these should not be construed as limitations on the scope of the invention or of what may be claimed, but rather as descriptions of features specific to particular embodiments of the invention. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable sub-combination. Further, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination.