Abstract
In this paper, a new rolling robot is proposed. The mechanism of the robot consists of eight links with three degrees of freedom (DOFs). The shape of each link of the robot is an equilateral triangle. The robot realizes its direction switching function by deforming into different modes of planar parallelogram mechanisms (PPM). In any deterministic mode, the robot can roll on the ground. The motion of the robot is studied based on the kinematic and zero moment point (ZMP) analyses. Though the robot has three DOFs, we show that it can realize flexible mobility via direction switching and rolling functions with two DOFs and one DOF, respectively. A prototype robot was manufactured. A series of simulations and experiments done using this prototype is reported, verifying the feasibility of the design.
Introduction
Naturally occurring terrestrial locomotion modes include walking, jumping, crawling, sliding and rolling. Legged robots can achieve walking and jumping by alternately changing the supporting legs on the ground [1–7]. Snake-like robots and certain creeping robots can realize crawling or sliding gaits by changing the friction (applied on the bottom of their bodies) against the ground [8–11]. Spherical robots typically move by rolling: such mechanisms roll by controlling one or more actuators located in the interior of the rolling shell [12–17]. In addition, some rolling robots realize their locomotion by deforming their geometric shapes. For example, based on a loop of modular links connected by revolute joints, some planar rolling mechanisms realize their rolling locomotion by changing the angle between every two adjacent links [18]. Some spatial modular rolling robots realize their locomotion by actuating the prismatic joints [19,20]. A common characteristic of these modular robots is that the shape as well as the centre of mass changes as the mechanism rolls. Such modular robots typically have large DOFs, and although this yields flexibility, they suffer from a lack of rigidity and possibly complex planning.
In this paper, we introduce a new rolling robot. The mechanism of the robot consists of eight links and nine joints (three spherical joints and six revolute joints), and each link is an equilateral triangle in reality (see Figure 1 (a) for an illustration). Our new design possesses the following features:

The geometric model and mechanism schematic of the polyhedron robot: (a) geometric model, (b) the mechanism schematic of the robot
The robot moves by simultaneously actuating the three revolute joints via motors; the rolling motion is achieved when the robot rotates around one of the edges of the base triangle (the triangle that is in contact with the ground).
In some particular configurations of the robot, we can choose one of six directions to roll along.
Traditionally, singular positions are avoided for the stability of the mechanism. However, we show how to use the singular positions to realize the capability of rolling and changing directions. This idea is similar to our previous works [21] and [22–23].
Our robot can be folded into a very compact form. This is convenient for storage and transportation.
Mechanism Design
The geometric model of the robot is shown in Figure 1(a). It resembles a polyhedron; therefore, we call it a polyhedron robot. Each link is an equilateral triangle. These triangles are numbered from 1 to 8, among which 1 and 8 denote the base and top triangles, respectively. The base and top triangle are connected by three chains, each made up of two triangles; in our example, these chains are: 5–2, 6–3, and 7–4. Each chain pair, e.g., 6–3, is connected at a shared vertex via a spherical joint. The upper triangle of the pair is connected to the top, and the lower triangle to the base via revolute joints. Thus, the robot consists of eight links with six revolute joints and three spherical joints. It is a 3-RSR parallel mechanism [24, 25]. The mechanism schematic of the robot is shown in Figure 1(b); links AD, DG, BE, EH, CF and FI represent the triangles 2, 5, 3, 6, 4 and 7, respectively. O and P are the centroids of the base and top, respectively; J, K and L are the vertices of the triangle 1; M, N and T are the vertices of the triangle 8; A, B and C are the midpoints of the edges of triangle 1; H, I and G are the midpoints of the edges of triangle 8.
Kinematic Analysis
In this mechanism, it is well known that this configuration is non-overconstrained (see, for example, [24] and [25]). Thus, the mobility of our mechanism satisfies the Grübler-Kutzbach mobility condition [26]. Therefore,
where n is the number of links, g the number of joints, and fi the degree of freedom of the i-th joint. Substituting the parameter values for our robot, M = 6×7 − 39 = 3. The upper triangle 8 will have a translation movement and two rotational movements with respect to the lower triangle 1.
Let θ1, θ2 and θ3 denote the angles between the base triangle and links AD, BE and CF, respectively. We first discuss the ranges of the three angles.
Since all links of the three chains have the same size, according to ref. [24], this polyhedron robot is symmetrical with respect to the plane passing through the three spherical joints, namely the plane DEF. In Figure 2(a), ∠DGP = ∠OAD, ∠EHP = ∠OBE and ∠FIP = ∠OCF. Due to this symmetrical characteristic, as shown in Figure 3, two special positions are obtained. When links AD, BE and CF are all parallel with the lower triangle (i.e., θ1 = θ2 = θ3 = 0), the upper triangle is coincident with the lower one, and the robot is at its lowest position (see Figure 3(a)). Similarly, when links AD, BE and CF are all vertical to the lower triangle (i.e., θ1 = θ2 = θ3 = π/2), the upper triangle is at its highest position (see Figure 3(b)).

The mechanism schematic of the robot: (a) a common view, (b) a view of the robot where the planes’ DEF, top and base, are projected onto lines

The limit positions of the upper triangle: (a) the lowest position, (b) the highest position, (c) unstable position
Considering the RSR chain further, if the input angle θ 1 increases from π/2, the links will move inside the mechanism. According to ref. [27, 28, 30], when two or three spherical joints are coincidence, the mechanism is at its singular positions. This can also be identified using the method in ref. [29]. For example, if D and E are coincident, the mechanism will have a free rotation movement about line DF. It is unable to control the mechanism at such singular positions.
Based on the above discussions, in this paper, we consider that the three angles are in range (0, π/2). Let l be the length of link BE, so the length of OB is l / 3. For any vertex D, we define (xD, yD, ZD)T as the coordinates of D in the coordinate frame with origin at the centroid O of the base, and the y-axis along OK (see Figure 1 (b)). The positions of A, B and C are obtained as
The positions of D, E and F can be expressed in terms of the values of θ1, θ2 and θ3 by
Due to the symmetry of the robot, we know that ||DP|| = ||DO||, ||EP|| = ||EO||, and ||FP|| = ||FO||, where ||*|| denotes the length, and therefore
where R1 = ||DO||2, R2 = ||EO||2, and R3 = ||FO||2. With some algebraic manipulation, Eq. (4) can be re-written as
Let
Solving Eq. (6) for (xp, yp), we get
where
Solving Eq. (8), we get
When zP = 0, it means that the upper triangle is coincident with the lower triangle. For a real prototype, this configuration cannot be reached. Thus, we shall ignore the first solution.
It remains to compute the coordinates of G, H, and I. We show how to derive the position of G first; the positions of H and I can be determined similarly. Since the mechanism is symmetrical with respect to the plane DEF, OP is orthogonal to the plane DEF. Thus, the plane DEF is defined by
The lines AG, BH, CI and OP are parallel due to the symmetrical structure of the mechanism. So, the parametric equation of the line along AG can be written as A + k1(G – A) = A + k1k2 (P – O) = A + δ(P), where the bold letters denote the position vectors of the respective points, and δ=k1k2. Therefore
The value of the parameter δ at point G, δ1, is determined by observing that ||AG|| is twice the distance of point A from the plane DEF, i.e.,
where
Using Eq. (11) and Eq. (12), the position of Q can be expressed as
Similarly, the positions of H and I can be obtained in Eq. (14) and Eq. (15) respectively.
where
where
In this section, we will show that in certain configurations of our robot, it is kinematically equivalent to a planar parallelogram mechanism. Furthermore, we perform a numerical verification of the various motion ranges of the mechanism using a commercial solver, MatLab™.
Consider our robot in Figure 2(a), where the revolute joints corresponding to the input angles θ1 and θ3 are locked. Then, the triangles 1, 2 and 4 fuse together into a single link. By symmetry, triangles 8, 5, and 7 also act as a single link. As the input angle θ2 is changed by a rotation of link BE relative to the base, the two fused links rotate with respect to each other around an axis connecting the centres of the two spherical joints D and F. In other words, the two fused links can be seen as connected with an imaginary revolute joint at the mid-point, Q, of DF. In this configuration, our robot behaves as a four-bar mechanism (BEHQ). Furthermore, for appropriately chosen values of θ1 and θ3, we show that it behaves as a planar parallelogram mechanism (PPM). A four-bar mechanism is a PPM if it satisfies the following characteristics:
The axes of the three revolute joints (here, at B, Q and H) are parallel; and
The lengths of the opposite links are equal (here, ‖EH‖ = ‖BQ‖ and ‖BE‖ = ‖HQ‖).
To satisfy condition (1), line DF should be parallel with the x-axis. This is true when yD = yF and ZD = ZF, i.e., θ1 = θ3 (using Eq. (3)). Thus, the position of Q can be expressed as
Then, we get the length of BQ as
To satisfy condition (2), we require that ‖BQ‖ = ‖EH‖. Note that ‖EH‖ = ‖BE‖ = l. From Eq. (17), we have
Eq. (18) has a single root at θ1 = 0. To summarize, when θ1 = θ3 = 0, and θ2 > 0, the mechanism is at its singular position and it becomes a PPM. As shown in Figure 4(a), triangles 1, 2 and 4 and are on the ground and form link BQ, and triangles 8, 5, and 7 are on the same plane and form link HQ. The mechanism becomes PPM BQHE. Similarly, when θ2 = θ3 = 0 and θ1 > 0, we get the PPM ADGR (see Figure 4(b)); when θ1 = θ2 = 0 and θ3 > 0, we get the PPM CFIS (see Figure 4(c)).

The states when the robot is deformed into a PPM: (a) triangles 1, 2 and 4 are on the ground, (b) triangles 1, 3 and 4 are on the ground, and (c) triangles 1, 2 and 3 are on the ground
Note that each PPM has two assembly modes, e.g., Figure 4(a) shows the first assembly mode of PPM BQHE. Since the lengths of four links are the same, the second assembly mode can be obtained when H and B are coincident. This is a singularity position [27]. However, for the real prototype, this position cannot be reached. We shall consider that the robot can deform into three different PPM states (this is evident from Figure 4, where the dashed blue lines show the equivalent PPM states).
Using Eqs. (1), (2), (7), (9), (13), (14) and (15), the forward kinematics of the robot can be simulated with explicit solutions for the positions of all vertices, given the values for the angles θ1, θ2 and θ3. We implemented this simulation in MatLab™, setting l = 1 m. The input parameter values corresponding to five positions of interest are shown in the corresponding columns in Table 1. Each of configurations I, II and III correspond to the case in which the device is a PPM. For comparison, we also provide two additional configurations, IV and V, in which the robot is not a PPM. Figure 5 shows plots of the robot corresponding to its PPM configurations.

Three states of the robot where it is configured as a PPM: (a) configuration I, (b) configuration II, (c) configuration III
Input angles {θ1, θ2, θ3} (rad)
In Figure 6, we show the planar projections of the configurations when the robot is a PPM. Figure 6(a) shows the view of the robot in configuration I when it is projected onto the BEH plane. Observe that A, B, C, D and F are on a common plane, and H, P, G, I, D and F are on another common plane.

The projected view of the robot: (a) the projection of configuration I on the BEH plane, (b) the projection of configuration II on the ADG plane, (c) the projection of configuration III on the CFI plane
Using the simulation program, we can also simulate the robot in other configurations when the robot is not a PPM. See Figure 7 for the plots of the robot corresponding to configurations IV and V.


The zero moment point (ZMP) of the robot: (a) ZMP is in the interior of the supporting area, (b) ZMP is on the border of the supporting area
In this section, the feasibility of achieving the rolling motion is analysed, based on the zero moment point (ZMP) analysis of the robot. ZMP is considered the centre of pressure at the feet (supporting area) on the ground. As shown in Figure 8, link 1 is a supporting foot, and link 2 is connected to link 1 via a revolute joint. The ground reaction force can be viewed as a force N and the torque M at the centre of the supporting area. Consider a point P on the ground, such that the sum of the forces at it is FR; if the torque at P caused by FR; is zero, then P is called the zero moment point (ZMP) of the robot [31]. In Figure 8(a), P is in the interior of the supporting area and the robot is in a state of dynamic balance. As the link 2 rotates counter-clockwise, P moves to the left; at some stage, if P coincides with the left endpoint of the supporting area (see Figure 8(b)), then the robot is about to lose its dynamic balance and can rotate about the left endpoint [32].
Without loss of generality, assume that our robot is rolling along the positive y-axis (see Figure 9). It is then sufficient to consider the projection of the ZMP on the y-axis since the robot is planar. We denote this component by yzmp. Using an analysis similar to those of Takanishi [33] and Kim [34], yzmp can be expressed as follows:

The schematic of the PPM: (a) the state when triangles 1, 2 and 4 are on the ground, (b) the simplified sketch of the PPM
where mi is the mass of link i, xi, yi and zi are the accelerations along the x-axis, y-axis and z-axis respectively, gz is the acceleration due to gravity, Pi = (xi yi zi) T is the centre of mass of link i, αi is the angular acceleration of link i, and (Jiαi) x is the moment of inertia about the x-axis of link i. When yzmp moves out of the supporting area, the robot will rotate about the corresponding triangle edge, executing a tumbling motion.
As shown in Figure 9, link BQ lies along the positive y-axis. Link BE and link EH have the same mass, and link BQ and link QH have the same mass. Let m1 and m2 be the mass of the links BE and BQ respectively. Let ω and α be the angular velocity and acceleration of link BE, respectively.
The centre of mass of each link Pi can be computed from Eq. (20). Deriving the second derivative of each Pi, the accelerations along the x-axis, the y-axis and the z-axis of each Pi are expressed in Eq. (21). Based on the schematic of the robot in Figure 9(b), the moment of inertia about the x-axis of each link is shown in Eq. (22).
where u = 0.5l(–αsingθ – ω2 cos θ) v = 0.5l(α cos θ – ω2 sin θ).
Substituting Eqs. (20)-(22) into Eq. (19), the yzmp can be expressed as
where
For the PPM shown in Figure 9, the supporting area along the y-axis is [0, l]. As yzmp moves out of the supporting area, the robot will tumble. Therefore, the rolling condition can be expressed as
We now look at a simple numerical example to illustrate the use of this formulation. Suppose that the initial parameters of the robot are assigned as follows: l = 1 m, m1 = 1 kg, m2 = 3 kg. Assume that the robot starts from an initial position as shown in Figure 9(b). At this moment, BQ and BE are parallel to the y-axis and z-axis, respectively, i.e., θ = π/2. We define ωas positive when link BE rotates counter-clockwise around point B. When ω < 0, as θ is decreasing, the PPM will move to the right with its supporting area along the y-axis on the interval [0, 1]. If yzmp moves outside this range, then the robot will roll.
Suppose that, at the initial state (π/2), the initial angular velocity equals to zero, and the motor starts with a constant angular acceleration α. After time (t), we can use the following equations to obtain the angular velocity and the displacement of θ.
As the robot deforms, the yzmp will move out of its supporting area. Depending on whether α > 0, we have the following two cases.
Case 1: α < 0, link BE is accelerating to the right.
To illustrate the effects of α on yzmp, suppose we choose α = {-1, −1.5, −2} rad/s2. Once yzmp moves out of the upper limit of the equilibrium position, the robot begins to roll to the right. As shown in Figure 10, when α = −1 rad/s2, yzmp is out of the upper limit of the equilibrium position when θ≈ 0.377 rad (the solid line). Further, according to Eq. (25), the angular velocity at this moment is 1.545 rad/s. Likewise, when α = −2.0rad/s2, yzmp will be out of the equilibrium range when θ≈ 0.574 rad (the dotted line), and the angular velocity is 1.999 rad/s. From the trends of the curves, we can also see that the robot can roll to the right more easily as α increases, which is also intuitive. We shall stop the motor immediately during this rolling process, so that the angular velocity will be decreased to zero in a very short time.

The curves of yzmp when the robot rolls to the right
Case 2: α > 0, link BE is accelerating to the left.
Let α = {1, 1.5, 2}rad/s2. As shown in Figure 11, when α < 9.2 rad/s2, yzmp is not out of the lower limit of the equilibrium position, and the robot cannot roll during the motion. When α≈ 9.2 rad/s2, yzmp will be out of the equilibrium range when θ≈ 2.53 rad (the dashed line), and the angular velocity is 4.201 rad/s. From the trends of the curves, we can also see that the robot can roll to the right more easily as α increases, which is also intuitive. This is due to the difference in the weights of the links.

The curves of yzmp when the robot rolls to the left
In this section, we discuss the rolling direction of the robot. Referring to the initial configuration in Figure 9, when triangle 1 is supported on the ground, we have three different states of PPM. Each PPM has its own directions. By switching between these states, the robot can choose its moving direction. Recall that O is the centre of triangle 1. As shown in Figure 12, the robot can choose any one of six directions (dashed arrows) to move along when triangle 1 is on the ground. A similar choice is available when triangle 8 is on the ground.

The six directions the robot can choose to move in
According to the analysis in section 3, it is possible to make the robot roll along either the positive or negative y-axis. If the robot rolls to the positive y-axis, then link QH (i.e., triangle 8) becomes the new supporting area, the resulting state of the robot is shown in Figure 13(a). As pointed out above, the robot can also choose one out of six directions to roll along in the next stage. However, if it rolls to the negative y-axis, then link BE becomes the new supporting area; the resulting state of the robot is shown in Figure 13(b). From this position, the robot can only choose to move forwards or backwards along line BE, by rotating the revolute joint at B, i.e., changing θ2.

(a) The state when triangles 5, 7 and 8 are on the ground, (b) the state when triangle 3 is on the ground
In summary, with two motors being locked, the robot can roll with one DOF. At the same time, since the DOFs of the robot are three, we can use this flexibility to provide a direction switching functionality, which can be useful in moving around obstacles.
The kinematic feasibility of the designed robot is tested by generating a simplified solid model using SolidEdge™ (Figure 14), and then simulating the motion by specifying the appropriate constraints at each joint in ADAMS™.

The simulation model of the robot (a common state)
Let the configurations of the robot in Figure 4(a), (b) and (c) be denoted as State A, State B and State C, respectively. Considering Figure 15 (the white dashed line denotes the active joint, while the black dashed line denotes the locked joints), we can switch from State A to State B by first rotating triangle 2 by increasing θ1 to π/3, and then rotating triangle 3 by decreasing θ3 from π/3 to 0.

Simulated motion of the robot as it switches from State A to State B. The base (red) and top (blue) triangles are shown in different colours for clarity (the position of the bulk is fixed on the ground)
It is easy to show that, in a similar fashion, the robot can switch from any of the three states to an alternate one (e.g., to go from State A to State C, first rotate triangle 4 by increasing θ3 to π/3 and then rotate triangle 3 by decreasing θ2 to 0); similar transitions can be achieved when the top face (face 8) is resting on the ground. Figure 16 shows a few positions during the switch from State A to State C (the white dashed line denotes the active joint, while the black dashed line denotes the locked joints). Figure 17 illustrates a rolling simulation process when the robot is in State A.

Simulated motion of the robot as it switches from State A to State C. The base (red) and top (blue) triangles are shown in different colours for clarity (the position of the bulk is fixed on the ground)

A rolling simulation when the robot is in State A
From the simulation procedure, it is shown that the direction switching function can be realized by manipulating two motors, while the rolling function is realized by operating a single motor; i.e., the robot realizes the direction switching function and the rolling function with two DOFs and one DOF, respectively.
A prototype was fabricated to test the performance of the designed robot (see Figure 18). The major parameters of our robot are shown in Table 2. Note that the robot can be driven by three motors, with a motor being installed at the end of each chain. However, to balance the weight of the robot and to efficiently control the rolling directions, our design includes two working motors on both ends of each chain.

The prototype of the robot
Figure 19 shows the folding function of the robot. Figure 20(a)–(c) shows the prototype in States A, B and C, respectively, and the dashed lines denote the rolling directions. Figure 21 shows a rolling process when the robot is in State A.

The robot can be folded from its tallest status (a) to an extremely compact form (b)

States of the prototype robot corresponding to State A, B and C in Figure 4

Illustration of the rolling function (the dashed lines denote the rolling direction)
Prototype parameters of the robot
In this paper, a new rolling robot is introduced. It can switch rolling directions at its singular positions, and it can be folded into a very compact form. We analysed the kinematics of the robot. We demonstrated how the robot can achieve two types of motions: a linear rolling motion and a reconfiguration motion that allows the robot to change its moving directions. The rolling conditions are computed based on a ZMP analysis, and can potentially be used for velocity/acceleration control. A CAD-based assembly model was used to verify the mobility of the robot. Finally, a physical prototype was constructed to demonstrate the ability of the robot to achieve the motion modes described in this paper.
The focus of this paper is to introduce and analyse the motion of this new rolling robot. In our future work, we are going to improve this robot in two ways. Firstly, the kinematics can be further analysed considering all the singularity positions. Based on the kinematics, the rolling gaits on uneven ground can also be studied. Secondly, we are going to improve the prototype for future tests in realistic situations. This might include, for example, deploying on-board batteries for powering the motors, adding servo-controls to the motors, and possibly adding an on-board vision system to identify obstacles and perform real-time adaptive path planning.
Acknowledgements
This work has been supported by the National Natural Science Foundation of China (51175030), and Fundamental Research Funds for the Central Universities (2011JBM277 and 2012JBZ002). Part of the work in this paper was funded by GRF grant #614205.
