Ballbot
![](/w/images/thumb/5/5b/Ballbot_CMU_2008.jpg/300px-Ballbot_CMU_2008.jpg)
A ballbot is a dynamically-stable mobile robot designed to balance on a single spherical wheel (i.e., a ball). Through its single contact point with the ground, a ballbot is omnidirectional and thus exceptionally agile, maneuverable and organic in motion compared to other ground vehicles. Its dynamic stability enables improved navigability in narrow, crowded and dynamic environments. The ballbot works on the same principle as that of an inverted pendulum.
Contents
Ballbots Around The World
The first successful ballbot was developed in 2005 [1] [2] [3] by Prof. Ralph Hollis at Carnegie Mellon University (CMU), Pittsburgh, USA and it was patented in 2010 .[4] The CMU Ballbot[3] [5] [6] [7] is built to be of human size, both in height and foot print. Prof. Hollis and his group at CMU demonstrated that the ballbot can be robust to disturbances including kicks and shoves, and can also handle collisions with furniture and walls [8] [9] .[10] They showed that a variety of interesting human-robot physical interaction behaviors can be developed with the ballbot [11] ,[12] and presented planning and control algorithms to achieve fast, dynamic and graceful motions using the ballbot [13] [14] .[15] They also demonstrated the ballbot's capability to autonomously navigate human environments to achieve point-point and surveillance tasks [16] [17] .[18] A pair of two degrees of freedom (DOF) arms was added to the CMU Ballbot[3] in 2011 making it the first and currently, the only ballbot in the world with arms [19] [20] .[21]
In 2005, around the same time when CMU Ballbot[3] was introduced, a group of researchers at University of Tokyo independently presented the design for a human-ridable ballbot wheelchair that balances on a basketball named B. B. Rider .[22] However, they reported only the design and never presented any experimental results.[22] Around the same time, László Havasi from Hungary independently introduced another ballbot called ERROSphere .[23] The robot did not reliably balance and no further work was presented.
Since the introduction of CMU Ballbot[3] in 2005, several other groups around the world have developed ballbots. Prof. Masaaki Kumagai developed BallIP in 2008[24] at Tohoku Gakuin University, Japan. Prof. Kumagai and his group demonstrated the capability of ballbots to carry loads and be used for cooperative transportation.[25] They developed a number of small ballbots and demonstrated cooperative transportation using them [25] .[26] A group of mechanical engineering students at ETH Zurich, Switzerland developed Rezero in 2010.[27] Rezero re-emphasized the fast and graceful motions that can be achieved using ballbots .[28]
Tomás Arribas (Spain) developed the first ballbot using LEGO Mindstorms NXT in 2008 as the Master Project at University of Alcala.[29][30] He developed a simulation project with Microsoft Excel to easily simulate the system.[31] As part of the research carried out inside the Space Research Group of the University of Alcalá (SRG-UAH), Spain, the work team, specialised in optimal control and planning applied to non-linear dynamic systems, published in 2012 the article called "A Monoball Robot Based on LEGO Mindstorms"[32] This article describes the math model and trajectory control as a baseline to unstable and non-linear control systems.
Yorihisa Yamamoto (Japan) inspired by Tomás Arribas's project, developed a ballbot using LEGO Mindstorms NXT in 2009 [33] .[34] He created a detailed demo to build, model and create controllers using MATLAB.[33] A group of mechanical engineering students at University of Adelaide (Australia) developed both a LEGO Ballbot and a full-scale Ballbot in 2009 .[35] A group of students from ITMO University (Russia) introduced an algorithm and constructed a Ballbot based on LegoNXT robotics kit which performed stability with only two actuators used.[36] There are a number videos on YouTube that present several ballbots developed around the world. Several of them have been developed using LEGO Mindstorms NXT [37] [38] [39] [40] .[41] While several other custom designs use omni-wheels to actuate the ball [42] [43] [44] .[45]
Ballbots have also appeared in the Science Fiction World. Pixar's Wall-E (2008) movie featured M-O (Microbe Obliterator), a ballbot cleaning robot. Syfy's Caprica TV series (2010) featured Serge,[46] a ballbot butler robot.
Motivation and Ballbot Characteristics
Historically, mobile robots have been designed to be statically stable, which results in the robot not needing to expend energy while standing still. This is typically achieved through the use of three or more wheels on a base. In order to avoid tipping, these statically-stable mobile robots have a wide base for a large polygon of support, and a lot of dead weight in the base to lower the center of gravity. They also tend to have low acceleration or deceleration to avoid tipping. The wide base makes it difficult for statically-stable mobile robots to navigate cluttered human environments. Moreover, these robots have several other limitations that make them poorly suited to a constantly changing human environment. They can neither roll in any direction, nor can they turn in place.[3]
The desire to build tall and narrow mobile robots that do not tip over led to development of balancing mobile robots like the ballbot. A ballbot generally has a body that balances on top of a single spherical wheel (ball). It forms an underactuated system, i.e., there are more degrees of freedom (DOF) than there are independent control inputs. The ball is directly controlled using actuators, whereas the body has no direct control. The body is kept upright about its unstable equilibrium point by controlling the ball, much like the control of an inverted pendulum.[3] This leads to limited but perpetual position displacements of the ballbot. The counter-intuitive aspect of the ballbot motion is that in order to move forward, the body has to lean forward and in order to lean forward, the ball must roll backwards. All these characteristics make planning to achieve desired motions for the ballbot a challenging task. In order to achieve a forward straight line motion, the ballbot has to lean forward to accelerate and lean backward to decelerate.[9][13][19][27] Further, the ballbot has to lean into curves in order to compensate for centripetal forces, which results in elegant and graceful motions.[13][17][19][27]
Unlike two-wheeled balancing mobile robots like Segway that balance in one direction but cannot move in the lateral direction, the ballbot is omni-directional and hence, can roll in any direction. It has no minimal turning radius and does not have to yaw in order to change direction.
System Description
Major Design Parameters
The most fundamental design parameters of a ballbot are its height, mass, its center of gravity and the maximum torque its actuators can provide. The choice of those parameters determine the robot's moment of inertia, the maximum pitch angle and thus its dynamic and acceleration performance and agility. The maximum velocity is a function of actuator power and its characteristics. Beside the maximum torque, the pitch angle is additionally upper bounded by the maximum force which can be transmitted from the actuators to the ground. Therefore friction coefficients of all parts involved in force transmission also play a major role in system design. Also, close attention has to be paid to the ratio of the moment of inertia of the robot body and its ball in order to prevent undesired ball spin, especially while yawing.[27]
Ball and Actuation
The ball is the core element of a ballbot, it has to transmit and bear all arising forces and withstand mechanical wear caused by rough contact surfaces. A high friction coefficient of its surface and a low inertia are essential. The CMU Ballbot[3] and Rezero[27]) used a hollow metal sphere with poly-urethane coating. B.B. Rider[22] used a basketball, while BallIP[24] and Adelaide Ballbot[35] used bowling balls coated with a thin layer of rubber.
In order to solve the rather complex problem of actuating a sphere, a variety of different actuation mechanisms have been introduced. The CMU Ballbot[3] used an inverse mouse-ball drive mechanism. Unlike the traditional mouse ball that drives the mouse rollers to provide computer input, the inverse mouse-ball drive uses rollers to drive the ball producing motion. The inverse mouse-ball drive uses four rollers to drive the ball and each roller is actuated by an independent electric motor. In order to achieve yaw motion, the CMU Ballbot uses a bearing, slip-ring assembly and a separate motor to spin the body on top of the ball.[9] The LEGO Ballbot[33] also used an inverse mouse-ball drive, but used normal wheels to drive the ball instead of rollers.
Unlike CMU Ballbot,[9] BallIP[24] and Rezero[27] use omni-wheels to drive the ball. This drive mechanism does not require a separate yaw drive mechanism and allows direct control of the yaw rotation of the ball. Unlike CMU Ballbot[9] that uses four motors for driving the ball and one motor for yaw rotation, BallIP[24] and Rezero[27] use only three motors for both the operations. Moreover, they only have three force transmission points compared to four points on CMU Ballbot. Since the contact between an omni-wheel and the ball should be reduced to a single point, most available omni-wheels are not properly suitable for this task because of the gaps between the individual smaller wheels that result in unsteady rolling motion. Therefore, the BallIP[24] project introduced a more complex omni-wheel with a continuous circumferential contact line. The Rezero[27] team equipped this omni-wheel design with roller bearings and a high-friction coating.[27] They also additionally fitted a mechanical ball arrester that presses the ball against the actuators in order to further increase friction forces and a suspension to dampen vibrations.[27] The Adelaide Ballbot[35] uses wheels for its LEGO version and traditional omni-wheels for its full-scale version.
Prof. Masaaki Kumagai, who developed BallIP[24] introduced another ball drive mechanism that uses partially sliding rollers [47] .[48] The objective of this design was to develop 3-DOF actuation on the ball using a low cost mechanism.
Sensors
In order to actively control the position and body orientation of a ballbot by a sensor-computer-actuator framework, beside a suitable microprocessor or some sort of other computing unit to run the necessary control loops, a ballbot fundamentally requires a series of sensors which allow to measure the orientation of the ball and the ballbot body as a function of time. To keep track of the motions of the ball, rotary encoders (CMU Ballbot,[3] BallIP,[24] Rezero[27]) are usually used. Measuring the body orientation is more complicated and is often done by the use of gyroscopes (NXT Ballbots[33][35]) or, more generally, an Inertial Measurement Unit (CMU Ballbot,[3] BallIP,[24] Rezero[27]).
The CMU Ballbot[3] uses a Hokuyo URG-04LX Laser Range Finder to localize itself in a 2D map of the environment.[17][18] It also uses the laser range finder for detecting obstacles and avoiding them.[17][18]
Arms
The CMU Ballbot[3] is the first and currently, the only ballbot to have arms.[19][20][21] It has a pair of 2-DOF arms that are driven by series-elastic actuators. The arms are hollow aluminium tubes with a provision to add dummy weights at their ends. In their present state, the arms cannot be used for any significant manipulation, but are used to study their effects on the dynamics of ballbot.[19][20][21]
System Modeling, Planning and Control
The mathematical MIMO-model which is needed in order to simulate a ballbot and to design a sufficient controller which stabilizes the system, is very similar to an inverted pendulum on a cart. The LEGO NXT Ballbot,[33] Adelaide Ballbot[35] and Rezero[27] include actuator models in their robot models, whereas CMU Ballbot[3] neglects the actuator models and models the Ballbot as a body on top of a ball. Initially, CMU Ballbot[3] used two 2D planar models in perpendicular planes to model the ballbot[8][9] and at present, uses 3D models without yaw motion for both the ballbot without arms[13][16][17] and the ballbot with arms.[19] BallIP[24] uses a model that describes the dependence of the ball position on the wheel velocities and the body motion. Rezero[27] uses a full 3D model that includes yaw motion too.
The ballbots (CMU Ballbot,[3] BallIP,[24] NXT Ballbot,[33] Adelaide Ballbot,[35] Rezero[27]) use linear feedback control approaches to maintain balance and achieve motion. The CMU Ballbot[3] uses an inner balancing control loop that maintains the body at desired body angles and an outer loop controller that achieves desired ball motions by commanding body angles to the balancing controller.[8][9][13][16][17][19] The CMU Ballbot plans motions in the space of body lean angles in order to achieve fast, dynamic and graceful ball motions.[13][16][17][19] With the introduction of arms, CMU Ballbot uses its planning procedure to plan in the space of both body lean angles and arm angles to achieve desired ball motions.[17][19][20] Moreover, it can also account for cases where the arms are constrained to certain specific motions and only body angles have to be used to achieve desired ball motions.[21] The CMU Ballbot uses an integrated planning and control framework to autonomously navigate human environments.[17][18] Its motion planner plans in the space of controllers to produce graceful navigation, and achieves point-point and surveillance tasks. It uses the laser range finder to actively detect and avoid both static and dynamic obstacles in its environment.[17][18]
Safety Features
The biggest concern with a ballbot is its safety in case of a system failure. There have been several attempts in addressing this concern. The CMU Ballbot[3] introduced three retractable landing legs that allow the robot to remain standing (statically-stable) after being powered down. It is also capable of automatically transitioning from this statically-stable state to the dynamically-stable, balancing state and vice versa.[8][10] Rezero featured a roll-over safety mechanism in order to prevent serious damage in case of a system failure.[27]
Possible Applications
Due to its dynamic stability, a ballbot can be tall and narrow, and also be physically interactive making it an ideal candidate for personal mobile robots.[3] It can act as an effective service robot at homes and offices. The present day ballbots[3][24][27] are restricted to smooth surfaces, though a rugged surface version would open up more applications. The concept of ballbot has attracted a lot of media attention[5][6][7][26][28] and several ballbot characters have appeared in Hollywood movies [49] .[46] Hence, the ballbot will have a variety of applications in the entertainment industry including toys.
Ballbot Projects
- The Ballbot Research Platform at Carnegie Mellon University (CMU)
- BallIP at Tohoku Gakuin University
- Rezero at ETH Zurich
- Ballbot at University of Adelaide
- LEGO NXT Ballbot
- Paul a depressed Ballbot
References
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 3.00 3.01 3.02 3.03 3.04 3.05 3.06 3.07 3.08 3.09 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 5.0 5.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 6.0 6.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 7.0 7.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 8.0 8.1 8.2 8.3 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 9.0 9.1 9.2 9.3 9.4 9.5 9.6 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 10.0 10.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 13.0 13.1 13.2 13.3 13.4 13.5 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 16.0 16.1 16.2 16.3 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 17.0 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 19.0 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 20.0 20.1 20.2 20.3 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 21.0 21.1 21.2 21.3 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 22.0 22.1 22.2 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 24.00 24.01 24.02 24.03 24.04 24.05 24.06 24.07 24.08 24.09 24.10 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 25.0 25.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 26.0 26.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 27.00 27.01 27.02 27.03 27.04 27.05 27.06 27.07 27.08 27.09 27.10 27.11 27.12 27.13 27.14 27.15 27.16 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 28.0 28.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Tomás Arribas (August 2008). http://www.youtube.com/watch?v=FZ5K0tZ2ZOk
- ↑ https://www.youtube.com/watch?v=5Eau8y-yhPc
- ↑ http://ballbotexcel.blogspot.com.es/2011/01/nxt-ballbot-simulation-with-microsoft.html
- ↑ ( S. Sánchez, T. Arribas, M. Gómez and O. Polo, “A Monoball Robot Based on LEGO Mindstorms,” IEEE Control Systems Magazine, vol. 32, no. 2, pp. 71-83, 2012.)
- ↑ 33.0 33.1 33.2 33.3 33.4 33.5 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 35.0 35.1 35.2 35.3 35.4 35.5 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ http://www.youtube.com/watch?v=gKMl8G44U4E
- ↑ http://www.youtube.com/watch?v=F7k9p1sOfEE&NR=1
- ↑ http://www.youtube.com/watch?v=-r3xxI4yQ9A
- ↑ http://www.youtube.com/watch?v=OAc1ipVpn3k
- ↑ http://www.youtube.com/watch?v=L-J7zymXuxI
- ↑ http://www.youtube.com/watch?v=a94z9p3vU-c
- ↑ http://www.youtube.com/watch?v=7Ib3l9KYbBM
- ↑ http://www.youtube.com/watch?v=uSKhixP-d-Y
- ↑ http://www.youtube.com/watch?v=J0PnIyyydPE
- ↑ 46.0 46.1 http://en.battlestarwiki.org/wiki/Serge
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ WALL-E
![]() |
Wikimedia Commons has media related to Ballbot. |