Patent Publication Number: US-2018043952-A1

Title: Spherical mobile robot with shifting weight steering

Description:
RELATED APPLICATIONS 
     This patent application claims priority benefit under 35 U.S.C. 120, with regard to all common subject matter, and is a continuation in part of commonly assigned U.S. patent application Ser. No. 15/235,554, filed Aug. 12, 2016, entitled “SPHERICAL MOBILE ROBOT WITH PIVOTING HEAD” (“the &#39;554 Application”). The &#39;554 Application is hereby incorporated by reference in its entirety into the present application. 
    
    
     BACKGROUND 
     1. Field 
     Embodiments of the invention relate to robotics. More specifically, embodiments of the invention relate to spherical mobile robots. 
     2. Related Art 
     Spherical robots of the prior art typically utilize a “hamster ball” design. In the “hamster ball” design, an inner rover moves within a spherical shell. The inner rover is independent and unconnected from the spherical ball. This provides for an inefficient design, as the driving is performed essentially by driving the rover up the side of the wall and allowing the weight of the rover to roll the spherical ball forward. The design is also efficient because it limits the size of the motor, depends upon traction on the inside of the spherical ball, and is difficult to maneuver. What is lacking in the prior art is a spherical robot that is efficient and maneuverable. 
     SUMMARY 
     Embodiments of the invention solve the above discussed problems by providing a spherical mobile robot with shifting weight steering. The spherical mobile robot includes a static drive system that is secured to the spherical shell. The drive systems being secured allows the drive system to be more efficient in turning the spherical shell. The shifting weight steering allows the mobile robot to turn while being driven by moving a center of mass of the mobile robot away from vertical alignment with a geometric center of the mobile robot. 
     A first embodiment of the invention is directed to a mobile robot comprising a spheroid shell and an internal assembly. The internal assembly is disposed within the spheroid shell. The internal assembly includes a base, a drive assembly, and a weight-shifting steer mechanism. The drive assembly is configured to propel the mobile robot. The drive assembly is rotatably secured to the spheroid shell such that a rotation of the drive assembly is imparted to the spheroid shell. The weight-shifting steer mechanism is configured to move a center of mass of the mobile robot relative to a geometric center of the spheroid shell. 
     A second embodiment of the invention is directed to an internal assembly configured to be utilized with a mobile robot. The internal assembly comprises a base and a weight-shifting steer mechanism. The weight-shifting steer mechanism is associated with the bass. The weight-shifting steer mechanism includes a ballast weight and a ballast motor associated with the ballast weight. The ballast motor is configured to move the ballast weight between a default position and a turning position. The ballast motor is configured to change a center of mass of the internal assembly relative to a geometric center of the mobile robot. 
     A third embodiment of the invention is directed to a mobile robot comprising a spheroid shell and an internal assembly. The internal assembly is disposed within the spheroid shell. The internal assembly includes a base, a drive assembly configured to propel the mobile robot, and a weight-shifting steer mechanism. The drive assembly is rotatably secured to the spheroid shell such that a rotation of the drive assembly is imparted to the spheroid shell. The weight-shifting steer mechanism includes a ballast weight and a ballast motor associated with the ballast weight. The ballast motor is configured to move the ballast weight between a default position and a turning position. The ballast motor is configured to change a center of mass of the internal assembly relative to a geometric center of the mobile robot. 
     This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Other aspects and advantages of embodiments of the invention will be apparent from the following detailed description of the embodiments and the accompanying drawing figures. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWING FIGURES 
       Embodiments of the invention are described in detail below with reference to the attached drawing figures, wherein: 
         FIG. 1  is a side view of the mobile robot; 
         FIG. 2  is a perspective view of the mobile robot of  FIG. 1  having a spheroid shell removed so as to show the internal assembly; 
         FIG. 3 a    is a perspective view of the internal assembly of the mobile robot of  FIG. 2 ; 
         FIG. 3 b    is a perspective view of the internal assembly of  FIG. 3 a    rotated 90 degrees clockwise; 
         FIG. 4  is an exploded view of the various components of the internal assembly of  FIG. 3   a;    
         FIG. 5  is a perspective view of a pivoting arm of the internal assembly; 
         FIG. 6  is a perspective view of a head of the mobile robot as viewed generally from a bottom side; 
         FIG. 7  is a schematic view of the various computing components of the mobile robot, including a user remote control and a user device; 
         FIG. 8  is a perspective view of another embodiment of the invention that utilizes a spinning flywheel to spin the mobile robot; and 
         FIG. 9  is an exploded view of the various components of the internal assembly of the mobile robot of  FIG. 4 . 
     
    
    
     The drawing figures do not limit the invention to the specific embodiments disclosed and described herein. The drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the invention. 
     DETAILED DESCRIPTION 
     The following detailed description references the accompanying drawings that illustrate specific embodiments in which the invention can be practiced. The embodiments are intended to describe aspects of the invention in sufficient detail to enable those skilled in the art to practice the invention. Other embodiments can be utilized and changes can be made without departing from the scope of the invention. The following detailed description is, therefore, not to be taken in a limiting sense. The scope of the invention is defined only by the appended claims, along with the full scope of equivalents to which such claims are entitled. 
     In this description, references to “one embodiment,” “an embodiment,” or “embodiments” mean that the feature or features being referred to are included in at least one embodiment of the technology. Separate references to “one embodiment,” “an embodiment,” or “embodiments” in this description do not necessarily refer to the same embodiment and are also not mutually exclusive unless so stated and/or except as will be readily apparent to those skilled in the art from the description. For example, a feature, structure, act, etc. described in one embodiment may also be included in other embodiments, but is not necessarily included. Thus, the current technology can include a variety of combinations and/or integrations of the embodiments described herein. 
     Turning to  FIG. 1 , embodiments of the invention are directed to a mobile robot  10 . The mobile robot  10  broadly comprises a spheroid shell  12 , a head  14 , and an internal assembly  16  (illustrated in  FIG. 2 ). The spheroid shell  12  surrounds the internal assembly  16  and protects the internal assembly  16  from dust, debris, or other interfering components. The internal assembly  16  drives the spheroid shell  12  in a desired direction or path. The head  14  is disposed atop the spheroid shell  12  and moveably held in place by the internal assembly  16 , as discussed below. The head  14  provides a stable and moveable platform for sensors, speakers, and other environmental interaction devices. 
     Before discussing the components of the mobile robot  10  in more detail, a reference frame system will be discussed to orient the reader. It should be appreciated that the reference frame is only exemplary and is utilized to simplify concepts. The reference frame is illustrated in  FIGS. 2-4 . The reference frame includes an x-axis, a y-axis, and a z-axis as illustrated. The axes are perpendicular to each other so as to form a traditional three-dimensional Cartesian coordinate system. The below discussion may include translation along one or more of the above discussed axes. The below discussion may also include rotation about one or more of the above discussed axes. Rotation about the x-axis may be referred to as “roll.” Rotation about the y-axis may be referred to as “pitch.” Rotation about the z-axis may be referred to as “yaw” or “spin.” In embodiments of the invention, rotation about one or more axes may result in translation along another one or more axes. For example, pitch (e.g., rotation about the y-axis) results in translational movement along the x-axis, due to the spheroid shell rolling on an underlying surface (e.g., the ground or other surface underneath the spheroid shell). 
     The internal assembly  16  is configured to move the mobile robot  10  in the direction of the x-axis by rotating the spheroid shell  12  about the y-axis that is generally perpendicular to the x-axis. It should be appreciated that in embodiments of the invention, the spheroid shell  12  is generally fixed about the y-axis, and the internal assembly  16  is also generally fixed about the y-axis. The x-axis is therefore generally the direction of movement caused by the rotation about the y-axis (e.g., pitch). Turning is accomplished, as discussed below, by rotating about the x-axis (e.g., roll) while rotating about the y-axis (e.g., pitch). The z-axis is defined as perpendicular to both the x-axis and the y-axis and oriented generally upward. In embodiments of the invention, the origin of the Cartesian coordinate system is located in a geometric center of the spheroid shell  12 . 
     In embodiments of the invention, the spheroid shell  12  provides exterior protection to the internal assembly  16 . The spheroid shell  12  acts as a wheel for the internal assembly  16 . The mobile robot  10  moves by rotating the spheroid shell  12  about the internal assembly  16 . The spheroid shell  12  presents a spheroid wall  18 . A spheroid (also known as an ellipsoid of revolution) is an ellipse rotated about a principle axis. A spheroid may be prolate (e.g., “elongated), oblate (e.g., “flattened”), or spherical. In some embodiments of the invention, the spheroid shell  12  is substantially spherical (as illustrated in  FIG. 1 ). As the spheroid shell  12  only rotates about a fixed y-axis, in other embodiments of the invention the spheroid shell  12  is a substantial prolate or oblate spheroid. In these embodiments, the non-circular axis is aligned laterally (e.g., along the y-axis) so as to allow rotation of the circular axes to rotate about the y-axis. 
     An exterior surface  20  of the spheroid shell  12  is configured to interface with the ground. For example, the exterior surface  20  may be ruggedized for rolling along the ground, including tread, protrusions, channels, recesses, and/or the like. The exterior surface  20  rolls along the ground as the mobile robot  10  moves. An interior surface  22  is configured to be secured to the internal assembly  16 . In embodiments of the invention, the spheroid shell  12  is rotatably fixed to the drive assembly  30  along the y-axis. The spheroid shell  12  is substantially hollow so as to allow the internal assembly  16  to be disposed therein. Unlike spherical robots of the prior art, in which independent wheels of an inner rover roll along an interior surface of the shell, most of the interior surface  22  of the spheroid shell  12  does not contact the internal assembly  16 . Therefore, this allows for reinforcing structure (not shown) within the spheroid shell  12 , such as for use of the mobile robot  10  on rough terrain, for larger spheroid shells, to support a shell made of a particular material (e.g., a lighter material), or the like. 
     In some embodiments of the invention, the spheroid shell  12  may include markings. The markings may be decorative, aesthetic, informational, functional, or the like. In some embodiments of the invention, the spheroid shell  12  may also include a port  24  so as to allow access to the interior of the spheroid shell  12 . The port  24  may allow a user to access the interior of the spheroid shell  12  for repair and replacement of parts (such as batteries). The port  24  may also allow access to the exterior of the spheroid shell  12  for components of the internal assembly  16 . For example, various components (not illustrated) of the internal assembly  16  may extend outwards, such as a stabilizing outrigger or an articulating arm with a tool or sensor disposed thereon. 
     The internal assembly  16  will now be discussed in greater detail, as illustrated in  FIGS. 2-4 . The internal assembly  16  is disposed within the spheroid shell  12  for propelling the mobile robot  10 . In embodiments of the invention, the internal assembly  16  propels the mobile robot  10  in a primary direction and a secondary direction. The primary direction is the primary direction of travel. The secondary direction turns the mobile robot  10  while the mobile robot  10  is traveling in the primary direction. The two directions may include linearly along the x-axis and rotatably about the x-axis (e.g., such that it moves generally toward the y-axis). By utilizing these at least two directions, movement in substantially all directions may be achieved. By utilizing these at least two directions simultaneously, turns and other maneuvers during movement can also be achieved. The internal assembly  16  may also keep itself substantially vertically aligned. The vertical alignment allows the internal assembly  16  to control the position, movement, and orientation of the head  14  relative to the internal assembly  16  and relative to the spheroid shell  12 . 
     In embodiments of the invention (as best illustrated in  FIG. 2  and  FIG. 3 a   ), the internal assembly  16  includes a base  26 , a weight-shifting steer mechanism  28 , a drive assembly  30 , and a pivoting arm  32 . The base  26  provides structural stability for and securement of the other components. The weight-shifting steer mechanism  28  controls steering of the mobile robot  10  in various directions by shifting a center of mass of the mobile robot  10  (which may also be referred to as a center of gravity). The drive assembly  30  controls lateral movement about the x-axis by driving the spheroid shell  12  around the base  26 . The pivoting arm  32  controls movement of the head  14  relative to the base  26  and relative to the spheroid shell  12 . The head  14  is magnetically secured to the pivoting arm  32 , as discussed below. 
     In embodiments of the invention, the base  26  includes a first housing  34  and a second housing  36 . The first housing  34  is secured to the second housing  36  and/or the other various components of the internal assembly  16 . In some embodiments, the first housing  34  may be disposed opposite the second housing  36  along the x-axis, as illustrated in  FIG. 4 . The first housing  34  and the second housing  36  collectively present a void  38  into which the various components are disposed. 
     A battery  40 , or an array of batteries, may be disposed in a battery compartment  42  of the first housing  34  and the second housing  36 . The array of batteries may power the various electronic components and motors described herein. In other embodiments, the base  26  may include a single housing or a plurality of housings may be utilized. For example, the battery  40  may be a rechargeable nickel-metal hydroxide (NiMH) battery. The array of batteries may be a 7.2V battery pack that is configured to supply power to the various motors within the base  26 . As discussed below, the battery  40  may be charged via the port  24  described in more depth below. 
     The weight-shifting steer mechanism  28  will now be discussed in more detail. In embodiments of the invention, the weight-shifting steer mechanism  28  is secured to or otherwise associated with a bottom side  44  of the base  26 , as illustrated in Fig. X, that is opposite a top side  42  on which the pivoting arm  32  is disposed (and discussed below). The weight-shifting steer mechanism  28  is configured to rotate about the x-axis so as to cause a tipping of the base  26  and the spheroid shell  12  about the x-axis. The weight-shifting steer mechanism  28  also keeps the base  26  substantially vertically aligned with the z-axis by providing a downward force due to mass. 
     The weight-shifting steer mechanism  28  moves the mobile robot  10  in the above-discussed secondary direction. The secondary direction in this case is rotationally about the x-axis (e.g., the roll direction). If the mobile robot  10  is stationary, operation of the weight-shifting steer mechanism  28  will lean the mobile robot  10  toward a left side or a right side (e.g., from the perspective of an observer positioned atop the mobile robot  10 , facing the primary direction of travel). Therefore, the combination of the weight-shifting steer mechanism  28  with the drive system described below allows the mobile robot  10  to move along the x-axis and rotate about the x-axis. As such, the mobile robot  10  can move forward and backward in the direction of the x-axis and turn to the left and the right while traveling in the general x-axis direction. 
     Turning is achieved by moving a center of mass of the mobile robot  10  horizontally away from a geometric center of the spheroid shell  12  (e.g., away from vertically aligned with the x-axis). It should be appreciated that the geometric center (not illustrated) of the spheroid shell  12  is substantially in the center of the sphere shape defined by the spheroid shell  12  (not including the head  14 ). The geometric center may also be approximated as the intersection of the three-dimensional Cartesian coordinate system, as best illustrated in  FIG. 4 . The geometric center is static and stable within the spheroid shell  12 . In embodiments of the invention, the center of mass of the mobile robot  10 , when the weight-shifting steer mechanism  28  is in a default position, is vertically below the geometric center (e.g. along the z-axis). The center of mass is disposed below the geometric center to aid in the stability of the mobile robot  10 , and to allow the mobile robot  10  to self-correct following an impact. It should be noted that, as used herein, the default position refers to the position that results in straight travel by the drive assembly  30 . In some embodiments, the default position may not be vertically aligned with the z-axis. In some embodiments, the default position may not be original position upon powering on the system. 
     The weight-shifting steer mechanism  28  is configured to move a ballast weight  46  between a default position and a first turning position. In the default position, the ballast weight  46  is disposed vertically below the geometric center (e.g., substantially aligned with the z-axis). In the first turning position, the ballast weight  46  is disposed away from vertically below the geometric center of the mobile robot  10 . In the first turning position, the weight-shifting steer mechanism  28  has pulled, pushed, pivoted, moved, maneuvered, or otherwise displaced at least a portion of the ballast weight  46  away from the default position. As such, the center of mass of the mobile device has moved a distance associated with the distance between the default position and the first steering position. It should also be appreciated that a second turning position may be opposite the first turning position, so as to result in a similar turn in the opposite direction. It should further be appreciated that, in embodiments of the invention, there is a first plurality of intermediate turning positions between the default position and the first turning position, and a second plurality of intermediate turning positions between the default position and the second turning position. 
     In order to maximize the shift of the center of mass relative to the geometric center of the spheroid shell  12 , in embodiments of the invention, the ballast weight  46  is disposed at least partially adjacent to the spheroid shell  12 . Disposing the ballast weight  46  adjacent to the spheroid shell  12  (as opposed to near the geometric center) increasing the balance and self-correction of the mobile robot  10  due to an external force (such as striking a wall or other obstacle, not illustrated) and increases the turning effectiveness of the ballast weight  46  when moved between the default position and the first turning position. 
     In embodiments of the invention, the ballast weight  46  includes a significant portion of the total weight of the mobile robot  10 . As used herein, a “significant portion” may include at least 20% of the total weight, at least 30% of the total weight, at least 40% of the total weight, or at least 50% of the total weight of the mobile robot  10 . By shifting a significant portion of the totally weight laterally, the mobile robot  10  will tip to one side. The z-axis of the mobile robot  10  will shift away from vertical alignment, due to a significant portion of the weight being unaligned with the geometric center. As such, a contact point between the spheroid shell  12  and the underlying surface (e.g., the ground or other surface upon which the mobile robot  10  is positioned, assumed to be horizontal for purposes of this description but could be at any angle, shape, terrain, or other characteristic) is not aligned with the z-axis. Instead the point of contact is disposed laterally along an outer surface of the spheroid shell  12  toward the y-axis. 
     The structure of the weight-shifting steer mechanism  28  will now be discussed in more detail. It should be appreciated that the above-discussed functions and methods of the weight-shifting steer mechanism  28  could be accomplished through any of numerous structures. The below discussed rack and pinion design is only exemplary and other structures may be utilized. Other examples of embodiments of the weight-shifting steer mechanism  28 , such as a pendulum design, are discussed below. 
     In embodiments of the invention, the weight-shifting steer mechanism  28  is associated with the base  26 . The weight-shifting steer mechanism  28  therefore shifts weight relative to the base  26 . The weight-shifting steer mechanism  28  moves the center of mass to induce a roll about the x-axis by moving the ballast weight  46  in a corresponding roll about the x-axis (or by otherwise laterally displacing the ballast weight  46 ). The weight-shifting steer mechanism  28  is configured to steer the mobile robot  10  at a first angular rate while the ballast weight  46  is in the turning position. As used herein, an angular rate is a degree to which the mobile robot  10  turns (relative to the x-axis direction) for a given forward travel. It should therefore be appreciated that the angular rate of turning may vary based upon the position of the ballast weight  46 , the forward speed of the mobile robot  10 , the speed of the moving ballast weight  46 , the characteristics of the underlying surface, and other considerations. 
     At least a portion of the weight-shifting steer mechanism  28  is secured to, in contact with, or otherwise associated with the base  26 . In embodiments of the invention, the weight-shifting steer mechanism  28  associated with the base  26  comprises the ballast weight  46  and a ballast motor  48  associated with the ballast weight  46 . The ballast motor  48  is configured to move the ballast weight  46  between the default position (as illustrated in Fig. X) and a turning position. The ballast motor  48  exerts a force upon the ballast weight  46  and/or the base  26  so as to move the ballast weight  46  between the default position and the turning position. The ballast motor  48  may also hold the ballast weight  46  into either or both of the default position and the turning position. The ballast motor  48  is therefore configured to change a center of mass of the internal assembly  16  relative to a geometric center of the mobile robot  10 . 
     In embodiments of the invention, the weight-shifting steer mechanism  28  utilizes a rack and pinion design to move the ballast weight  46  relative to the base  26 . In these embodiments, the weight-shifting steer mechanism  28  is associated with a weight track  50  that is secured to the base  26 . In some embodiments, the weight track  50  is a component of the base  26 . In other embodiments, the weight track  50  is a component of the weight-shifting steer mechanism  28 . The weight track  50  provides a path or route along which the ballast weight  46  travels between the default position and the first turning position. The ballast weight  46  is configured to move along the weight track  50 . 
     In embodiments of the invention, the weight track  50  presents a plurality of track protrusions  52  configured to interface with a pinion  54  associated with the ballast motor  48 . Each track protrusion  52  is disposed along the weight track  50  and separated by an interim distance D, as illustrated in Fig. X. It should be appreciated that each track protrusion  52  is separated from neighboring track protrusions  52  by the same (or substantially the same) interim distance. As such, the pinion  54  (having a set of pinion protrusions  56 ) traveling thereon that is associated with the ballast motor  48  will interlock the pinion protrusions  56  with the track protrusions  52 . The rotating pinion  54 , in pushing against the static track protrusions  52 ) will exert a force on the ballast motor  48  to move the ballast motor  48  relative to the geometric center of the mobile robot  10 . In other embodiments, not illustrated, the weight track  50  presents a plurality of track recesses configured to interface with the pinion protrusions  56 . In still other embodiments, the weight track  50  presents the plurality of track recesses configured to interface with a plurality of pinion recesses. 
     In embodiments of the invention, the weight track  50  is generally arcuate shaped. The arcuate shape keeps the ballast weight  46  away from the geometric center of the mobile robot  10 , for reasons such as the reasons described above. In some of these embodiments, the weight track  50  is a circular arc (e.g., a segment of a circle), such as illustrated in  FIG. 3 a   . The circular arc shape is disposed adjacent to, proximate to, or otherwise associated with the spheroid shell  12 . In some embodiments, such as illustrated in  FIG. 2 , the circular arc shape of the weight track  50  positions the ballast weight  46  adjacent to the inner surface of the spheroid shell  12 . A separation distance between the ballast weight  46  and the geometric center of the mobile robot  10  is substantially constant in all positions (e.g., the default position, the first turning position, the second turning position opposite the first turning position, and intermediate positions therebetween). As such, in these embodiments, a center of a circle defined by the circular arc is in substantially the same location as the geometric center of the spheroid shell  12 . A radius from the geometric center to the spheroid shell  12  is greater that a corresponding radius from the geometric center to the weight track  50 . In embodiments, the weight track  50  is oriented downward relative to the base  26 . In some embodiments, a midpoint of the circular arc is disposed along the z-axis such that a right end and a left end of the weight track  50  are each disposed an equal distance from the default position. 
     In other embodiments, not illustrated, the weight track  50  may be substantially straight and oriented horizontally. In still other embodiments, not illustrated, the weight track  50  may be arcuate having a shape that contours to available space within or near the base  26 . In still other embodiments, not illustrated, the weight track  50  is a circular arc having an associated center point that is above or below the geometric center of the spheroid shell  12 . 
     In embodiments of the invention, the weight track  50  includes an anterior lip  58  and a posterior lip  60  opposite the anterior lip  58 . The anterior lip  58  and the posterior lip  60  each protrude laterally from the base  26 . The anterior lip  58  and the posterior lip  60  each present an upper side  62  and a lower side  64 . In embodiments of the invention, as illustrated in Fig. X, the track protrusions  52  of the weight track  50  are associated with, or disposed at least partially upon, the upper side  62  of the anterior lip  58 . The upper side  62  of the posterior lip  60  is substantially smooth. In other embodiments, not illustrated, the weight track  50  is an anterior weight track  50  associated with the upper side  62  of the anterior lip  58 , and a posterior weight track  50  is associated with the upper side  62  of the posterior weight track  50 . In other embodiments, not illustrated, the weight track  50  is associated with the lower side  64  of the anterior lip  58 . It should be appreciated that “anterior” and “posterior” are used as general side designations, and that, in embodiments of the invention, the mobile robot  10  is equally capable of travelling toward the posterior direction. As such, “anterior” and “posterior” may have little practical difference in some embodiments of the invention. 
     The anterior lip  58  and the posterior lip  60  are configured to receive the ballast weight  46  therearound. In embodiments of the invention, the ballast weight  46  is disposed around the anterior lip  58  and the posterior lip  60  such that the ballast weight  46  is movably secured to the weight track  50 . The anterior lip  58  and the posterior lip  60  therefore keep the ballast weight  46  retained against the anterior lip  58  and the posterior lip  60  (and therefore, in contact with the weight track  50 ). 
     As best illustrated in  FIG. 4 , in embodiments of the invention, the anterior lip  58  is associated with an anterior lip plate  66  that is secured to the base  26 , and the posterior lip  60  is associated with a posterior lip plate  68  that is secured to the base  26 . In embodiments of the invention, the anterior lip plate  66  and the posterior lip plate  68  each includes a base-interface plate  70  and a stop protrusion  72  protruding from the base-interface plate  70 . The base-interface plate  70  is configured to be secured to the base  26  to provide a stable weight track  50 . The base-interface plate  70  presents, in embodiments of the invention, a semi-circular shape that is complementary to an external shape of the first housing  34  and the second housing  36 . The stop protrusions  72  prevents the ballast weight  46  from exceeding a maximum range of motion. In embodiments of the invention, such as shown in  FIGS. 3 a  and 3 b   , both the anterior lip  58  and the posterior lip  60  each present two stop protrusions  72  on each side of the weight track  50 . 
     In embodiments of the invention, the ballast weight  46  is formed of a dense metal or other dense material. The ballast weight  46  is dense and heavy for any of at least three purposes. First, the dense ballast weight  46  tends to keep the mobile robot  10  generally upright along the z-axis (e.g., vertically). This may be advantageous because it tends to keep the head  14  (being opposite the ballast weight  46 ) away from the ground where it may become dislodged from the pivoting arm  32 . Second, the heavy ballast weight  46  may help to ensure that the mobile robot  10  travels forward in the x-axis direction upon the drive assembly  30  rotating. If the internal assembly  16  was substantially uniformly weighted about the y-axis, the spinning motion of the drive assembly  30  (as discussed below) would tend to rotate the internal assembly  16  within the spheroid shell  12  instead of propelling the spheroid shell  12  forward (or backward) in the x-axis direction. The third potential reason for the dense and heavy ballast weight  46  (as opposed to a dense and heavy lower region of the base  26 ) is to assist in rotation about the x-axis (e.g., roll) A dense and heavy ballast weight  46  will impart a greater moment on the mobile robot  10  by when moving therein. In some embodiments, the ballast weight  46  may be at least 25% of the total mass of the mobile robot  10 , at least 50% of the total mass of the mobile robot  10 , or at least 75% of the total mass of the mobile robot  10 . 
     In embodiments of the invention, the ballast weight  46  comprises a ballast mounting bracket  74  and a weight body  76 . The ballast mounting bracket  74  is configured to secure the weight body  76  adjacent to the weight track  50 . As best illustrated in  FIG. 4 , the weight body  76  may present a generally semi-circular prism or a generally cylinder segment shape. This shape is configured to maximize the amount of weight that can be added adjacent to the interior surface  22  of the spheroid shell  12  (as best illustrated in  FIG. 2 ). The weight body  76  may further present an anterior protuberance  78  and/or a posterior protuberance  80 . The anterior protuberance  78  and the posterior protuberance  80  are each an enlarged protrusion from the weight body  76  configured to add additional mass away from the weight track  50  where the interior of the spheroid shell  12  has additional available space. In some embodiments of the invention, the posterior protuberance  80  is larger (e.g., heavier) than the anterior protuberance  78  to equalize the weight of the ballast motor  48  and associated components (which are located on the anterior side, as shown in  FIG. 2 ), which are discussed more below. 
     The ballast mounting bracket  74  (best illustrated in  FIG. 4 ) includes an anterior hook  82 , a posterior hook  84 , a motor mount  86 , and a traversing bracket  88 . The anterior hook  82  is configured to be disposed around the anterior lip  58 . The posterior hook  84  is configured to be disposed around the posterior lip  60 . The traversing bracket  88  is disposed between the anterior hook  82  and the posterior hook  84  so as to retain the distance between anterior hook  82  and the posterior hook  84 . The anterior hook  82  and the posterior hook  84  support the weight of the ballast weight  46  in the various positions. The motor mount  86  is configured to receive the ballast motor  48  therein. 
     In embodiments of the invention, the ballast weight  46  is formed by placing the anterior hook  82  around the anterior lip  58  and placing the posterior hook  84  around the posterior lip  60 . The anterior hook  82  and the posterior hook  84  are then secured to the traversing bracket  88  with fasteners (not illustrated). As such the ballast mounting bracket  74  is secured to the weight track  50 . The weight body  76  is then secured to ballast mounting bracket  74  with fasteners, such as from below. 
     In embodiments of the invention, the anterior hook  82  and the posterior hook  84  present a low-friction bearing surface configured to slide along the anterior lip  58  and the posterior lip  60 , respectively. The low-friction bearing surface may be a coating on the anterior hook  82  and the posterior hook  84 , or the anterior hook  82  and the posterior hook  84  may be formed entirely of the low-friction material. As an example, the low-friction bearing surface may be formed of polyoxymethylene (“POM”), acetal, or other low-friction material. In embodiments of the invention, the anterior lip  58  and the posterior lip  60  also present a low-friction bearing surface. 
     In embodiments of the invention, the ballast motor  48  is fixedly secured to the ballast weight  46  at the motor mount  86  of the ballast mounting bracket  74 . The pinion  54  of the ballast motor  48  moves along the weight track  50  thus moving the ballast weight  46  a corresponding distance in a corresponding direction. The ballast motor  48  moves the ballast weight  46  between the default position and the turning position by traversing the ballast weight  46  along the weight track  50 . As discussed above, the ballast motor  48  is associated with the pinion  54  configured to rotate relative to the rack so as to produce a linear, traversing motion of the pinion  54  relative to the rack. The linear motion of the ballast weight  46  moves the ballast weight  46  between the default position and the turning position. 
     The ballast motor  48  will now be described in more detail. The ballast motor  48  is best illustrated in  FIG. 4 . The ballast motor  48  may include a motor  90 , the pinion  54 , a switch  92 , and a potentiometer  94 . The motor  90  drives the pinion  54  to move the ballast weight  46 , as described above. The switch  92  is activated at the default position so as to provide feedback of the current position of the ballast weight  46  relative to the base  26 . The potentiometer  94  measures the degree of travel of the ballast weight  46 . In other embodiments, a proximity sensor is used to detect the position of the ballast weight  46  relative to the base  26 . In still other embodiments, contact with the pinion protrusions  56  is detected electrically by sensors on or associated with the weight track  50 . 
     The ballast motor  48  is powered by the battery  40  in the base  26 . In embodiments, the power from the battery  40  is transferred to the ballast motor  48  via a wire (not illustrated). The wire allows the ballast motor  48  to travel between the various positions while retaining the power from the battery  40 . In other embodiments, the ballast motor  48  is associated with an independent battery (not illustrated) configured to power the ballast motor  48 . The independent battery may be charged by direct contact while the ballast motor  48  is in the default position. 
     In other embodiments, not illustrated, the weight-shifting steer mechanism  28  presents a pendulum design, in lieu of or in addition to the rack and pinion design described above and shown in the figures. The weight-shifting steer mechanism  28  of these embodiments comprises a rod and a bob. An upper end of the rod is pivotably secured at or near the geometric center of the spheroid shell  12 . A lower end of the rod is fixedly secured to the bob. Instead of being a free-hanging pendulum, the weight motor pivots the rod relative to the base  26  so as to change the position of the bob relative to the base  26 . The bob is the ballast weight  46 , so as to turn the mobile robot  10  as described above. The weight motor may be associated with an actuator that moves the rod relative to the base  26 . In some embodiments, the actuator is a linear actuator pivotably secured to the rod between the upper end and the lower end. In other embodiments, the actuator is a rotary actuator associated with the upper end of the rod. 
     The drive assembly  30  will now be discussed in more detail. The drive assembly  30  is rotatably secured to the interior surface  22  of the spheroid shell  12 . The drive assembly  30  is configured to propel the mobile robot  10  by rotating the spheroid shell  12  about the base  26  along the y-axis. The drive assembly  30  is fixed relative to the spheroid shell  12 , such that the internal assembly  16  is not free and independent of the spheroid shell  12  (as is common in the “hamster ball” designs of the prior art). The drive assembly  30  is best illustrated in  FIG. 4 . 
     In embodiments of the invention, the drive assembly  30  includes a drive motor  96 , a drive axle  98 , a drive shaft  100 , and at least one drive-shell attachment bracket  102 . The drive axle  98  and the drive shaft  100  are generally aligned with the y-axis, such that rotation of the spheroid shell  12  is imparted around the drive axle  98  and the drive shaft  100 . The drive motor  96  rotates the drive shaft  100  and/or the drive axle  98 . In embodiments of the invention, the drive motor  96  rotates the drive shaft  100  out of a first side  104  of the drive motor  96  and drives the drive axle  98  out of a second side  106  of the drive motor  96 . The drive shaft  100  drives a first drive-shell attachment bracket  10  (that is secured to the interior surface  22  of the spheroid shell  12 , as discussed below). The drive axle  98  traverses the base  26  (such as through a set of axle openings  110  in the housing) so as to drive a second drive-shell attachment bracket  112 . 
     In some embodiments, the drive shaft  100  provides the primary rotational force and the drive axle  98  is free spinning. In these embodiments, the spheroid shell  12  is driven only by the drive shaft  100 , and the drive axle  98  keeps the drive shaft  100  aligned along the y-axis. In other embodiments, the drive axle  98  is fixed to the drive shaft  100  (or other component of the drive motor  96 ) such that the drive axle  98  is also being driven. In these embodiments, the drive axle  98  transfers the driving force to the second drive-shell attachment bracket  112 . In still other embodiments, the drive motor  96  is substantially aligned near the z-axis such that the drive axle  98  drives both drive-shell attachment brackets  102  (and there is no drive shaft  100  as illustrated in  FIG. 4 ). 
     In embodiments of the invention, the drive-shell attachment bracket  102  is configured to be secured to the interior surface  22  of the spheroid shell  12 . The drive-shell attachment bracket  102  includes a face  114 , a support honeycomb  116 , at least one fastener receptor  118 , and a drive receptor  120 . The face  114  presents a generally complementary shape to the interior surface  22  of the spheroid shell  12 . For example, as illustrated in  FIG. 4 , the face  114  may be generally arcuate. The support honeycomb  116  provides structural support to the drive-shell attachment bracket  102 . The at least one fastener receptor  118  is configured to receive a fastener (not illustrated) therethrough. The fastener is also disposed through a corresponding fastener receptor (not illustrated) in the interior surface  22  of the spheroid shell  12 . In other embodiments of the invention, another fastening method is utilized, such as by welding or by a chemical adhesive. 
     In embodiments of the invention, best illustrated in  FIG. 4 , the drive receptor  120  is configured to receive the drive shaft  100  or the drive axle  98  therethrough. In some embodiments of the invention, a first drive receptor  122  associated with the first drive-shell attachment bracket  108  presents a hex opening  124 , and a second drive receptor  126  associated with the second drive-shell attachment bracket  112  presents a notched circular opening  128 , as illustrated in  FIG. 4 . The hex opening  124  presents a complementary shape to a hex protrusion  130  of the drive shaft  100 . The notched circular opening  128  presents a complementary shape to a notched circular protrusion  132  of the drive axle  98 . In other embodiments, other securing methods and structures may be utilized. For example, the drive axle  98  and drive shaft  100  may be secured to their respective drive-shaft interfaces by a mechanical fastener, a chemical adhesive, or welding or may be monolithic. It should be appreciated that in embodiments of the invention, there are no internal wheels that travel along the interior surface  22  of the spheroid shell  12 . 
     In embodiments of the invention, the notched circular protrusion  132  of the drive axle  98  allows a fixed panel  134  to be disposed therein. The fixed panel  134  (as best illustrated in  FIG. 3 a   ) extends at least partially through the port  24  through the spheroid shell  12  (as illustrated in  FIG. 1 ). The fixed panel  134  allows the user to access the internal assembly  16  through the spheroid shell  12 . The fixed panel  134  remains substantially aligned with the vertical z-axis as the drive axle  98  rotates therearound. The fixed panel  134  of the drive assembly  30  may include a charging port  136 , a power switch  138 , and a status indicator  140 . The charging port  136  is configured to receive a charging cable (not illustrated) therein for charging the battery  40  and other components of the internal assembly  16 . The power switch  138  allows the user to power on and power off the internal assembly  16  (and by extension the mobile robot  10 ). In some embodiments, the head  14  has a head power switch for the user to provide power to the head  14 , a head charging port, and a head status indicator, not illustrated. 
     The pivoting arm  32  will now be discussed, as best illustrated in  FIGS. 4 and 5 . The pivoting arm  32  secures the head  14  to the spheroid shell  12  in a certain location and orientation. The certain location and orientation of the head  14  may be desired by the user and/or the processor for several reasons. For example, the head  14  location and orientation may be desired based upon directing a sensor in a certain direction (such as toward an obstacle or the user), relaying certain information to the user, performing certain actions, and the like. The head  14  may also be moved to a certain location and orientation to keep the mobile robot  10  balanced and/or moving in a certain direction. The pivoting arm  32  secures the head  14  by magnetic attraction, or another force, applied to the head  14 . The pivoting arm  32  is pivotably secured to the base  26 , such that a distal, magnetized end  142  of the pivoting arm  32  is configured to pivot relative to the base  26 . 
     In some embodiments of the invention, the magnetized end  142  of the pivoting arm  32  is configured to move about the x-axis, the y-axis, and the z-axis. This may include moving about more than one axis simultaneously. As the magnetized end  142  of the pivoting arm  32  pivots, the pivoting arm  32  remains substantially adjacent to the interior surface  22  of the spheroid shell  12 . This ensures that the magnetized end  142  remains at a substantially similar distance from the head  14  regardless of the location of the magnetized end  142  relative to the base  26 . As such, the pivoting about the x-axis and about the y-axis may be substantially cross-axial such that they pass through the substantial geometric center of the spheroid shell  12 . It should be appreciated that the drive axle  98  may also pass through the geometric center of the spheroid shell  12 , as illustrated in  FIG. 4 . 
     In embodiments of the invention, the pivoting arm  32  includes an x-pivot device  144 , a y-pivot device  146 , a z-pivot device  148 , a support plate  150 , and a set of magnetic protrusions  152 . Each of the x-pivot device  144 , the y-pivot device  146 , and the z-pivot device  148  is configured to rotate the magnetized end  142  about their respective axes. The x-pivot device  144 , the y-pivot device  146 , and the z-pivot device  148  are also configured to be utilized in concert with each other to achieve intermediate locations and orientations outside the x-axis and y-axis. The x-pivot device  144  and the y-pivot device  146  determine the location of the magnetized end  142  away from the true, vertical z-axis. The z-pivot device  148  determines the orientation of the magnetized end  142  at that location. It should be appreciated that in some embodiments, the x-pivot device  144 , the y-pivot device  146 , and the z-pivot device  148  pivot about a relative axis based upon the given position of the magnetized end  142 . For example, the z-pivot device  148  may rotate the magnetized end  142  along a longitudinal axis. As such, the longitudinal axis may be referred to as a relative z-axis, as the longitudinal axis is aligned with the z-axis while the x-pivot device  144  and the y-pivot device  146  are both at a default, level position (as illustrated in  FIG. 2  and  FIG. 3 ). 
     The x-pivot device  144  and the y-pivot device  146  have a certain range of motion relative to the base  26 . It should be appreciated that in embodiments of the invention, the magnetized end  142  of the pivoting arm  32  is prevented from traveling beyond the range of motion. For example, the range of motion may be at least 30 degrees, at least 60 degrees, at least 90 degrees, or at least 150 degrees. In embodiments, the z-pivot device  148  can rotate a full 360 degrees around, such that the magnetized end  142  may be disposed in any orientation along the longitudinal axis. 
     The x-pivot device  144  is configured to pivot the magnetized end  142  of the pivoting arm  32  about the x-axis relative to the base  26 . In embodiments of the invention, the x-pivot device  144  comprises an x-pivot motor  154 , an x-pivot gear  156 , and an x-pivot bracket  158 . The x-pivot motor  154  is powered by a battery or other power source (such as the battery  40  that powers the drive motor  96 ). The x-pivot motor  154  rotates the x-pivot gear  156  either directly or through a shaft. The x-pivot gear  156  rotates the x-pivot bracket  158 . The x-pivot bracket  158  may include a connecting member  160  from the x-pivot gear  156  to the x-pivot bracket  158 . As the x-pivot motor  154  turns in response to a powering or a command from a processor, the x-pivot gear  156  rotates the x-pivot bracket  158  a corresponding degree path (depending on the gear ratio). The pivoting x-pivot bracket  158  pivots the z-pivot device  148  and the magnetized end  142 . By moving the magnetized end  142  about the x-axis, the x-pivot device  144  is further configured to move the head  14  generally in the y-axis direction along the outer surface of the spheroid shell  12 , as the head  14  is magnetically secured to the magnetized end  142  of the pivoting arm  32 . 
     The y-pivot device  146  is configured to pivot the magnetized end  142  of the pivoting arm  32  about the y-axis relative to the base  26 . In embodiments of the invention, the y-pivot device  146  comprises a y-pivot motor  162 , a y-pivot gear  164 , and a y-pivot bracket  166 . The y-pivot motor  162  is powered by a battery or other power source (such as the battery  40  that powers the drive motor  96 ). The y-pivot motor  162  rotates the y-pivot gear  164  either directly or through a shaft. The y-pivot gear  164  rotates the y-pivot bracket  166 . The y-pivot bracket  166  may include a connecting member  160  from the y-pivot gear  164  to the y-pivot bracket  166 . As the y-pivot motor  162  turns in response to a powering or a command from a processor, the y-pivot gear  164  rotates the y-pivot bracket  166  a corresponding degree path (depending on the gear ratio). The pivoting y-pivot bracket  166  pivots the z-pivot device  148  and the magnetized end  142 . By moving the magnetized end  142  about the y-axis, the y-pivot device  146  is further configured to move the head  14  generally in the x-axis direction along the outer surface of the spheroid shell  12 , as the head  14  is magnetically secured to the magnetized end  142  of the pivoting arm  32 . 
     The x-pivot bracket  158  and the y-pivot bracket  166  provide a pivoting platform  168  for the z-pivot device  148  and the magnetized end  142  to be secured thereon. In embodiments of the invention, the x-pivot bracket  158  is substantially smaller than the y-pivot bracket  166  so as to fit within the y-pivot bracket  166 . In other embodiments of the invention, the y-pivot bracket  166  is substantially smaller than the x-pivot bracket  158  so as to fit within the x-pivot bracket  158 . This allows the x-pivot bracket  158  to move independently of the y-pivot bracket  166  while each remains aligned in the respective axis. In still other embodiments of the invention, the x-pivot device and the y-pivot device are formed of a single structure, such as a ball joint or a boom turret. 
     The z-pivot device  148  is configured to pivot the magnetized end  142  of the pivoting arm  32  about the z-axis relative to the base  26 . The z-pivot device  148  is secured to either the x-pivot bracket  158  or the y-pivot bracket  166 . As such, as the x-pivot bracket  158  and the y-pivot bracket  166  pivot, as described above, the z-pivot device  148  will pivot in a corresponding manner. In embodiments of the invention, the z-pivot device  148  includes a z-pivot base  170 , a z-pivot motor  172 , and a z-pivot gear  174 . The z-pivot base  170  is secured to the x-pivot bracket  158  or the y-pivot bracket  166  so as to keep the z-pivot device  148  aligned with the desired orientation along the x-axis and the y-axis. The z-pivot motor  172  rotates the z-pivot gear  174  so as to rotate the magnetized end  142 . The z-pivot device  148  is therefore configured to rotationally move the head  14  secured to the magnetized end  142  of the pivoting arm  32  along the longitudinal axis of the pivoting arm  32 . 
     In other embodiments of the invention, the pivoting arm  32  includes the y-pivot device  146  and the z-pivot device  148  without the x-pivot device  144 . As such, the pivoting arm  32  can move generally forward and rotate in the x-axis direction but not move in the y-axis direction. In these embodiments, the mobile robot  10  may rotate about the z-axis to align the y-pivot device  146  in the desired orientation. In still other embodiments, the pivoting arm  32  includes the x-pivot device  144  and the y-pivot device  146  without a z-pivot device  148 . In these embodiments, rotation of the head  14  may be achieved by rotating the entire mobile robot  10 . 
     The magnetized end  142  will now be discussed in greater detail, as best illustrated in  FIG. 5 . In embodiments of the invention, the magnetized end  142  includes a support plate  150 , a set of magnetic protrusions  152 , and a interlock switch  176 . The magnetized end  142  may also include the z-pivot gear  174 , as discussed above. The magnetized end  142  is configured to secure the head  14  in the desired location and orientation. 
     The support plate  150  is configured to be in a first position while the head  14  is magnetically secured to the pivoting arm  32  and configured to be in a second position while the head  14  is not magnetically secured to the pivoting arm  32 . Typically, the first position will be upward along the longitudinal axis, and the second position will be downward along the longitudinal axis. While the head  14  is secured to the magnetized end  142 , the support plate  150  will move upward to the first position based upon the magnetic attraction force of the head  14 . Upon the head  14  falling off of the mobile robot  10  or being removed by the user, the support plate  150  will move to the second position, by the weight of an actuator (such as a spring) exerting a downward force on the support plate  150 , by a magnetic force pulling the support plate  150  downward, or by another force. 
     The interlock switch  176 , as illustrated in  FIG. 4 , is configured to detect whether the support plate  150  is in the first position or the second position. The interlock switch  176  detects the support plate  150  being in the second position by the support plate  150  (or a component thereof) striking, depressing, or otherwise providing input to the interlock switch  176 . In various embodiments of the invention, the interlock switch  176  is an electromechanical switch (activated by a physical depression of the interlock switch  176 ), a capacitive switch (activated by detecting the capacitive variation based upon an adjacent metallic or conductive support plate  150 ), an infrared detector (activated by a reflected infrared signal), or other type of proximity detector or switch. A potentiometer or other encoder may be used to generate an electronic signal indicative of the support plate  150  being in the second position. Therefore, as the support plate  150  moves downward upon the head  14  dislodging from the magnetic attraction of the pivoting arm  32 , the interlock switch  176  detects this condition. 
     In embodiments of the invention, the internal assembly  16  is configured to allow movement upon a detection that the support plate  150  is in the first position and configured to cease movement upon a detection that the support plate  150  is in the second position. This is because if the head  14  falls or is dislodged from the mobile robot  10 , the mobile robot  10  will cease movement. Without the head  14 , the mobile robot  10  may not be able to perform certain functions (such as detecting obstacles, receiving commands, and other functions as discussed below). The mobile robot  10  will also cease movement such that the user can find the head  14 . The mobile robot  10  may also provide the user with an indication that the head  14  has fallen off, such as a certain animation (e.g., the spheroid shell  12  spinning left and right rapidly as though it is “looking” for its head  14 ) or an alarm emitted from the head  14 , the internal assembly  16 , and/or as delivered to a user device discussed below. 
     The set of magnetic protrusions  152  protrudes substantially upward (e.g., along the longitudinal axis) from the support plate  150 , as best illustrated in  FIG. 5 . In embodiments of the invention, the set of magnetic protrusions  152  includes a protrusion base  178  and at least one protrusion. The protrusion base  178  is secured to the support plate  150  or the pivoting arm  32 . Each of the protrusions extends from the protrusion base  178 . In embodiments of the invention, each protrusion includes a post  180  and a cap  182 . The cap  182  is secured at a distal end of the post  180  so as to be disposed adjacent or proximate to the interior surface  22  of the spheroid shell  12 . In embodiments of the invention, the cap  182  presents a beveled or tilted top face. The top face presents a generally complementary shape to the interior surface  22  of the spheroid shell  12 . 
     The head  14  includes at least one magnet for attracting a corresponding magnet or metallic component of the head  14 , as discussed below. The magnet may be a permanent magnet (such as a magnetic metal, a magnetic composite, a rare-earth magnet, or the like), an electromagnet, or both. It should be appreciated that, as used herein, the “magnetized end” of the pivoting arm  32  may not be magnetic, but instead may be metallic so as to be attracted to a corresponding magnet in the head  14  (as discussed below). Therefore, in embodiments of the invention, the term “magnetized” may refer not to properties of the pivoting arm  32  but instead to properties that hold the head  14  to the pivoting arm  32 . 
     In embodiments of the invention, the set of magnetic protrusions  152  includes at least one primary protrusion  184  and at least one secondary protrusion  186 . The set of primary protrusions  184  may be distinct from the set of secondary protrusions  186  based upon size, polarity of the magnets, orientation of the magnets, or other distinguishing characteristics. In embodiments of the invention, the set of primary protrusions  184  includes two protrusions disposed opposite each other, and the set of secondary protrusions  186  includes two protrusions disposed opposite each other. In embodiments of the invention best illustrated in  FIG. 5 , the set of primary protrusions  184  is larger than the set of secondary protrusions  186 . This orients the head  14  correctly as to the pivoting arm  32 . For example, in embodiments of the invention, the mobile robot  10  is directionally indifferent such that the drive motor  96  can operate in a forward direction and a backward direction substantially similarly. In this embodiment, the magnetized end  142  of the pivoting arm  32  will attract the head  14  in two possible orientations that are separated by 180 degrees. Whichever direction the user places the head  14  on will dictate the primary direction of movement (in embodiments in which the head  14  includes a primary operating direction). 
     The head  14  of the mobile robot  10  will now be discussed in more detail, as best illustrated in  FIGS. 1, 2, and 6 . The head  14  is secured to the magnetized end  142  of the pivoting arm  32  through the spheroid shell  12 . The head  14  therefore travels along the exterior surface  20  of the spheroid shell  12 , so as to move relative to the spheroid shell  12  and relative to the base  26  by the pivoting of the pivoting arm  32 . As the spheroid shell  12  is rotating during movement, the head  14  provides a stable platform for detecting the environment, receiving commands, and performing other functions. In other embodiments, the mobile robot  10  does not include a head  14 . In some of these embodiments, the spheroid shell  12  is transparent, translucent, or otherwise transmissive such that sensors and other functions may be performed by the internal assembly  16 . In other of these embodiments, the spheroid shell  12  may include ports  24  along the y-axis so as to allow for the discussed functions to be performed along the y-axis (such as the fixed panel  134 ). 
     In embodiments of the invention, as best illustrated in  FIG. 6 , the head  14  includes a head housing  188 , a set of magnetic receptors  190 , a set of wheels  192 , and at least one sensor (shown schematically in  FIG. 7  and discussed in depth below). The head housing  188  presents an interfacing side  196  configured to be magnetically secured against the spheroid shell  12 . The interfacing side  196  may present a generally complementary shape to the spheroid shell  12 . In some embodiments, the head housing  188  presents a general hemispherical shape so as to present an arcuate wall opposite the interfacing side  196 . In other embodiments, the head housing  188  may present another shape, such as a pyramid shape, a rectangular prism, or other three-dimensional shape. 
     The set of magnetic receptors  190  is disposed on the interfacing side  196  and configured to magnetically secure to the magnetized end  142  of the pivoting arm  32 . In embodiments of the invention, the set of magnetic receptors  190  presents a similar pattern to the set of magnetic protrusions  152  of the pivoting arm  32 . In these embodiments, the set of magnetic receptors  190  is disposed in a first orientation and the magnetized end  142  is disposed in a corresponding first orientation such that the set of magnetic receptors  190  remains aligned with the magnetized end  142  of the pivoting arm  32 . The set of magnetic receptors  190  may include a set of primary receptors  198  and a set of secondary receptors  200  that correspond with the set of primary protrusions  184  and the set of secondary protrusions  186 , respectively. 
     The set of wheels  192  is disposed on the interfacing side  196  and configured to allow for traveling in the x-axis direction along the spheroid shell  12 , as best illustrated in  FIG. 1 . In embodiments of the invention, the set of wheels  192  is the only component of the head  14  to contact the spheroid shell  12 . The set of wheels facilitates the spinning of the spheroid shell  12  relative to the head  14  while the drive assembly  30  is propelling the mobile robot  10  forward. The set of wheels  192  reduces the friction generated between the head  14  and the spheroid shell  12 . The set of wheels  192  also allows the spheroid shell  12  to pass under the set of wheels  192  when the head  14  is moving relative to the spheroid shell  12  in a direction other than the x-axis direction. For example, when the pivoting arm  32  is moving in the y-axis direction, the wheels  192  may slide across the exterior surface  20  of the spheroid shell  12 . In embodiments of the invention, the wheels  192  are formed of a hardened polymer or other energy absorbing material. 
     Turning to  FIG. 7 , the various electronic components of the mobile robot  10  and accessories are illustrated schematically. It should be appreciated that, like other figures,  FIG. 7  is an exemplary illustration of one embodiment of the invention. Other embodiments may include other layouts, devices, and functions. Further, the described functions and features may be performed by other components than as described below. 
     The mobile robot  10  of embodiments of the invention may comprise computing devices to facilitate the functions and features described herein. The computing devices may comprise any number and combination of processors, controllers, integrated circuits, programmable logic devices, or other data and signal processing devices for carrying out the functions described herein, and may additionally comprise one or more memory storage devices, transmitters, receivers, displays, and/or communication busses for communicating with the various devices of the mobile robot  10 . 
     In embodiments of the invention, the mobile robot  10  of embodiments of the invention includes a user remote control  700 , a user device  702 , a head electronic control unit  704 , and an internal assembly electronic control unit  706 . In other embodiments, the mobile robot  10  includes the user remote control  700 , the head electronic control unit  704 , and the internal assembly electronic control unit  706  without a user device  702 . In still other embodiments, the mobile robot  10  includes the user device  702 , the head electronic control unit  704 , and the internal assembly electronic control unit  706  without the user remote control  700 . It should be appreciated that “user remote control” and “user device” may be used interchangeably in the present description, and that functions described to the user device  702  may alternatively or additionally be performed by the user remote control  700 , and vice versa. The description of the user remote control  700  and the user device  702  are therefore exemplary of two possible devices utilized for controlling the mobile robot. In yet further embodiments, the mobile robot  10  is controlled without any user device  702  or user remote control  700  (such as through the use of voice commands and visual recognition). 
     The user remote control  700  may be dedicated and exclusive to the mobile robot  10 , or may be a standard remote control  700  that is operable to interface with or send commands to the mobile robot  10 . The user remote control  700  will typically include an input  708 , a transmitter  710 , and a power source  712 . The input  708  can include various input devices operable to send commands to the mobile robot  10 . For example, the input  708  may include a joystick, a button, a knob, a wheel, a directional pad, or other electromechanical input. The user selects, presses, actuates, or otherwise provides the input  708  so as to provide a command or other message to the mobile robot  10 . For example, the user may actuate a joystick “forward” to command the mobile robot  10  to travel forward in the x-axis direction. The user may also actuate the joystick “right” to command the mobile robot  10  to rotate about the z-axis in a corresponding direction. The user may also actuate the joystick “forward” and “right” to command the mobile robot  10  to simultaneously travel forward in the x-axis direction and rotate about the z-axis such that the mobile robot  10  turns while traveling. As another example, the user may actuate a button to have the mobile robot  10  perform a certain action, such as a “follow me” mode (discussed below), an autonomous mode, move the head  14  and/or spheroid shell  12  in a certain pre-defined pattern, or other action or modes. 
     The user remote control  700  communicates with the mobile robot  10  via a transmitter  710 . The transmitter  710  sends an electronic signal that is received and interpreted by the mobile robot  10  (as discussed below). In some embodiments of the invention, the transmitter  710  is an infrared (“IR”) transmitter. In other embodiments, the transmitter  710  utilizes another wireless communication method or protocol, such as Bluetooth, Wi-Fi, radio waves, or the like. The input  708  and/or the transmitter  710  are powered by the power source  712 , such as a battery. 
     The user device  702  may be a smartphone, tablet computer, laptop computer, or other computing device. Typically, the user device  702  is multi-functional, such that the user device  702  performs tasks in addition to control and interaction with the mobile robot  10 . The user device  702  may include a processor  714 , a communications element  716 , a memory element  718 , a location element  720 , a power source  722 , and a display  724 . The processor  714  may perform functions as instructed by a computer program stored in the memory element  718 . The performed functions may include displaying of a graphical user interface (“GUI”) on the display  724  to the user. The performed functions may also include receiving and analyzing user input (such as via the display  724  or other button, knobs, switches, or the like associated with the display  724 ). For example, the user may be presented with an option to draw a desired path on the display  724  of the user device  702 . The processor  714  may then calculate specific movement instructions and send those instructions to the mobile robot  10  via the communications element  716 . 
     The performed function may also include the sending of instructions, alerts, requests, or other messages to the mobile robot  10  via the communications element  716 . The performed functions may also include the determining of a geographic location of the user device  702 , such as via a GPS associated with the user device  702 . This geographic information may be communicated to the mobile robot  10 , such as to instruct the mobile robot  10  to move to that location. In some embodiments, the user device  702  may also include a transmitter (not illustrated) such as an IR transmitter for delivering instructions or other messages to the mobile robot  10 . 
     The head electronic control unit  704  contains numerous electronic components for detecting and interacting with the environment. As the internal assembly  16  is encased in the spheroid shell  12 , the head  14  allows the mobile robot  10  to have an unobstructed platform for observations of and interactions with the environment. For example, the head  14  may detect obstacles, receive voice commands, receive electronic commands, present audio feedback, and perform other tasks. The head  14  may also be moved during mobile operations to assist in performing various maneuvers. The head  14  may include various sensors and receivers disposed in the arcuate wall for detecting a condition, such as an obstacle in proximity to the mobile robot  10 , a voice command from a user, and a digital command from a user device  702 . 
     In embodiments of the invention, the head electronic control unit  704  includes a receiver  726 , an obstacle sensor  728 , a video camera  730 , a location element  732 , a directional microphone  734 , a communications element  736 , a processor  738 , and a power source  740 . The head electronic control unit  704  may also include other components, such as lights and speakers. For example, the head control unit  704  may control light-emitting diodes (LEDs, not illustrated) disposed in head  14  that are configured to display to the user. The LEDs may also emit IR light to be detected by remote control  700 , the user device  702 , a docking station, or other external sensor. As another example, the head electronic control unit  704  may control an ambient light sensor that detects an ambient light level and sends an ambient light reading to the processor  738 . 
     The receiver  726  is configured to receive instructions and other electronic messages from the user remote control  700 , the user device  702 , and/or other electronic devices. For example, the mobile robot  10  may include a base station (not illustrated) that emits an IR signal such that the mobile robot  10  can move to the base station as desired for recharging and other functions. It should also be appreciated that the receiver  726  may instead utilize another signal or protocol, as discussed below. The receiver  726  may include a set of IR receivers disposed around a perimeter of the head  14 . As such, the head  14  may be configured to receive instructions from multiple different relative directions and determine a direction from which the instruction was received. For example, the head  14  may have five IR receivers equally spaced around the head  14 , so as to detect IR signals. 
     In embodiments of the invention, the head  14  will include the set of obstacle sensors  728  disposed around the head  14  for detecting obstacles in multiple directions. The obstacle sensor  728  is configured to emit a signal and receive a reflected signal from an obstacle. The emitted signal may be a radar signal, an infrared signal, a sonar signal, an energized beam, or other electromagnetic or physical signal. Typically, each obstacle sensor  728  will be oriented relative to the mobile robot  10  outward in a certain range or field. The obstacle sensor  728  can therefore emit signals and receive reflected signals along a field that fans out from the obstacle sensor  728 . The set of obstacle sensors  728  therefore forms an overlapping coverage around at least a portion of a perimeter of the mobile robot  10 . Signals reflected by the set of obstacle sensors  728  are analyzed to detect distance and direction to the obstacle. The lack of a returned signal may also be indicative of an obstacle, such as a steep drop, cliff, or recess. The mobile robot  10  may then utilize this information to avoid the obstacle. 
     The video camera  730  may be utilized to detect the environment. For example, the video camera  730  may be utilized to recognize a certain user, a certain user remote control  700 , or perform other recognition functions. The video camera  730  may also be utilized additionally or alternatively to the set of obstacle sensors  728  to determine nearby obstacles such that they can be avoided. The video camera  730  may also record and/or stream video data to the user device  702  or other electronic resource. The recorded and/or streamed video data may include metadata indicative of the actions, location, status, or other information about the mobile robot  10 . Metadata associates one set of data with another set of data. The metadata may be embedded in the captured video data, stored externally in a separate file that is associated with the captured video data, otherwise associated with the captured video data, or all of the above. Externally stored metadata may also have advantages, such as ease of searching and indexing. The metadata may also be stored in a human-readable format, such that a user can access, understand, and edit the metadata without any special software. 
     Embodiments of the mobile robot  10  further comprise the location element  732 , such as a GPS receiver. The location element  732  determines and records the GPS location of the mobile robot  10  during the various actions, and may be utilized to assist the mobile robot  10  in moving to a certain geographic location. The location element  732  transmits information indicative of the location to the processing element. The location information may then be stored on the mobile robot  10  and/or be transmitted to the user device  702  via the communications element  736 . The location element  732  may also determine and record the time associated with the various actions. 
     The directional microphone  734  allows for the receipt and analysis of voice commands. In embodiments of the invention, the directional microphone  734  includes a set of microphones disposed around the perimeter of the head  14 . The strength or volume of the received voice command may be analyzed to determine a most likely direction to the user. For example, upon the reception of a voice command, the head  14  of the mobile robot  10  may turn to the perceived direction. This may indicate to the user that the mobile robot  10  heard and understood the command. This may also indicate to the user that the mobile robot  10  is ready for additional commands. Further, rotating the head  14  to the direction of the perceived voice command may allow the video camera  730  or other sensor to confirm the identity of the user (via facial recognition, user remote control  700  recognition, or the like). In embodiments of the invention, the set of microphones includes three microphones spaced approximately 150 degrees from one another around the perimeter of the head  14 . Based upon the strength of the voice as detected by each microphone, an approximated direction of origin may be calculated (such as within 45 degrees of the true user&#39;s direction). The head  14  may then turn to the approximated direction (as discussed below). The directional microphone  734  may also include a voice recognition microphone for detecting the content of the voice command. 
     The head communications element  736  is communicatively coupled with the user device  702 , the user remote control  700 , and a communications element  742  of the internal assembly  16 . The head communications element  736  is configured to send a condition indication to the internal communications element  742  based upon said detected condition by the sensor, as discussed above. In embodiments of the invention, the head communications element  736  will send sensor data, received commands, and other messages to the internal communications element  742 . The internal components (discussed below) will then determine and implement actions based upon the received information. In other embodiments of the invention, the head communications element  736  will send determined movement commands (as determined by the head processor  738 ) to the internal communications element  742 . In embodiments of the invention, the head communications element  736  is wirelessly communicatively coupled to the internal communications element  742 . In other embodiments, the head communications assembly transmits signals directly through the spheroid shell  12  to the internal communications element  742 . 
     For example, the head communications element  736  may transmit information indicative of the obstacle to the internal communications element  742  and the user device  702 . The mobile robot  10  then may take steps to avoid the obstacle while information indicative of the obstacle is displayed or otherwise alerted to the user. Either or both of the head communications element  736  or the internal communications element  742  is communicatively linked to the user device  702 , such that messages can be sent therebetween. In some embodiments, either or both of the head communications element  736  or the internal communications element  742  is also communicatively coupled, either directly or indirectly, with one or more other elements of the system. The mobile robot  10  may transmit information indicative of a status. The status could include information such as mobile robot  10  power on, action start time, action stop time, current action, action successful completion, error detected, error not detected, location of the mobile robot  10  (for mobile robots  10  equipped with a location element  732 ), known user information (based upon a proximity tag identifier, a connected mobile application, facial recognition, or the like), one or more identifiers (such as model number or serial number) associated with mobile robot  10 , etc. All or some of this information can be stored as metadata for the sensor data, or displayed in real time by one or more displays associated with the system (such as on the user device  702 ). 
     In embodiments of the invention, the internal assembly electronic control unit  706  may include the communications element  742 , a switch  744 , an input  746 , a processor  748 , a memory  750  (which may include a stabilization module  752 , a movement module  754 , an autonomous module  756 , and a command module  758 ), and a power source  760  (which may include power source illustrated in  FIG. 4 ). The internal assembly electronic control unit  706  determines commands for the various motors and components described above. Upon the receipt of a certain command or status, the internal assembly electronic control unit  706  may determine specific motor actions that will achieve a desired state and send commands or power to the motors to perform the desired actions. 
     The switch  744  may be utilized by the user to provide power to the mobile robot  10  (or more specifically, to the internal assembly  16  of the mobile robot  10 ). The switch  744  may be disposed on the fixed panel  134  as discussed above. The input  746  acquires user input directly on the mobile robot  10 . For example, the input  746  could include a communications port (which may be the same as or adjacent to the charging port  136  discussed above) for the receipt of electronic commands therein. The input  746  may additionally or alternatively include buttons, knobs, switches, etc. for the transfer of information by the user. The user input  746  could include a system check button, a start action button, a stop action button, a reset button, a display toggle button, etc. 
     The processor  748  performs various steps as instructed by a computer program stored on the memory  750 . The memory  750  is a non-transitory computer readable medium having at least one computer program stored thereon. In embodiments, of the invention, the computer program may include the stabilization module  752 , the movement module  754 , the autonomous module  756 , and the command module  758 . 
     The stabilization mode keeps the mobile robot  10  stable and level. Typically, the stabilization module  752  will be utilized in the background or simultaneously with other modules discussed below. The stabilization module  752  may determine, based upon the current conditions of the mobile robot  10 , a likelihood of tipping or other undesired state. This may be determined based upon a current attitude of the mobile robot  10  (based upon the readings of a set of gyroscopes, not illustrated), the current direction and speed of travel, any detected obstacle, a planned path or trajectory, current stresses and strains emplaced on various components of the internal assembly  16  (based upon the readings of a strain gauge, not illustrated), a strength of the magnetic attraction between the pivoting arm  32  and the head  14  (as detected by a magnetic sensor associated with the pivoting arm  32 , not illustrated), and other considerations. 
     The stabilization module  752  may also calculate the maximum safe movement parameters for the conditions. For example, the stabilization module  752  may determine that the mobile robot  10  may only turn at a certain rate given its current forward speed. The stabilization module  752  may then instruct the drive assembly  30  to slow the mobile robot  10  such that the turn can be achieved, and/or may reduce the severity of the turn. Similarly, if an obstacle is detected in the path of the moving mobile robot  10 , the stabilization module  752  may cease movement so as to prevent the mobile robot  10  from striking the obstacle. As yet another example, the stabilization module  752  may cease operations upon available power falling below a certain threshold, upon the motor stalling, upon the detection of an error, or the like. The stabilization module  752  is therefore a background function such that it monitors the actions of the mobile robot  10  to determine whether a potentially unsafe or unstable condition is being utilized or is likely. The stabilization module  752  may then send information indicative of the unsafe or unstable condition such that mitigating actions may be taken to prevent damage. 
     The movement module  754  determines the specific motors to operate and the degree and duration of the operation so as to achieve a desired movement. For example, upon the detection of a voice command (as discussed above), the movement module  754  may provide a command to the z-pivot device  148  to rotate the head  14  a certain angular range, so as to orient the head  14  toward the user. As another example, upon the user actuating the joystick input  708  of the user remote control  700  forward, the movement module  754  will instruct the drive motor  96  to turn in the forward direction for the duration that the signal indicative of the joystick input  708  is being received. 
     The autonomous module  756  performs various actions as determined by the processor  748 . In embodiments of the invention, the autonomous module  756  is enabled by a selection of an input  708 , 746  by the user. In the autonomous module  756 , the processor  748  determines appropriate actions and takes these actions without direct and explicit instructions from the user. Outside of autonomous mode, the mobile robot  10  may await explicit and clear instructions from the user (such as a manipulation of the joystick input  708 ) before performing tasks. 
     For example, in embodiments of the invention the autonomous mode may include a “follow me” mode. The user may begin the “follow me” mode by selecting an option in the user device  702 , or by pressing or selecting a switch input  708  on the user remote control  700 . In the “follow me” mode, the mobile robot  10  detects the IR signal from the user device  702  or user remote control  700 . The mobile robot  10  will then move generally toward the IR signal until a certain signal strength is achieved. The mobile robot  10  will then continue to move such that the desired signal strength is maintained. The desired signal strength is such that the mobile robot  10  is near enough to the user to follow the user, but not too close to the user so as to strike the user during movement. The autonomous mode determines the appropriate motor commands based upon the signal strength and direction as detected by the head  14  and communicated to the communications element  742  of the internal assembly  16 . 
     As another example, in embodiments of the invention, the autonomous mode may include an “explore” mode. Upon a selection of the explore mode, the mobile robot  10  will move around and explore the environment in the general area. The general area may be determined by the location element  732  (e.g., by roaming within a certain geographic range of the starting location). The mobile robot  10  may also interact with users, persons, and other objects within the general area. As yet another example, in embodiments of the invention, the autonomous mode may include a movement detection mode. The movement detection mode may be enabled by a voice command, such as “guard the room.” Upon a selection of the movement detection mode, the head will detect a movement in the proximity of the mobile robot  10 , such as via the obstacle sensors  728  or via the video camera  730 . In some embodiments, the movement is detected by a change in the reflected IR signals. The movement detection may include rotating the head  14  about the z-axis such that the obstacle sensors  728  and/or the video camera  730  obtain a perspective of the entire proximity of the mobile robot  10 . The movement detection may also include moving the mobile robot around the proximity. Upon a detection of movement, the mobile robot  10  may sound an alarm, send a message to the user device  702 , or perform other functions. 
     The command module  758  performs specific actions as directed by the user. The command module  758  is enacted to perform the specific action based upon a specific command or instruction (such as a voice command received by the directional microphone  734 ). For example, a “come here” mode may be enabled by a voice command. In the “come here” mode, the mobile robot  10  detects the location of the user (via IR distance and direction, voice recognition direction, facial recognition, or the like) and moves in proximity to that location. As another example, the user may instruct the mobile robot  10  to perform a certain animation or a random animation. The animation may be entertaining to the user (such as a song or dance), or provide a certain service for the user (for example, “see if there is a person around that corner”). Typically, upon completion of the specific action, the mobile robot  10  will return to the default mode or the autonomous mode. 
     The power sources  712 , 722 , 740 , 760  may include batteries and other sources of electrical power. The power source  712 , 722 , 740 , 760  may also include a power-generation component such as a solar panel. For example, embodiments of the invention may be utilized as a rover on a distant and hostile environment (such as a moon or planet). In these embodiments, the head  14  and/or the spheroid shell  12  may include a set of solar panels for the generation of electrical power. Solar panels may also be utilized for mobile robot  10   s  intended for military purposes, as readily available sources of electrical power may not be nearby in these applications. In other embodiments of the invention, the power source  712 , 722 , 740 , 760  may include an internal combustion engine, a hybrid internal combustion engine, or an electric motor. 
     Various methods of embodiments of the invention will now be discussed. A non-transitory computer readable storage medium having a computer program stored thereon may instruct the at least one processing element to implement the steps of at least one of the described methods. The non-transitory computer readable storage medium may be located within the head  14 , within the internal assembly  16 , within the user device  702 , within an auxiliary computing device, within at least one sensor, and/or within a generic computing device. 
     The computer program of embodiments of the invention comprises a plurality of code segments executable by a computing device for performing the steps of various methods of the invention. The steps of the method may be performed in the order discussed, or they may be performed in a different order, unless otherwise expressly stated. Furthermore, some steps may be performed concurrently as opposed to sequentially. Also, some steps may be optional. The computer program may also execute additional steps not described herein. The computer program, mobile robot  10 , and method of embodiments of the invention may be implemented in hardware, software, firmware, or combinations thereof, which broadly comprises server devices, computing devices, and a communications network. 
     The computer program of embodiments of the invention may be responsive to user input. As defined herein user input may be received from a variety of computing devices including but not limited to the following: desktops, laptops, calculators, telephones, smartphones, smart watches, in-car computers, camera systems, or tablets. The computing devices may receive user input from a variety of sources including but not limited to the following: keyboards, keypads, mice, trackpads, trackballs, pen-input devices, printers, scanners, facsimile, touchscreens, network transmissions, verbal/vocal commands, gestures, button presses or the like. 
     The server devices and computing devices may include any device, component, or equipment with a processing element and associated memory elements. The processing element may implement operating systems, and may be capable of executing the computer program, which is also generally known as instructions, commands, software code, executables, applications (“apps”), and the like. The processing element may include processors, microprocessors, microcontrollers, field programmable gate arrays, and the like, or combinations thereof. The memory elements may be capable of storing or retaining the computer program and may also store data, typically binary data, including text, databases, graphics, audio, video, combinations thereof, and the like. The memory elements may also be known as a “computer-readable storage medium” and may include random access memory (RAM), read only memory (ROM), flash drive memory, floppy disks, hard disk drives, optical storage media such as compact discs (CDs or CDROMs), digital video disc (DVD), and the like, or combinations thereof. In addition to these memory elements, the server devices may further include file stores comprising a plurality of hard disk drives, network attached storage, or a separate storage network. 
     The computing devices may specifically include mobile communication devices (including wireless devices), work stations, desktop computers, laptop computers, palmtop computers, tablet computers, portable digital assistants (PDA), smart phones, and the like, or combinations thereof. Various embodiments of the computing device may also include voice communication devices, such as cell phones and/or smart phones. In preferred embodiments, the computing device will have an electronic display operable to display visual graphics, images, text, etc. In certain embodiments, the computer program facilitates interaction and communication through a graphical user interface (GUI) that is displayed via the electronic display. The GUI enables the user to interact with the electronic display by touching or pointing at display areas to provide information to the mobile robot  10 . 
     The communications network may be wired or wireless and may include servers, routers, switches, wireless receivers and transmitters, and the like, as well as electrically conductive cables or optical cables. The communications network may also include local, metro, or wide area networks, as well as the Internet, or other cloud networks. Furthermore, the communications network may include cellular or mobile phone networks, as well as landline phone networks, public switched telephone networks, fiber optic networks, or the like. 
     The computer program may run on computing devices or, alternatively, may run on one or more server devices. In certain embodiments of the invention, the computer program may be embodied in a stand-alone computer program (i.e., an “app”) downloaded on a user&#39;s computing device or in a web-accessible program that is accessible by the user&#39;s computing device via the communications network. As used herein, the stand-along computer program or web-accessible program provides users with access to an electronic resource from which the users can interact with various embodiments of the invention. 
     Execution of the computer program of embodiments of the invention performs steps of the method of embodiments of the invention. Because multiple users may be updating information stored, displayed, and acted upon by the computer program, information displayed by the computer program is displayed in real-time. “Real-time” as defined herein is when the processing element of the mobile robot  10  performs the steps less than every 1 second, every 500 milliseconds, every 100 milliseconds, or every 16 milliseconds. 
     Turning to  FIG. 8 , an alternative embodiment of the invention is shown. Additionally or alternatively to the weight-shifting steer mechanism  28 , in embodiments of the invention, mobile robot  10  may include a flywheel assembly  202 . It should be noted that a similar flywheel assembly  202  is shown and described in more detail in U.S. patent application Ser. No. 15/235,554 that is incorporated by reference into the current application. The flywheel assembly  202  is rotatably secured to the base  26 . For example, the flywheel assembly  202  may be disposed between the weight-shifting steer mechanism  28  and the pivoting arm  32 . The flywheel assembly  202  is configured to rotate about the z-axis so as to cause a counter rotation of the base  26  and the spheroid shell  12  about the z-axis. As such, the mobile robot  10  can achieve both weight shift steering during movement and spinning while static. 
     In some embodiments of the invention, not illustrated, the weight-shifting steer mechanism  28  may perform at least a portion of the functions of the flywheel assembly  202 . For example, the ballast weight  46  may rotate so as to achieve the spinning described below. The weight-shifting steer mechanism  28  may therefore include the ballast motor  48  for moving the ballast weight  46  laterally and a flywheel motor (not illustrated, but may be similar to the flywheel motor described below) for spinning the ballast weight  46  in place. Due to space restrictions, the flywheel motor may be configured to only allow the ballast weight  46  to spin while the ballast weight  46  is in the default position. Further, due to space restrictions, the ballast weight  46  may not include the anterior protuberance  78  and the posterior protuberance  80 . 
     As best illustrated in  FIG. 8  and  FIG. 9 , the flywheel assembly  202  is rotatably secured to the base  26 . In embodiments of the invention, the flywheel assembly  202  is rotatably secured to a bottom side  44  of the base  26 , as illustrated, that is opposite a top side on which the pivoting arm  32  is disposed. The flywheel assembly  202  is configured to rotate about the z-axis so as to cause a counter rotation of the base  26  and the spheroid shell  12  about the z-axis. The flywheel assembly  202  also keeps the base  26  substantially vertically aligned with the z-axis by providing a downward force due to mass. 
     In embodiments of the invention, as best illustrated in  FIG. 4 , the flywheel assembly  202  comprises a flywheel  204 , a flywheel fastener  206 , and a flywheel motor  208 . The flywheel  204  is generally disk or wheel shaped. In some embodiments, the flywheel  204  includes an annular segment  210  and at least one spoke  212  extending from a central hub  214 . This configuration moves mass away from the central hub  214  while maintaining structural stability. As such, rotation of the flywheel  204  by the flywheel motor  208  is more efficient in rotating the mobile robot  10  about the z-axis. In other embodiments, the fly wheel includes a generally flattened disc (not illustrated) disposed around the central hub  214 . 
     The central hub  214  of the flywheel  204  presents an opening  216  for receipt of the flywheel fastener  206  and/or the flywheel motor  208  therethrough. The flywheel fastener  206  secures the flywheel  204  to the flywheel motor  208 . The flywheel fastener  206  may include a threaded segment  218  and an opening  220  for receiving a flywheel shaft  222  therein. The flywheel  204  may permanently secure the flywheel  204  to the flywheel motor  208  so as to transfer a rotation of the flywheel shaft  222  to a rotation of the flywheel  204 . 
     The flywheel motor  208  includes the flywheel shaft  222  (which may include a pinion gear, not shown) and a power source  224 . The flywheel shaft  222  rotates via the flywheel motor  208 . The flywheel motor  208  rotates the flywheel shaft  222  (and by extension, the flywheel  204  and the mobile robot  10 ) in response to an instruction from a processor, as discussed below. The flywheel motor  208 , as powered by the power source  224 , spins the flywheel  204  a certain number of angular rotations (or fraction thereof) to achieve a desired orientation or rotation of the mobile robot  10 . The flywheel motor  208  is also configured to rotate in either direction about the z-axis. 
     In embodiments of the invention, the flywheel  204  is formed of a dense metal or other dense material. The flywheel  204  is dense and heavy for any of at least three purposes. First, the dense flywheel  204  tends to keep the mobile robot  10  generally upright along the z-axis. This may be advantageous because it tends to keep the head  14  (being opposite the flywheel  204 ) away from the ground where it may become dislodged from the pivoting arm  32 . Second, the heavy flywheel  204  may help to ensure that the mobile robot  10  travels forward in the x-axis direction upon the drive assembly  30  rotating. If the internal assembly  16  was substantially uniformly weighted about the y-axis, the spinning motion of the drive assembly  30  (as discussed below) would tend to rotate the internal assembly  16  within the spheroid shell  12  instead of propelling the spheroid shell  12  forward (or backward) in the x-axis direction. The third potential reason for the dense and heavy flywheel  204  (as opposed to simply a dense and heavy lower region of the base  26 ) is to assist in rotation about the z-axis. A dense and heavy flywheel  204  will impart a greater moment on the mobile robot  10  by rotating therein. In some embodiments, the flywheel  204  may be at least 25% of the total mass of the mobile robot  10 , at least 210% of the total mass of the mobile robot  10 , or at least 75% of the total mass of the mobile robot  10 . 
     Although the invention has been described with reference to the embodiments illustrated in the attached drawing figures, it is noted that equivalents may be employed and substitutions made herein without departing from the scope of the invention as recited in the claims.