Ball-balancing robot and drive assembly therefor
10189342 ยท 2019-01-29
Assignee
Inventors
- Thomas R. Bewley (La Jolla, CA, US)
- Jeffrey M. Friesen (La Jolla, CA, US)
- Eric Sihite (San Diego, CA, US)
- Daniel Yang (San Dimas, CA, US)
Cpc classification
B60K2007/003
PERFORMING OPERATIONS; TRANSPORTING
B60K1/02
PERFORMING OPERATIONS; TRANSPORTING
International classification
B60K1/02
PERFORMING OPERATIONS; TRANSPORTING
B25J5/00
PERFORMING OPERATIONS; TRANSPORTING
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)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
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)
(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
(18) Starting with the orientation shown in
(19)
(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)
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)
(26)
(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 (
(29) As illustrated in
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
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)
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
(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)
(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
(45) Using the free body diagram in
(46)
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.
m.sub.tr.sub.bl{umlaut over ()}.sub.y+I.sub.t.sub.
where I.sub.t.sub.
.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
(48)
c.sub.1=(kV.sub.max/R.sub.m)(I.sub.b.sub.
a.sub.3=I.sub.t.sub.
a.sub.2=(b+k.sup.2/R.sub.m)(I.sub.b.sub.
a.sub.1=(I.sub.b.sub.
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.
b.sub.0=m.sub.tgl/(I.sub.b.sub.
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)
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)
(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)
(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.
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)
(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.
(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)
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
(64) Looking at the values of the DROW MBBR (upper plot of
(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.