Abstract
This paper presents the design of a novel quadruped robot. The proposed design is characterized by a simple, modular design, and easy interfacing capabilities. The robot is built mostly from off-the-shelf components. The design includes four 3-DOF legs, the robot body and its electronics. The proposed robot is able to traverse rough terrain while carrying additional payloads. Such payloads can include both sensors and computational hardware. We present the robot design, the control system, and the forward and inverse kinematics of the robot, as well as experiments that are compared with simulation results.
1. Introduction
In many cases, there is a need for mobile platforms that can move in areas with difficult terrain conditions where wheeled vehicles cannot travel. Examples of such scenarios can be seen in search and rescue tasks, as well as in carrying payloads. Unlike wheeled robots, walking robots are characterized by very good mobility in rough terrain. The main goal of this paper is to present an innovative, modular and inexpensive design of a four-legged robot for locomotion research purposes.
Investigation of walking machines began in the 19th century. One of the first models appeared around the year 1870 [18]. For 80-90 years, efforts were made to build walking machines based on different kinematic chains that were supposed to generate a desired motion profile during operation. During those years, many models were proposed, but the performance of most of these machines was limited by regular cyclic walking forms and the inability to adjust a walking pattern to the terrain. In the late 1950s, it became clear that machines should not just be based on kinematic mechanisms that provide cyclic movements, and that there was a need to integrate planning and control systems. The first robot to move autonomously with computerized control and electric propulsion was built in 1966 by McGhee and Frank [19]. The main task of the robot's computer was to solve the kinematic equations involved and to control the electric motors that drove the legs, such that the robot could go forward while maintaining equilibrium constraints. Since then, and following the advance of control technique technologies, computing resources and motion actuators, many different robots with varied abilities have been built. Examples of these abilities include running [10], walking over rough terrain, jumping over obstacles [14], climbing [24, 25] and more.
Today, there are a large number of active research programmes in the field of legged locomotion [27, 1, 9, 8, 15, 4, 22, 11, 2]. Apart from designing and building the robot itself, the main challenges are the planning and implementation of the legs' motions in generate a walking sequence, namely, how to plan the steps of the robot so that it moves in a desirable way while maintaining equilibrium constraints (quasi-static walking) or else maintaining the stability of the robot (dynamic walking).
However, in all the above studies, a considerable amount of research effort has gone into the design of the robot. Our goal is to present a simple, open-source, legged robot platform that will allow researchers to spend more of their time and funding on motion planning and less on robot design and construction. At present, many research groups develop their own robots for the testing and verification of algorithms and theories [32, 7, 21, 13, 12, 23, 17]. In most cases, the main subject of the research is not the robot itself but the locomotion theories involved. Usually, these robots are built and controlled in a complex manner that makes it difficult for other researchers interested in working with a similar platform to easily reproduce a similar robot. In addition, these robots are usually not designed in a modular fashion that allows for the changing of their structure and geometry in a simple and fast manner. We present in this paper the design of a four-legged walking robot which is suitable for use as a research tool in the motion-planning of four-legged robots. The use of the design presented will allow researchers to focus on major research topics without wasting time and resources in developing research tools. A significant advantage of the presented design is its ability to reproduce the results of other research papers on four-legged robots locomotion. Therefore, our design can serve as a standardized platform in this field of research. The main advantages of the presented robotic platform are design simplicity, structure modularity, low cost and a simple interface.
Currently, there are number of lab-scale quadruped robots being used in research, such as LittleDog [32] from Boston Dynamics, StarlETH [7] and ALoF [21] from ETH, TITAN-IX [13], MRWALLSPECT III [12], the “spider-like robot” [23] developed at Technion, AiDIN-III [16] from Sungkyunkwan University (SKKU), and others. These models have complex mechanical designs, such as custom-made joints and structures, non-uniform motors and custom electronics. These models are specifically designed with powerful processing units or built-in sensors. The main advantage of the design presented in this paper is that it can be built from off-the-shelf products. Therefore, it can be used immediately in a simple and cost-effective manner. In addition, the proposed robot is based on open-source code and hardware, thus enabling future improvements. Such improvements might include sensor capabilities, control circles and the mechanical structure. The combination of the mentioned design features makes the robot unique and innovative and leaves it optimized for research purposes.
The paper is structured as follows: Section 2 describes the mechanical design of the robot. Section 3 describes the electronic design as well as the communication and control methods for the robot. Section 4 presents in detail the financial cost of the robot. Section 5 describes the development of the forward and inverse kinematics equations of the robot and presents the robot workspace. Section 6 presents experiments conducted to demonstrate and verify the design and kinematics computations presented in the previous sections. Finally, Section 7 concludes and discusses future work.
2. Quadruped Robot Design
The robot was specifically designed to be simple, modular and built from off-the-shelf components. Each of the four legs is composed of three electric motors, which results in a 3-DOF for each leg. The robot leg design is shown in Figure 1.

Front (a), and Side (b) exploded views of the robot leg design
We used Dynamixel RX-64 servo motors [34]. The RX-64 Dynamixel robot servo actuator is one of Robotis' most powerful smart actuators. It can provide 64 kg*cm of torque (18V supply) and it can traverse its entire 300

An illustration for a worst case torque demanding posture
When using the dimensions from Table 1 for the presented robot configuration, we get the required motor torque,
Design parameters' values
All the sensor management position control and serial RS-485 communication are handled by the servo's built-in microcontroller. This distributed approach leaves the main robot controller free to perform higher-level tasks. The motors are mechanically interconnected using standard aluminium links [31]. These links are replaceable off-the-shelf components. By using other types of link or different sized links, it is possible to change the dimensions of the robot legs and the configuration of the motors. In addition to considerations of minimal design and modularity, the selection of these links' configuration allows for a symmetric and sufficiently large workspace, as described later in this section. The legs end-links are standard M8×1.25×50 screws fastened with nuts. Various footpads can be connected at the end of these screws. These footpads serve as the leg contact points with the ground. In the presented design, the legs' footpads are made from round-ended plastic and rubber cylinders printed with a rapid, prototype 3D printer. The screws at the bottom of the legs can be replaced with a more complex link which includes springs and dampers in order to add desired physical characteristics to the robot legs.
The body of the robot consists of two parallel, 2 mm-thick, aluminium plates. The plates are connected to each other using four aluminium blocks with holes suitable for fixing the aluminium links in various ways. This allows a modular setup for the orientation of the upper degree of freedom of the legs. The bottom plate contain holes that are used to secure the battery and electronics inside the robot body. Figure 3 shows the structure of the robot and the robot's dimensions.

Top fig:xy and side fig:xz views of the robot design. The figure presents the symbolic dimensions and locations of the coordinate frames.
In order to represent the robot configuration, we define a set of coordinate frames. Section 5 will discuss the use of these frames in developing the robot forward and inverse kinematics equations. Table 1 lists the dimensions and values of the design parameters. These dimensions allow the robot to reach a ground area with a 10 cm radius disc, while the body is horizontal and at 20 cm height above the ground. Furthermore, this configuration increases the omni-directionality of the robot's legs. This is a result of orienting the upper leg joints' axes perpendicular to the body plane. With this configuration, each robot leg can place its footpad on obstacles with a maximum height of 21 cm. However, in order to pass over such a high obstacle, it is necessary to carefully plan the trajectory of all the legs and the centre of mass in order to maintain stability.
This configuration of parameters allows us to assume that the centre of mass of the robot is relatively unaffected by the position of its legs (i.e., we can assume that the robot's legs are massless). This assumption greatly simplifies the calculations performed by the foothold planning algorithms that are required to calculate the position of the robot's centre of mass. The change of location of the centre of mass due to the legs' movement does not exceed the dimensions of a 2.2 cm radius sphere. The calculation for the above assertion was performed using SolidWorks 1 software. The robot was completely modelled and each part was assigned with its own mass. We used SolidWorks to calculate the location of the centre of mass while varying the joint angles of the robot legs. As expected, the extreme values were obtained when the robot legs were all spread out in the same direction. This information can be used by the motion planner to add adequately large stability margins which will ensure the robot's stability even when its legs are moving. It is important to note that the above assumption should only be made after the examination of the robot's configuration. Changes in the legs' links or in the robot's body weight require revisiting the massless legs assumption. Moreover, when the motion is not slow, we must consider the effect of the robot's mass and inertia for the analysis of dynamic effects.
3. Control and Communication
The robot's main controller is the ArbotiX robocontroller [30]. The ArbotiX robocontroller is a high-end AVR-based robot controller. It is specifically designed to control robots built using the Robotis Dynamixel servos. The ArbotiX is based on the ATMEGA644p microcontroller, offering 32 I/O ports, a XBee socket for wireless communication, a dual 1A motor driver, and more. The ArbotiX can be used with the Arduino IDE, which allows for a simple and convenient programming environment. The 12 RX-64 motors are connected to the ArbotiX through the RX Bridge [29], which communicates with the motors. The power source used to operate the controller and the motors is a 4S LiPo battery, but it can also be powered by a power supply connection. The LiPo battery voltage is monitored using the ArbotiX analogue input pins in order to prevent over-discharge. Wireless communication with the robot is based on the XBee 2.4 Ghz radio modules [35].
The robot software can be divided into two parts. The first part comprises the low-level motor control, while the second part comprises a high-level robot motion-planning algorithm. In the low level control, we use the BioloidController library [28] in order to create a smooth transition between two different robot positions. This library implements a low-level serial communications code for communication with the motors and the implementation of functions, which allows for the use of a single command to control all 12 motors in a coordinated manner. This command includes a 12 element vector indicating the goal position of each motor. The RX-64 motors are too fast to use without speed control and a velocity profile. Rapid motion can affect the robot's stability. Hence, we use an interpolation method to enable a gradual motion. The BioloidController library consists of an interpolation engine which allows this to be done while giving the user the option to set the total interpolation time. The interpolation engine plans the motion of all the motors such that they will move in a coordinated manner (i.e., start and complete the motion at the same time). The BioloidController library also allows us to receive the current motors' positions, speeds, loads and other parameters.
Although the control loop presented in this paper only refers to the position control of the robot motors, the necessary hardware and software capabilities allow for the further development of more sophisticated control methods, such as speed and torque control. The use of position control is mainly suitable for scenarios where the robot's motion is slow, such as climbing or walking on very rough terrain.
This high-level motion planning can include any existing or under-development motion-planning algorithm which outputs the required robot joint angles for each step. Such an algorithm can range from a pre-defined cyclic-gait to a highly complex gait generator that takes into account stability constraints and terrain geometry. The algorithm can be realized in any programming language which supports the establishment of a serial communication port. This serial port is connected to the XBee module on the computer side. Using this method, the robot motion-planning is preformed on a personal computer and the leg joints' position commands can be sent to the robot wirelessly in real-time. Details concerning the robot motion-planning algorithm must remain outside the scope of this paper. Bellow is a simple example of a MATLAB 2 program that includes the communication handling and a single 12 joint angle command.
Figure 4 shows a schematic structure of the design of the electronics and communications system of the robot.

Schematic structure of the electronics and communications design of the robot
The main advantage of this communication method is in allowing an off-board computer to perform highly intensive motion-planning computations which cannot run on the on-board microcontroller. Another advantage is the freedom of choice granted to the programmer in implementing the algorithm in different programming languages, regardless of the hardware and software of the robot.
All of the robot software packages are open-source. In addition to financial savings, the use of open-source software allows for the sharing of future developments between researchers. The simplicity that characterizes the code used to control the most basic robot functions allows for the creation of generic drivers for different programming environments, such as ROS [33] (which has been gaining momentum in recent years).
4. Robot Cost
The robot design is low cost relative to similar robots. Table 2 presents the cost of each of the components required to build the robot's structure and the electronics necessary for wireless control.
Component costs
In addition to the relatively low cost for this scale of robot and its capabilities, the assembly time and knowledge required for the entire setup is not great. Hence, it is reasonable to assume that, with the instructions given here, almost any engineer would be able to build such a robot.
5. Kinematics Analysis
This Section describes in detail the development of the forward and inverse kinematics equations of the robot and presents the robot workspace. In order to define the robot posture, we use a set of coordinate frames as shown in Figure 3 and Figure 5. We define a specific posture of the robot by the configuration vector q

The robot modelling
where vector
Using this modelling of the robot's configuration, we can describe the robot posture in the world coordinate frame.
5.1. Forward Kinematics
The robot forward kinematics equations allows us to calculate the position of the robot footholds (i.e., L for a given set of 12 joint angles and a
To develop the forward kinematics equations, we use rotation and translation matrices combined in homogeneous transformation matrices. We chose to use the zero reference point (ZRP) [6] representation method, although the Denavit-Hartenberg (DH) [3] method can also be applied. In order to calculate the position of one footpad in the world fixed frame (frame 0), we first transform it to the body fixed frame (frame C). This transition includes the linear translation to the
we define
where
The next transformation will be to the leg's first degree of freedom – the scapula joint. We use the following translation matrix:
where for
Now we can describe the rotation of each degree of freedom and the linear translation determined by the lengths of the leg links. The following transformations are shown for a set of angles of a single leg and can be replaced by a set of angles of another leg. A graphical description of the joint angles is shown in Figure 3.
In order to get the final forward kinematics equations, we multiply the above matrices and multiply the result by
The result allows us to calculate the locations of the robot footpad given the location and orientation angles of the robot body and each joint angle. This calculation is repeated for each leg.
5.2. Inverse Kinematics
The inverse kinematics equations allow us to calculate the actuator angles for a given location of the footpad. In this section, we present the development of the inverse kinematics equations for the presented robot. These equations are very useful in search-based foothold planning algorithms, where a specific point on the ground is considered as a future foothold and where we need to evaluate the joint angles of the moving leg. Unlike the forward kinematics, the inverse kinematics' solution is not injective, and there is more than one solution that satisfies the equations. We can describe each leg as a 3-DOF robotic arm and use the existing inverse kinematics equations from the literature [20]:
where
where R represents the rotation part and d represents the translation part. We can calculate the inverse transformation matrix as follows:
Now, we can calculate the desired vector which points to the leg footpad from the origin of frame B (the scapula joint):
By using the inverse kinematics, a foothold-planning algorithm can convert the required foothold location into actuator angles in order to command the robot to move. In addition, the inverse kinematics' calculation can be used to rule out foothold locations that are considered to be kinematically impossible (i.e., if the calculated angles result in a complex number or an angle greater than the robot's physical design limitations).
5.3. The Robot Workspace
The robot motion is divided into two phases: body movement and leg movement. During the body movement phase, all four footpads are stationary and the body workspace comprises the six parameters of the COG vector. During the leg movement phase, the robot body is fixed and the leg's workspace includes all possible locations of a moving leg's footpad, which are the

The robot body workspace
The robot leg workspace is the set of all the possible locations of the robot footpad for a given position and orientation of the robot's body. This workspace can be calculated using the robot kinematics equations. An alternative, more intuitive, method which requires less computing resources is based on investigating the geometry of a leg's joints. The two bottom degrees of freedom of a leg,
where

Leg Workspace in 3D (a), and from a side view (b)

Illustration of the motion capture system
This workspace can be used in order to determine what areas in the ground should be take into account when searching for the footholds' locations. From Figure 7 (b), we can see a maximum stride length of 20 cm while maintaining the body in the presented posture.
6. Experimental Results
Experiments were conducted to demonstrate and verify the design and kinematics computations. We chose the OptiTrack motion capture system by NaturalPoint in order to quantify the results of the experiment. The system consists of 12 cameras radiating infrared light and measuring the reflection from passive markers located on the robot. Information from all the cameras is processed on a computer, which calculates the exact position of each marker. The more cameras that detect the same marker, the greater the accuracy in calculating the position. We present the results of three experiments. The first experiment verifies the motion of the robot leg. The second experiment shows the robot body's manoeuvring capabilities while keeping all four legs' footholds stationary. The final experiment demonstrates an entire walking sequence.
Figure 9 shows how the markers are attached to the robot.

The placement of the markers on the robot
6.1. Leg motion experiment
This experiment examines the performance of the robot legs. The robot moved according to a sequence of commands. The commands changed the three actuators of one leg (
The command sequence and the respective forward kinematics is shown in Table 3.
Leg motion experiment command sequence
where command 0 is the initial state. All commands were sent with an interpolation time of five seconds. The interpolation time comprises the time taken for all the motors to complete the motion as described in Section 3. The results of this experiment are shown in Figure 10. In the figure, the actual path of the footpad is presented while moving between the desired via point of Table 3.

Leg motion experiment results according to the joints angles described in Table 3. The desired footpad locations are marked in red dots and the actual footpad path is the blue curve.
The position error of the footpad with respect to the desired position after each command is shown in Table 4:
Leg motion experiment distance errors
The mean error is 0.4061 cm, which is reasonable considering a marker size of 1 cm.
6.2. Body manoeuvring experiment
This experiment examined the robot body's manoeuvrability. We use the robot inverse kinematics in order to send commands which control the robot configuration but which do not control the actuator angles directly. That is, the desired motion is the body position and orientation movement. The experiment validated the inverse kinematics model and the robot's ability to control all the actuators simultaneously. We divided this experiment into two parts, one for position movement and a second for orientation movement. In the first part of the experiment, part (a), we changed the

Body manoeuvring experiment, part (a) results: body position vs time in (a) and body orientation angles vs time in (b)

Body manoeuvring experiment, part (b) results
As shown in Figure 11(a), the robot completes its task with a maximum position error of 0.6 cm between the desired and actual body positions. We substitute the initial height of the robot from the original z measurements in order to emphasize the movement with respect to the initial position. The reason for the deviations in the x curve is that the commands sent to the robot included the target points for each motor and not the complete motion profile. A possible solution to this problem is to divide the complete path into a set of short movements between points along a desired path. This solution would ensure that the robot's actual path remains close enough to the desired path. Figure 11(b) shows that the robot maintained its body level horizontally as well as maintaining the yaw angle. The mean absolute errors for the roll pitch and yaw angle are
As shown, the robot performs the manoeuvre adequately. The mean absolute errors during the entire manoeuvre for the roll pitch and yaw angles are
6.3. Walking experiment
The last experiment demonstrated the robot's performance during walking. We used the foothold planning algorithm from [5] to generate a set of double steps in which the robot advanced in a straight line over a flat ground surface. A double step consists of one movement of the robot body and then a sequence movement of the two legs. The foothold planning algorithm uses a search-based method to scan all possible steps and a graph search algorithm to plan and select the future steps. This is a free-gait generator rather than a cyclic gait generator. The provision of further details of the gait generator is beyond the scope of this paper and can be found in [5]. The results of the experiment are presented in Figure 13.

Walking experiment results: required an actual path in (a); initial and final positions in (b); and position vs time in (c)
Figure 13(a) presents the required centre of gravity path as received from the foothold planning algorithm and the actual path as recorded with the motion capture system. The robot followed the desired path up to a mean absolute error of 0.39 cm. We observed that the actual path does not form a straight line between the

Walking experiment results. Presenting the support polygons for all four steps in chronological order from (a) to (d).
During the experiment, the power consumption of the robot was measured. The robot consumed 14[W] while standing still and an average of 20[W] while walking, with a peak of 32[W]. The battery is rated as 31.1[Wh]; therefore it can power the robot for more than one hour of continuous walking.
7. Conclusions
We introduced a novel design of a quadruped robot for research purposes. We presented both hardware and software designs as well as a robot kinematics model. Validation experiments were performed and the results show the robot's movement according to a predefined path, with a mean absolute motion error of 0.6 cm linearly and a

The robot
Footnotes
1
SolidWorks is a registered trademark of Dassault Systèmes
2
MATLAB is a registered trademark of The MathWorks, Inc.
8. Acknowledgements
This work was partially supported by the Israeli Ministry of Defence grant no. 8522033, The Pearlstone Centre of Aeronautical Engineering Studies, and the Paul Ivanier Centre for Robotics Research and Production Management.
