Abstract

A spherical wheel robot or Ballbot—a robot that balances on an actuated spherical ball—is a new and recent type of robot in the popular area of mobile robotics. This paper focuses on the modeling and control of such a robot. We apply the Lagrangian method to derive the governing dynamic equations of the system. We also describe a novel Fuzzy Sliding Mode Controller (FSMC) implemented to control a spherical wheel mobile robot. The nonlinear nature of the equations makes the controller nontrivial. We compare the performance of four different fuzzy controllers: (a) regulation with one signal, (b) regulation and position control with one signal, (c) regulation and position control with two signals, and (d) FSMC for regulation and position control with two signals. The system is evaluated in a realistic simulation and the robot parameters are chosen based on a LEGO platform, so the designed controllers have the ability to be implemented on real hardware.

1. Introduction

Mobile robot stability, positioning control, and navigation are essential issues in robotics and artificial intelligence. Real-time stability control and navigation are easy tasks for human beings but very difficult for robots, especially in unknown and unstructured environments. Research in those areas has employed various wheeled (e.g., differential steering, car-like, and omniwheel) [1, 2] and legged (e.g., hexapods, four-legged, and humanoid) robots [36].

The spherical wheel robot (Ballbot) is an interesting and novel mobile robot design first introduced by Hollis [7]. A Ballbot is a dynamically stable mobile robot moving on a single spherical wheel [810]. The robot sits on top of a rubber ball. The robot can control the motion of the ball below it via two or more motors. This kind of the robot is statically unstable and needs to continuously control its position.

The Ballbot has been investigated by many researchers in the past, due to its high maneuverability, ability to have a high ratio of height to width, and many other unique and desirable characteristics [11]. Figure 1 show various generations of spherical wheel robots, which have been developed in recent years and different research centers and universities.

Robots designed to be operated in human environments should be tall. For example, this will allow an average person to look the robot in the eye/camera rather than being forced to constantly look down on the robot [7, 12]. In contrast to humanoid robots, these robots stand on only one foot [13]. Similarly, the Segway RMP two-wheeled self-balancing mobile robot has become popular in recent years [14]. Researchers introduced some capable two-wheeled mobile manipulators recently [15]. The Ballbot is more suitable for navigation in human environments because of its omnidirectional drive capabilities [16, 17]. Moreover, unlike its two-wheeled counterparts, the Ballbot is as tall as an adult human, which enhances its ability to interact with human environments [18].

Recently, other researchers have developed similar robots [19, 20]. Since the Ballbot is unstable, it requires active positioning control [21, 22]. Otherwise the robot will simply fall over. The controller which was used in the CMU robot has two loops, one proportional-integral (PI) loop which adjusts the angular velocity of the ball and one external linear quadratic regulator (LQR) loop which creates a full-state feedback for the system [9]. The second Ballbot has been designed and introduced by the University of Tohoku Gakuin in Japan [23]. In this robot three stepper motors placed at an angle of 120 degrees, relative to each other, have been used. Usage of these motors increases the accuracy of the system and also removes the need for shaft encoders. Due to the direct connection of the motor’s shaft and the wheel and having no belt in the transmission mechanism, there is much less backlash than in the robot from CMU. A simple PD controller has been sufficient to balance the robot [24]. Fong et al. designed and implemented a Ballbot at the University of Adelaide, Australia [24]. The researchers in that project tried to derive the equations of motion and design and manufacture the robot by using LEGO pieces and blocks. They improved the controller to have better stability and were able to control the robot via remote control. They designed and manufactured a human being sized robot and also developed a virtual model for the single-leg robot [24]. By equipping the robot with two sets of accelerometers and gyroscopes, they could accurately measure the robot deflection angle and angular velocity. The system was implemented using the NXT Mindstorms system, a robotic education system developed by the LEGO Company [25]. In this research, the robot behavior is considered in the linear range only and no solution or suggestion has been made to control the robot’s motion in the nonlinear range.

The fourth Ballbot robot was designed by ETH University. The researchers use a linear controller with low pass filters and Kalman controllers which adds robustness against noise and allows the system to better deal with disturbances. The critical characteristics of some Ballbot designs are summarized in Table 1.

In 2014, Nagarajan et al. designed new hardware of the Ballbot with a four-wheel inverse mouse-ball drive to actuate the ball and a yaw drive mechanism that enables unlimited rotation about its vertical axis [26]. For having the static stability the robot was equipped with a triad of legs.

Also, several experiments were conducted to demonstrate the robot’s balancing and locomotion capabilities. They also proposed a novel trajectory planning algorithm that plans for body lean motions that presented the desired rest-to-rest motions of the robot. Chu and Sung suggested an omnidirectional mobile robot for educational robot platform [27]. To remove the nonholonomic characteristic of conventional wheels they used omnidirectional wheels. They could make control system design much easier by proposing the aforementioned system.

In [28], coordinate-invariant equations of motion for the Ballbot has been proposed. Using the linearized equations of motion and excluding the rotary degree of freedom of the ball in the inertial vertical direction, authors provided a proportional-derivative type controller that locally exponentially stabilizes the upward equilibrium point as well as the translation of the ball.

This work extends the previous research in two aspects:(i)Development of a three-dimensional model of the dynamics of the robot.(ii)Design of a three-dimensional controller for this model using gain scheduling.

We derive the governing dynamic equations of the system using the Lagrange method [29, 30]. The nonlinear nature of the equations of motions of a spherical wheel mobile robot makes control nontrivial. The performance comparison of four different fuzzy logic controllers [3133] has been evaluated in this research: (a) stability controller with one control, (b) stability and position controller with one control, (c) stability and position control with two controls, and (d) Fuzzy Sliding Mode Controller for stability and control with two controls. The systems will be evaluated in a realistic simulation and since the robot parameters used are based on a set of LEGO block and pieces, the designed controllers can be implemented on real experimental robots. By comparison of the results of our evaluation, the best controller for maintaining the robot’s balance and position can be selected.

The paper is organized as follows. Section 2 presents the dynamics of the Ballbot robot. Section 3 describes the design of fuzzy controllers. In Section 4, we present the results of our evaluation and their discussion and finally, in Section 5, we conclude with some remarks for future work.

2. Dynamics of the Single-Leg Robot

We use the Lagrange method to derive the equations of motion for the robot [34]. The movement of the robot is controlled by two motors. We assume that there is no or negligible slip between the wheels and the rolling ball. The analysis also includes a component for the friction between the ball and the ground. The robot’s dynamic equations will be independent if only the rotational friction between the ball and the ground is ignored. The generalized coordinates, which we used to study the dynamics of the robot, are shown in Figure 2.

is the robot’s absolute body angle with the vertical axis and is the absolute rotation angle of the motor. Equation (1) shows the equation of motion for robot in the - plane. For the - plane, the equation of motion is similar with being replaced by .In (1), is the mass matrix, is Coriolis matrix, is gravity matrix, is friction matrix, is force matrix, and is a generalized coordinate’s vector. Each of the parameters in (1) is given in the Appendix.

3. Designing Fuzzy Controller

In this paper, we described the design and implementation of four different fuzzy controllers. Stability analysis for the first three controllers cannot be established and they are not the main contribution of this paper. The main contribution of this paper is designing of the Fuzzy Sliding Mode Controller (FSMC) for the robot.(i)A fuzzy controller to maintain the stability of the robot (regulation) body regardless of the robot position (tracking) with one control signal.(ii)A fuzzy controller to maintain stability (regulation) and also control the robot position (tracking) with two control signals.(iii)A fuzzy controller with two control signals to control the robot position (tracking) and also maintain the stability (regulation) of the single-leg robot.(iv)A sliding mode controller with the use of fuzzy methods to maintain stability (regulation) and also control the robot position (tracking).

Due to robot’s sensors and actuators, each of these controllers can be used.

3.1. Designing Fuzzy Controller to Maintain Stability with One Control Signal

The controller inputs in this case are the robot’s angular position and velocity error. The fuzzy sets that are considered for angular position error, angular velocity error, and output torque are shown in Figures 35, respectively. The controller output is the motor torque that acts on angle . Around the zero angular velocity, speed variations are large and the system is very sensitive. Therefore, the middle set in Figure 4 is chosen to be very narrow. For output torque, Gaussian membership functions are used, so the output signal is smooth.

Single fuzzifier (SF), Minimum Inference Engine (MIE), and Center Average Defuzzifier (CAD) have been applied in the controller. The procedure of the controller is shown in Figure 6. The fuzzy rules for the first controller are presented in Table 2. The stability procedure cannot be established for this controller. If fuzzy sets and rules are chosen correctly, the controller performance is good enough.

3.2. Designing Fuzzy Controller for Position Control with One Control Signal

The previous fuzzy controller is suitable for maintaining the robot regulation; but the robot’s position will drift over the time because of the permanent small error in the body angle. To solve this problem, we extend the previous controller by using the angular position error and angular velocity error for the controller. Thus, the fuzzy controller will have four inputs. If each input uses five fuzzy sets, a maximum of laws is necessary. Handling of these many laws will increase the probability of mistakes and it is time-consuming. For solving of this problem, the system is decoupled into two fuzzy controllers. The first controller generates a reference angle. This reference angle is used as input for the second controller. The second controller balances the robot around the reference angle. Balancing around a nonzero reference angle produces movement toward the inclination angle of the robot and thusly allows us to control the position of the robot, so the robot position is controlled. The rules for controlling the robot angle are similar to the rules of Section 3.1 and rules for the position controller are consistent with the logic that is applied in Section 3.1—only the ranges of the fuzzy sets are different. The stability procedure cannot be established for this controller too and it is not the contribution of this paper.

3.3. Designing Two Fuzzy Controllers with Two Control Signals

In this section, two control signals are considered for the fuzzy controller. It is assumed that the robot has four actuators: two actuators for and in - plane and two others in the - plane. In each of the planes the system has two actuators; the first motor controls the angular position of the spherical wheel and the second one controls the body balancing. Regulation and position control of the robot can be done very well with this method; but this method needs two extra actuators. The extra actuators are attached directly to the body. These actuators must be able to generate enough torque to rotate the body. Fuzzy sets for this controller are shown in Figure 7. The stability analysis cannot be done for this type of a controller and it is not the concern of this paper.

3.4. Designing Fuzzy Sliding Mode Controller (FSMC)

In this section, the controller is designed based on the sliding mode method and then it is combined with the fuzzy procedure. At first the dynamic equations of the system are written like where , , , and are some dynamical and geometrical unknowns that should be defined. In (2), the states are introduced asIn (2), the other unknowns are introduced as

Parameters in (4) are presented in Table 4. In (4), it can be seen that

Sliding surfaces are defined as given in

The main goal of the controller is and . In this case, all the states will lead to zero. By differentiation of (6), (7) can be achieved. Consider

Assume the positive definite Lyapunov function as . Differentiation of the Lyapunov function with respect to the time is established as (8). Both of the terms in (8) should be negative to maintain the robot stability and convergence of the sliding surfaces:

For stability requirements, some conditions should be established and only one of them will be discussed here, but in Table 3 all the conditions have been represented.

To achieve the requirements of (9), the input is considered as (10).

If the three fuzzy sets (positive (P), zero (Z), and negative (N)) are considered for the sliding levels, the fuzzy control rules for the system are shown in Table 3.

In Table 3, , are positive. Using fuzzy logic will lead to better performance and smooth switching between the rules that are written in Table 3. According to these rules, and the stability is guaranteed.

4. Results and Discussion

The results of the different controllers are considered in this section.

4.1. Fuzzy Controller to Maintain Stability with One Control Signal

In this section, the results of first fuzzy controller are presented. Using this controller, only the robot’s body stability is maintained and there is no control applied over the position of the robot; therefore, in the steady state time, the robot does not come to equilibrium because of the small angular position error. The results are shown in Figure 8. According to Figure 8(a), very small angle error remains (0.003 degrees). This error will produce constant velocity for robot stability (Figure 8(b)). According to Figure 8(b), the angular velocity of robot body will become zero.

4.2. Fuzzy Controller for Position Control with One Control Signal

As can be seen, the position of the robot will not be stable given the pervious controller. To resolve this problem, two controllers are designed. The results of this controller are shown in Figure 9. In this simulation, the initial robot body position and angular velocity are set to 5 degrees and zero, respectively. The objective is robot movement 1 m in direction (Figure 3). Existing oscillations in Figure 9(c) can be improved by tuning the fuzzy rules or fuzzy sets. According to Figure 9(c), the robot is able to control its position in contrast to the pervious controller.

4.3. Two Fuzzy Controllers with Two Control Signals

Two parallel controllers can have a better performance. In the simulation of this part, initial robot body position and angular velocity are 5 degrees and zero, respectively. The objective is robot movement 0.3 m in direction. According to Figures 10(a) to 10(b), angle error and angular velocity error have been zero. Robot after about 2 seconds reached the desired position. Using two controllers instead of one increases costs. On the other hand this method may be impractical. Since two inputs are used in this section, better control can be exerted over the robot. Comparison with Figures 10(a) to 10(c) will show this issue.

4.4. Fuzzy Sliding Mode Controller

In Figure 11, first and second states’ responses (angular body position of the robot and its angular velocity) are represented. In Figure 11(c) the control signal is illustrated. Changes in angle and angular velocity are so smooth. Using fuzzy rules for sliding mode controller will eliminate chattering phenomenon and the controller will have a very smooth operation. This signal unlike previous control signals has smooth changes. In the simulation of this part, initial robot body position and angular velocity are 15 degrees and zero, respectively.

5. Conclusion

In this research, Fuzzy Control Synthesis of Dynamically Stable Single Spherical Wheel Mobile Robot has been considered. By applying the Lagrange method, one can derive the system governing dynamic equations. Also the paper presents novel fuzzy systems used to control a Ballbot. We designed and implemented four different fuzzy logic controllers: (a) regulation with one signal, (b) regulation and position control with one signal, (c) regulation and position control with two signals, and (d) FSMC for regulation and position control with two signals. We evaluated and compared the performances of the various fuzzy logic controllers.

These comparisons between the four fuzzy controllers are presented in Figures 12 and 13. This comparison is just for stabilization of robot body. If dynamics of the trajectory are smooth, the proposed method can perform well in trajectory tracking, but, for high speed dynamic trajectories, the method is not efficient. As can be seen, the Fuzzy Sliding Mode Controller has better performance. Initial condition for each of them is equal. The fuzzy controller for position control with one control signal also converges to zero in the long run.

It is for this reason that the first controller makes reference angle and then second controller stabilizes robot body about it. However the second controller has no steady state error. But the first controller has a small steady state error. An important issue is the type of control signal. Type of control signal is torque and torque is related to DC motor current. This signal is generated by the DC motor. Equation (11) represents this torque in the terms of DC motor parameters. Consider

In (11), is motor voltage, is constant for motor torque, is BEMF motor constant, is electrical resistance of motor, is angular velocity of the motor, and is generated torque of motor.

Appendix

In the appendix, one can find the parameters, used in (1). Each of the parameters in (1) is also used in

Parameters in (A.1) up to (A.6) have been derived from a LEGO from the main reference [15] and are displayed in table (A.1).

Ethical Approval

This article does not contain any studies with human or animal subjects.

Competing Interests

The authors of this research declare that they have no conflict of interests.

Acknowledgments

The authors would like to thank the Bio-Inspired System Design Laboratory (BInSDeLa) of Amirkabir University of Technology (Tehran Polytechnic), Tehran, Iran, and also Autonomous Agents Laboratory, University of Manitoba, Winnipeg, Canada. This research has been done in collaboration of both universities under the corporation protocol, started since 2014.