Abstract
As regards omnidirectional driving, conventional one- and two-pendulum spherical robots have a limited capability due to a limited pendulum motion range. In particular, such robots cannot move from a stationary state in a parallel direction to the center horizontal axis to which the pendulums are attached. Thus, to overcome the limited driving capability of one- and two-pendulum driven spherical robots, a passive version of a spherical robot, called KisBot II, was developed with a curved two-pendulum driving mechanism operated by a joystick. However, this paper presents an active upgraded version of KisBot II that includes a DSP-based control system and Task-based software architecture for driving control and data communication, respectively. A dynamic model for two-pendulum driving is derived using the Lagrange equation method, and a feedback controller for linear driving using two pendulums is then constructed based on the dynamic model. Experiments with several motions verify the driving efficiency of the proposed novel spherical robot.
1. Introduction
Most mobile robots, including those used for military, social safety, and service applications, use wheels or legs for locomotion. Yet wheeled and legged robots have several disadvantages in locomotion. Wheeled robots can be unstable and roll over; similarly legged robots can fall over in certain terrains, making the robots immobile. Furthermore, protecting the electronic components from the external environment can be difficult with such mobile robots.
Thus, to overcome the structural weaknesses of conventional mobile robots, various studies have investigated the feasibility of spherical robots. When compared with wheeled and legged robots, spherical robots have several advantages, including no chance of rolling over due to their symmetrical structure, the capacity of omnidirectional driving, no problem with obstacles, inner component protection from the external environment, such as liquid, dust, and gas, and a high energy efficiency due to single contact point with the ground [1].
However, in terms of obstacle avoidance, slope climbing, balance control, and driving control, wheeled and legged robots are currently still superior to spherical robots. This is because a spherical robot is a nonholonomic system. However, spherical robots are still in the initial stage of development, and research on their mechanical structure and driving mechanism is receiving serious attention due to the various advantages mentioned above. In terms of locomotion, the driving mechanism is the most key factor, and there are currently five main types of driving mechanism for spherical robots according to the driving system structure. The first is the single-wheel type, where Halme et al. introduced a spherical robot with an IDU (inside driving unit) consisting of a driving wheel and balance wheel [2]. The second is the car type, where Bicchi et al. developed the spherical that is driven by a car inside the sphere [3]. The third is the internal weight type, where Javadi and Mojabi developed a spherical robot that moves by changing the center of mass for the outer shell using four movable weights located inside the shell [4]. The fourth is the attached rotor type, where Bhattacharya and Agrawal developed a tow rotor-driven spherical robot [5]. And finally, the fifth is the pendulum type, which is subdivided into the one-pendulum type [6–10] and two-pendulum type [11–13]. In addition to these five main types of driving mechanism, various other driving mechanisms have also been studied for spherical robots [14–16].
However, each type of driving mechanism has disadvantages. In the case of the single-wheel type, there are problems with stable steering and balance control. For the car type, there is a chance of noncontact between the inside of the outer shell and the car wheel, creating an uncontrollable status. Meanwhile, fast steering is difficult for the internal weight type and attached rotor type, whereas the pendulum type, including both the one- and two-pendulum types, lacks omnidirectional movement due to pendulum movement limitations. Plus, the two-pendulum type has a balance control problem.
The current authors have already studied and developed a series of spherical robots, called KisBot (Kyungpook national university Intelligent Spherical robot). Based on KisBot I, which was driven in a wheeling mode and rolling mode using two pendulums, a new driving mechanism was developed to improve the driving capability of a two-pendulum driven spherical robot. Accordingly, this paper presents an active version of KisBot II that includes a novel curved two-pendulum driving system and improved driving capability. When compared with the conventional one-pendulum or two-pendulum spherical robot, KisBot II has an improved movement direction capability from a stationary state, omnidirectional driving capability using a base frame operation for two-pendulum driving, and the capability to change the driving direction by adding a rotational degree of freedom to the pendulum in parallel with the horizontal axis. The initial studies of the passive version of KisBot II operated by a joystick were introduced at the 15th IEEE international conference on intelligent engineering systems (INES 2011) held in June 2011 in Slovakia [17].
Since then, KisBot II has been upgraded to an active version that includes improvements to the control hardware, software, and outer shell. The design details of the driving mechanism and system description of the active version of KisBot II are described in Section 2. Section 3 explains the dynamic equation used for linear motion based on the Lagrange method. Section 4 presents the simulations and experiments using linear driving motion control with pendulum rotation, plus some other experiments for additional motion generation. A nonlinear feedback controller with a computed torque concept is constructed for the linear driving motion. The experiment results confirm the driving efficiency, and some final conclusions including future work are also provided.
2. Driving Mechanism and System Description of KisBot II
2.1. Design Concept
The general movement paths of a pendulum inside a pendulum-driven spherical robot are shown in Figure 1.

Pendulum movement paths of conventional pendulum driven spherical robots.
In the case of a one-pendulum driven robot where the pendulum is located at its center, there are two movement paths for the pendulum, as shown in Figure 1(a). Path 1 is generated by rotation of the horizontal center axis, and path 2 is generated by rotation of the pendulum. While path 1, which is orthogonal to the horizontal axis, has an unlimited motion range, path 2, which is parallel with the horizontal axis, has a limited motion range as the pendulum and horizontal axis belong to the same plane. As a result, a one-pendulum spherical robot has a limited driving direction capacity.
The two-pendulum system structure is shown in Figure 1(b). While each movement path of the pendulums is orthogonal to the horizontal axis to which each pendulum is attached, it is hard to generate a movement path parallel with the horizontal axis, like path 2 for the one-pendulum structure. Even if such path was generated, as in Figure 1(a), the movement range of the pendulum would still be limited for the same reason as explained for path 2 in Figure 1(a).
Consequently, changing the driving direction orthogonally and steering while moving are both difficult for a two-pendulum driven spherical robot. To overcome such problems, an adjustable length for the horizontal axis was introduced using a linear actuator structure; yet this causes balance control difficulties.
Figure 2 shows that the proposed two-pendulum structure does not have any movement range limitations for the pendulums inside the sphere. Figure 2(a) shows the movement paths of the two pendulums around the horizontal axis, the same as path 1 in Figure 1(a). Each pendulum can also rotate independently without any interference with the horizontal axis, as shown in Figure 2(b).

Pendulum movement paths of KisBot II.
Thus, the proposed hybrid pendulum driving mechanism includes the features of both a one-pendulum and two-pendulum driving mechanism.
2.2. Motion Generation
Figure 3 shows a comparison of the driving directions from stationary state between a conventional pendulum driven spherical robot and the proposed hybrid pendulum driven spherical robot.

Comparison of driving directions from stationary state.
From a stationary state, the conventional one- and two-pendulum driving mechanism for a spherical robot has two driving directions, forward/backward, whereas the proposed hybrid pendulum driving mechanism has four driving directions, forward/backward/right/left.
When changing the driving direction, the conventional one-pendulum spherical robot can steer its driving direction with a certain radius of a curvature path, as shown in Figure 4(a), while the conventional two-pendulum spherical robot has almost no steering control of its driving direction. However, the proposed hybrid pendulum spherical robot can steer its driving direction like a one-pendulum spherical robot and change its driving direction orthogonally while moving, as shown in Figure 4(b).

Comparison of changing driving direction.
Thus, the proposed driving mechanism can provide an improved locomotion capacity for a spherical robot when compared to the conventional one-pendulum and two-pendulum spherical robot.
Figure 5 shows a comparison of the pendulum movement range between the conventional one-pendulum driven spherical robot and the proposed hybrid pendulum driven spherical robot, KisBot II. For KisBot II, the driving mechanism using base frame rotation is the same as that for the conventional one-pendulum.

Comparison of pendulum movement range between one-pendulum system and hybrid pendulum system as regards steering.
Furthermore, if the horizontal axis can be made to stand vertically, the proposed robot can move in any direction by pendulum rotation according to the rotation angle of the horizontal axis, as shown in Figure 6.

Base frame rotation for changing driving direction.
2.3. Mechanical System Structure
2.3.1. Basic Structure and Motion Principles
The basic mechanical structure of KisBot II consists of a horizontal ring frame and vertical ring frame. At the center of the robot, there is a cross-shaped frame, called the base frame, which is also connected to the horizontal ring frame. The pendulum rod is curve-shaped.
The base frame generates the pendulum movement path, as shown in Figure 2(a), and the pendulums are designed to rotate without any interference with the main shaft of the base frame to generate the movement paths shown in Figure 2(b).
The sustained operations of the base frame rotation and pendulum rotation are also shown in Figures 7 and 8, respectively, along with the whole mechanical structure designed by CATIA. More detailed descriptions of the mechanical structure are provided in [17].

Motion principle of base frame.

Motion principle of pendulum.
2.3.2. Redesigned Outer Shell
The original outer shell of KisBot II consisted of eight parts. Yet this created assembly problems, as the outer shells were connected to the mechanical ring frames with internal bolts, plus inconsistencies resulted in an uneven surface for the robot. Thus, to improve the assembly and consistency, the outer shell was redesigned with four parts and holes for the bolts on the surface of the shell, as shown in Figure 9.

Drawings of redesigned outer shell.
To sustain external impact, the thickness of the shell was increased from 2 mm to 4 mm and made of polyamide instead of resin using a rapid prototype process. Figure 10 shows the manufactured outer shell. When fully assembled, the radius of the improved KisBot II was about 17.2 cm, an increase of 0.7 cm. Urethane coating was also applied to the surface of the shell for protection and to prevent slipping on the ground.

Manufactured outer shell.
2.4. Control System Structure
2.4.1. System Hardware
DSP320F2812 is applied to the proposed spherical robot as the main processor. For motor control, the main processor generates PWM (pulse width modulation) signals for the base frame dc motor and pendulum motors. Each PWM signal is then transferred to the motor driver board, which outputs a switching voltage matched with 22.4 V for the base frame and pendulum dc motor operation. An encoder attached to each pendulum dc motor outputs the motor shaft position information. Two QEPs (quadrature encoder pulse) within the DSP are used to count the encoder output values for each pendulum motor. Meanwhile, the encoder value for the base frame dc motor is counted using an external counter chip.
KisBot II uses a Bluetooth protocol to communicate with a PC that has a GUI (graphic user interface). The PC transfers data, such as driving and stop commands, to KisBot II, while the robot transfers the robot status data, including the driving velocity, motor encoder values, and sensor data, to the PC. An AHRS (attitude heading reference system) is also applied to the current version of KisBot II. The control system architecture is shown in Figure 11.

Block diagram of control system.
The entire implemented control system and its component configuration, including the control boards, wire harness, motors, and batteries, are shown in Figure 12.

Implemented control system and component configuration.
The motor for the base frame rotation is located inside the base frame and four batteries with the same weight are located above and below each pendulum motor to balance the weight of the base frame. The power switch board is attached to the upper center of the base frame. Meanwhile, the motor driver board, DSP board, and daughter board for the Bluetooth and external encoder counter are placed in order at the lower center of the base frame. The major electronic components are shown in Table 1.
Brief specifications for major electronic components.
2.4.2. System Software
The control software of KisBot II consists of two interrupt service routines, SCI A and SCI B. The data communications between the robot and the external PC are accomplished through the SCI A interrupt service routine, while the robot receives the data from the AHRS with a 20 msec time period through the SCI B interrupt service routine.
The main robot control routine that controls the motors for the robot driving and various robot status data is located within SCI B for timing control. Figure 13 shows the control software flowchart for KisBot II.

Control software flow chart.
3. Motion Control for Linear Motion
3.1. Dynamic Model
Linear motion equations can be derived mathematically by using Newton's Law of motion and the Lagrange method based on the assumptions for the motion equation simplification that there is no slip between the shell of the robot and the floor and no robot rotational torque loss by the frictional torque between the robot and the floor [7]. KisBot II has two linear motions using two-pendulum rotation and base frame rotation. However, the main linear driving of the proposed robot is performed using two-pendulum rotation. Therefore, this paper focuses on the mathematical dynamic model for pendulum driven linear motion.
While the base frame is motor weight symmetric for pendulum rotation, it is not motor weight symmetric for base frame rotation due to the position and weight distribution of the motors. Thus, in the case of pendulum driving, KisBot II can be modeled as a sphere with an unbalanced rod weight at its center. The simplified model is shown in Figure 14.

Simplified model of pendulum driving motion.
The potential energy, kinetic energy, and rotational energy for both the sphere and pendulum are given as follows:
where,
U s , U p : potential energy of sphere and pendulum.
UL1, UL2: potential energy for each mass in center rod.
K s , K p : kinetic energy of sphere and pendulum.
KL1, KL2: kinetic energy for each mass in center rod.
T s , T p : rotational energy of sphere and pendulum.
TL1, TL2: rotational energy for each mass in center rod.
ms, mp: mass of sphere and pendulum.
mL1, mL2: each mass in center rod.
rs: radius of sphere.
rp: length of pendulum rod.
θ s , θ p : rotation angle of sphere and pendulum.
ω s , ω p : angular velocity of sphere and pendulum.
J s , J p : moment of inertia of sphere and pendulum.
JL1, JL2: moment of inertia for each mass in center rod.
g: acceleration of gravity.
Here, the Lagrange function can be defined as follows:
The Lagrange equations of motion are then derived as follows:
where t represents time, τ means the torque of the pendulum dc motor, and τ f means the torque generated by the friction between the sphere and the floor. Here, τ f is ignored for the motion equation simplification as it is assumed that the robot rolls on the floor without slipping and has no torque loss by the frictional torque. According to (3), the dynamic equations can be written as (4) and (5), respectively:
While these dynamic equations are not integrable, they provide the basis for constructing the linear motion controller. θ p + θ s , called the driving angle, means the tilting angle of the pendulum relative to the vertical reference line in a global coordinate system.
3.2. Feedback Controller Design
When developing a dynamic equation for a pendulum driven spherical robot, the trigonometric functions in the dynamic equation are usually linearized on the assumption that the driving angle is almost zero. Thereafter, a Laplace transform is applied to the linearization of the dynamic function to construct the PID controller [7, 9, 18]. However, linearization is not suitable for the proposed system due to the cosθ s term in (4) caused by the unequal weight balance of the center rod. Thus, linearization of the trigonometric functions could not be applied to the present dynamic model for designing the controller. Therefore, the speed controller for linear motion was designed using a nonlinear dynamic equation based on a computed torque method concept. Using (4) and (5), the nonlinear dynamic equation is expressed as follows:
where,
The simplified first order DC motor model for the input voltage and pendulum rotation velocity, while neglecting the internal inductance, can be written as follows:
where
J m , n, K t , K e , R m , and fm mean the moment of inertia of the motor shaft, gear ratio, torque constant, back EMF constant, resistance of the motor, and viscous friction coefficient, respectively. Substituting (8) for (6) yields
If the driving angle, θ
p
+ θ
s
, is controlled at 0 while the robot is moving, sin(θ
p
+ θ
s
) is approximately 0 and cos(θ
p
+ θ
s
) is approximately 1 in (9). The angular acceleration of the sphere,
where
If the control input to the pendulum motor is designed such that
The error for the reference velocity can be defined as (12) and (13). Substituting (13) for (11) and integration of the resulting equation yields (14). Consider
As the input voltage of the DC motor for the pendulum rotation is decided by the error between the reference velocity and the real velocity, (14) can be rewritten as (15). This means that the velocity control of the robot to follow the reference velocity can be performed using a linear feedback controller for the DC motor, such as a PI controller with nonlinear term cancellations
As a result, the entire control input to the DC motor of the pendulum to produce the reference velocity as real output consists of the input from the linear feedback controller, input to make the driving angle zero, and input to compensate the nonlinear terms in the robot acceleration, as shown in
Using these procedures, a nonlinear feedback speed controller was constructed, as shown in Figure 15.

Nonlinear feedback controller for linear driving motion.
In Figure 15, the angular velocity follow-up control for the reference velocity profile is achieved using a PID controller in the first feedback loop, while the compensation control to make driving angle zero is achieved in the second feedback loop. This second feedback loop is equivalent to a control loop in which the driving angle reference is set to zero and the reference driving angle follow-up control is performed by proportional control. The third and last feedback loop carries out the nonlinear compensation for the second and third terms in (10).
4. Experimental Results
4.1. Linear Velocity Control in Pendulum Rotation Driving
Simulations using MATLAB Simulink were conducted to verify the efficiency of the proposed velocity controller. (6) was used as the plant. The mechanical parameters of the proposed system used in the simulations were measured and are shown in Table 2.
Mechanical parameters of KisBot II.
The DC motor model of the pendulum used in simulations is given as (17). It was modeled based on the specification data provided by the manufacturer. Consider
The driving velocity simulation results are shown in Figure 16. 120 deg/s was used as the reference velocity. Kp = 0.05, Ki = 1.2, and Kd = 0.012 were used as the PID controller gain, K1 = −1.5 as the driving angle feedback gain, K2 = 0.009 as the pendulum angular velocity feedback gain, and K3 = 0.01 as the sphere angle feedback gain. All of the gains were experimentally tuned. To investigate the influence of the center rod weight imbalance on the robot driving velocity, simulations were conducted for cases with different weight ratios between mL1 and mL2, plus the same weight ratio.

Step response simulation results according to ratio between mL1 and mL2.
As shown in Figure 16, when the weight imbalance of the center rod was lower, less oscillation was produced in the driving velocity output. Thus, the simulation results inferred that the cosθ s term of (6) resulting from the center rod weight imbalance created oscillation during the robot driving. Thus, if the weight of the center rod could be evenly balanced, the oscillation in the driving velocity could be reduced or even eliminated.
Before the linear velocity control experiment, a constant voltage input (8 V) was applied to the pendulum motors to investigate the characteristic of the robot driving velocity in the case of a constant pendulum rotation. The results are shown in Figure 17.

Robot angular velocity with 8 V input to pendulum motors.
Despite an almost constant pendulum rotation, there were still oscillations in the robot velocity. From this experimental result and the simulation results of Figure 16, it is possible to deduce that the test robot has a mechanical weight imbalance in the center rod where the center motor is placed for the base frame rotation.
A velocity control experiment was performed using the implemented nonlinear feedback controller in a real system. The reference robot angular velocity profile consisted of exponentially increasing velocity (from 0 deg/s to 120 deg/s) section, constant speed (120 deg/s) section, and exponentially decreasing velocity (from 120 deg/s to 0 deg/s) section, respectively. The reference velocity tracking control results and robot moving position results according to its velocity are shown in Figures 18 and 19, respectively.

Reference velocity tracking control results.

Moving position results.
Kp = 0.059, Ki = 1.17, Kd = 0.014, K1 = −1.29, K2 = 0.012, and K3 = 0.012 were all used in the real system and tuned experimentally, as in the simulation based on the simulation gains. Oscillations were recorded in the constant speed section and presumed to be the effect of the weight imbalance of the center rod of the base frame. Notwithstanding, the robot was still essentially able to follow the reference velocity. As regards the linear moving position, KisBot II moved linearly with a small yet reasonable error for the reference position, as shown in Figure 19.
Thus, based on the above results, even though the proposed controller design method is somewhat intuitive, the nonlinearities could be reduced to a reasonable level during the robot driving. Therefore, the simulations and real experiments verified the efficiency of the constructed controller for the proposed system. Although not shown in this paper, when using a PID controller alone, the robot was uncontrollable as regards velocity control.
4.2. Other Motion Generation
The driving motion in the case of simultaneous rotation of both the pendulum and the base frame is presented in Figure 20. When compared to the case of increasing yet limiting the pendulum tilting angle in [18], the proposed unique pendulum operation allowed the creation of interesting trajectories, as shown below, including spirals and the 8-figure trajectories in [18].

Snapshots of driving motion by both pendulum and base frame rotation.
Figure 21 shows the change in the driving direction of KisBot II when maintaining the rotation angle of the base frame vertical to the ground. The driving directions of the robot according to the angle of the base frame from the center line are shown in Figures 21(a)–21(d).

Driving direction according to rotation angle of base frame.
As mentioned in Section 2, the base frame can be rotated by the motor located in the center rod within the robot without making the outer shell rotate. Due to this mechanism, the driving direction of the robot can be decided by the rotation angle of the base frame. Thereafter, the robot can drive in any direction using pendulum rotation, as shown in Figure 21.
These results mean that KisBot II has an omnidirectional driving ability in the case of driving using pendulum rotation.
The experimental results of orthogonal driving for obstacle avoidance on the assumption that the robot will meet obstacles, such as a wall or valley, are shown in Figure 22.

Snapshots of orthogonal driving.
The robot moves using base frame rotation and then stops for a short time to stabilize the pendulum. Thereafter, the robot moves using pendulum rotation in the previous driving direction orthogonally. In Figure 22, the top three pictures show the driving motion using base frame rotation, while the driving motion using pendulum rotation is shown in the bottom three pictures. As previously mentioned, the center rod of the base frame has a weight imbalance due to the position of the motors. This causes a deflected driving motion in the case of driving using base frame rotation, as shown in the top pictures of Figure 22. However, this problem can be resolved by a redesign of the mechanics, plus an appropriate attitude control algorithm would be also helpful.
Nonetheless, the experiment showed that KisBot II has the ability of orthogonal driving, which can be used for efficient obstacle avoidance, including a wall or valley. If the stopping ability and pendulum position control are improved, KisBot II could also perform high-speed orthogonal driving.
5. Conclusion
An upgraded version of a novel spherical robot with a hybrid two-pendulum driving mechanism, called KisBot II, was introduced to enhance the locomotion capability of conventional pendulum driven spherical robots. A linear motion equation using pendulum rotation was derived mathematically utilizing the Lagrange method. A nonlinear feedback controller was also constructed for linear driving using pendulum rotation based on a derived dynamic motion equation.
The upgraded KisBot II can achieve driving control and data communication using a task-based software architecture consisting of interrupt service routines. KisBot II can move in four directions from a stationary state, move in any direction using the base frame as a rudder when driving by pendulum, steer with a short turning radius, and travel orthogonally on the ground. Experiments also demonstrated that KisBot II has an improved locomotion capability when compared to conventional pendulum-driven spherical rolling robots.
However, we think that the unbalance weight of the internal mechanical structure could cause difficulties for controlling the driving velocity as one of the main reasons. Thus, the mechanical design of a spherical robot needs to take special consideration of the internal weight balance.
Future work will include the design of a simple structure for our robot. Plus, the driving difficulty due to uncertainties from the ground status and the mechanical structure of the outer shape should be solved through more research on the mathematical modeling for uncertainties and control methods, such as intelligent control including fuzzy control. Thus, with more functional improvements, KisBot II could be used for various applications and environments, including education, entertainment, security, military, and even planet exploration.
Conflict of Interests
The authors declare that there is no conflict of interests regarding the publication of this paper.
Footnotes
Acknowledgment
This research was supported by Kyungpook National University Research Fund, 2011.
