There have been multiple types of quadruped robots in varying sizes over the past ten years, namely, MIT Cheetah , Starl ETH , Spot mini , ANYmal , LaikaGo , Minitaur  etc. Most of these works have mainly focused on answering crucial questions on control and hardware design for walking, and have also demonstrated multiple types of functionalities both in simulation and experiments. Despite their impressive results, it is important to note that these robots cost to the tune of minimum $30,000, are expensive to manufacture, and also require advanced sensing and actuation.
There are also quadrupeds that are less resource intensive such as Tekken , Cheetah-cub , Onchila , Mini-cheetah , Aibo , Rhex , Open cat  some of which are open sourced, but not easy to reproduce. In the current state of research in robot locomotion, a beginner usually faces a stiff learning curve to design and fabricate a robust and a reliable quadrupedal walking platform. Crossing this barrier is not only limited by the individual’s capacity but also by the requirement of resources. Thus, a robot which is simpler, modular, affordable, easily repairable, and yet facilitating complex behaviors is largely preferred.
With a view toward realizing state of the art walking controllers in a modular, and a low-cost walking platform, we developed a quadrupedal robot called the Stoch. This manuscript primarily serves as a detailed description of the hardware and software design process and construction of this platform (see Figure 1), which complements the results that were shown in . This hardware features modular central body and a five bar co-axial leg design. Which are fabricated using easily available off the shelf materials like carbon-fiber tubes and custom 3D PLA parts. Carbon fiber tubes, which are strong and light, serve as the structural members and leg links. Similarly, the 3D printed parts, manufactured in-house, act as the joints. The software consists of a real-time trajectory generator, which are then passed as commands to the individual servo drives. The trajectory generator performs reasonably well at control frequencies on many off-the-shelf servos (50 Hz). In addition to realizing robust gaits in the real hardware, the central pattern generator (CPG) based trajectory generator [15, 7, 8] also enables 1. Realization of derived walking gaits like bound, walk, gallop, and turning in hardware with no additional training, and 2. Smooth transitions from one type of gait to another. This is mainly motivated by the various locomotion behaviors realized by [16, 15] in their custom hardware. These various behaviors are then composed together and tele-operated by a remote control device.
The paper is organized as follows: Section II details the design and hardware of Stoch. Section III describes the software architecture, on-board compute platform, actuators, communication interfaces, and the sensory inputs. Section IV contains a detailed description of the control algorithm used. Finally Section V describes the experimental results of Stoch demonstrating multiple types of gaits and the associated transitions.
Ii Mechanical Design
Stoch is a quadrupedal robot (see Figure 1) designed and developed in-house at Indian Institute of Science (IISc), Bangalore, India. The design philosophy behind Stoch is based on modularity, lightweight construction, ease of manufacturing, rapid repair and reproduction.
The robot design can be understood as an assembly of a central body module and four leg modules. Figure 2 shows an exploded view showing all of the modules of Stoch. The leg modules can be used in several types of morphologies as shown in Figure 3. The body consists of carbon fiber (CF) hollow tubes along its length as strong and lightweight structural members. The front and back CF plates along with 3D printed poly lactic acid (PLA) hubs form rigid central frame structure. The body also houses all electronic parts, cable routing and battery power supply. A salient feature of this design is that the leg modules slide and ‘sit’ on CF tubes placed along the body length. Thus, the geometrical distance between front and hind legs can be modified by changing the CF tube lengths or the assembly positions of the leg modules. Similarly, the distance between the left and right legs, which is constrained by the CF plates, can easily be customized. This feature enables user to rapidly play and experiment with the basic geometry of legs and body module.
In this section, first we discuss the overall geometry of the mechanical structure, then focus on its individual components, i.e., body and leg, design. Finally, we describe the actuator and sensor arrangement on the legs.
Ii-a Geometry of Stoch
The Stoch is designed equivalent to the size of a miniature Pinscher dog. There are four identical legs and eight actuators mounted in the robot, which are distributed equally. Each leg has a hip and a knee joint, and the actuators provide flexion/extension in each joint. As shown in Figure 4, the Stoch is long in total, with between front and hind legs. It has a maximal hip height of with legs at maximum stretch, a standing height of , and an overall height of from ground to the top of electronics and cables. The robot has of lateral spacing between left and right leg planes axes, and a maximum width of . The robot weighs around and
with the battery-pack. The estimated static centre of mass (COM) of the given system (in standing configuration similar toFigure 4) is situated below the hip axis.
|total leg length||230 mm|
|leg segment length||120 mm|
|min./max. hip joint||-45/ 45|
|min./max. knee joint||-70/ 70|
|max hip speed||461/s|
|max knee speed||461/s|
|max hip torque||29 kg-cm|
|max knee torque||35 kg-cm|
|motor power (servo)||16 W|
Ii-B Leg Design
Every leg has two degrees of freedom, one each for hip and knee. Detailed view of the leg assembly is shown inFigure 5. The key specifications of leg and actuators are summarized in Table I. The emphasis in the leg design was to keep the inertia of the moving segments minimal. To achieve this, all the actuators and transmissions are mounted to the main body. The leg mechanism is designed as a co-axial five bar linkage. This is beneficial to ensure fast swing motions with minimum leg inertia.
To fabricate the mechanism, the linkages are formed with carbon fiber hollow tubes connected by 3D printed poly lactic acid (PLA) connectors. This arrangement enables us to modify the link lengths with minimal effort. To further reduce the swing leg inertia, we’ve used CF tubes as journal bearings and shaft at pivot joints instead of regular metal ball bearings. This drastically reduces the weight of the robot.
Ii-C Actuation and Sensing Arrangement in Legs
Figure 5 (i) and (ii) depicts the assembly arrangement of servo actuators to the leg linkages and rotary encoders. For the joint actuation we have used standard servo motors (Knee: Robokits High Torque Servo111https://robokits.co.in/, Hip: Kondo HV Servo222https://kondo-robot.com/). The knee actuators are directly coupled with the D printed links, which in turn move the coupler links and eventually the knee joints of the legs. The joint angle sensor (rotary encoder) for knee is connected with the linkage via a laser cut steel gear. Similarly, the hip actuator transfers mechanical power to the hip link via a simple gear train (ratio ), whereas the hip encoder is directly coupled to monitor the hip servo angle via a D printed part.
Iii Electronic System Architecture
In this section, we describe the electronic system architecture in light of the objectives achieved in Stoch. The platform achieved three main objectives using this architecture. First, tele-operation of the robot, which is implemented via SSH over wireless communication (Figure 7). Second, the low-level implementation of the walking controller, which passes on the desired joint configurations as commands to the joint actuators. And third, integrating sensory feedback with the walking controller. The last one is achieved by reading and recording different sensors without experiencing significant delay.
The encoders, servos and other parts selected for this work are readily available, off-the-shelf components. This enabled a quick adoption, rapid prototyping while minimizing the total cost. Also, the library associated with the hardware is readily available on GitHub, reducing the overhead associated with firmware development.
The walking controller operates by changing internal parameters of the Central Pattern Generator (CPG), such as the frequency, phase difference and amplitude. These changes result in generation of different behaviors and motions. In this robot, these parameter changes, are made during the process execution via SSH. We selected the keyboard as the input device for remote operation. This method of control requires continuous process execution, without any blockage. Thus, we have used non-blocking API’s from POSIX, namely, “select” to implement on Linux. Similar features can be obtained in Windows by using multi-threading.
Iii-B Motor actuation
The actuators used in this robot are PWM enabled servo motors. To actuate these servos, we have used Adafruit PWM drivers (16-Channel 12-bit: PCA968), connected with the central compute platform (Raspberry Pi3) over I2C Bus. In this robot, there are two sets of servos (see section II-C). These servos operate at V and V respectively.
|Joint encoder||Bourns EMS22a|
|PWM driver||Adafruit PCA968|
|Computer||Raspberry Pi 3b|
Iii-C Sensory feedback
The sensory inputs contain signals from joint encoders, inertial measurement unit and limit switches. The angular position of each motor shaft is measured by externally coupled absolute magnetic encoders (Bourns EMS22a) at resolution of counts per revolution. Each encoder is read sequentially by the RPi3 via a multi-duplex, SPI Bus. The low-level drivers (in C) are used to pass the values to the primary process (in Python) in real-time using shared memory. In Comparison with other Inter-Process Communication (IPC) like socket, pipe, etc; the information doesn’t go through the kernel, enabling direct access of virtual memory to both processes. This results in a low latency which is vital for controlling the robot. We used the limit switches for self-calibration and failure prevention at the joints. These switches are connected to an analog to digital converter(4 Channel 16 Bit) on the I2C Bus.
The center of mass of the robot, is estimated by the inertial measurement unit (IMU). The states observed by the IMU are three axis acceleration, three axis angular velocity etc. Using sensor fusion, the IMU can also estimate the roll, pitch, yaw of the robot. The IMU, MPU-, is placed close to the geometric center of the chassis and is connected to the I2C bus.
Iv Walking Controller
In this section, we describe the design of the control architecture of Stoch. The controller is based on the use of nonlinear coupled oscillators, called as Central Pattern Generator (CPG) [16, 17, 8]. This approach uses a group of polynomials associated with the coupled oscillators to generate the desired patterns at the end point. We will first describe the methods used to develop the rhythmic patterns using CPG, and then discuss inverse kinematics used to transform these patterns into desired joint angles.
Iv-a Central pattern generator
Central pattern generators (CPGs) are neural networks capable of producing coordinated patterns of rhythmic activity without any rhythmic inputs from sensory feedback or from higher control centers. In this work, the neural network has been replaced with nonlinear coupled differential equations. When a signal is provided with oscillation frequency (), the CPG begins to produce rhythmic signals of a predetermined pattern. The oscillation frequency updates the phases () and the coupling ensures the phase offsets () between the oscillators. This difference in phase offset results in the generation of different types of gaits. The equations for the CPG are given as
where, are the current and target oscillation frequency of the legs, in radian per second. is the phase of the internal pattern generator.
is the vector containing the. is the phase difference between the leg and the first leg. are coupling constants. Equations 1 and (4) represent low pass filter in time domain . These filters ensure there are no discontinuous changes in the variables. The low pass filter in equation 4  is modified such that, periodic signal of any desired frequency can pass through but undesired signal of the high frequency can not. In eqaution 4, are the current and the desired state values and . However, eqation 4 can only be used if sensory feedback is enabled. When sensory feedback is disabled, we directly feed the desired values to the inverse kinematics solver. The constants are used to determine the corner frequency of these filters. is the discrete or event based input provided by the user or the sensors on-board. In this work, the filters are used in places where a discrete signal is added by the user or by some feedback in response to an event.
After the phase () is determined, any function described in form of can be used to create the endpoint behaviour of the leg. We have
and their derivatives are given by
In the above equations, , represent the desired end point position values of the leg from the hip joint of the leg. This scheme can also be used to generate ,
in polar co-ordinates which are used in the reinforcement learning framework. The constant vectors, , , are the weights associated with the basis functions, , . The basis functions can range from kMPs [18, 14], trigonometric functions, Bezier polynomials , time responses of any dynamical system, to even data points. For example, a circular end point trajectory with trigonometric functions and would need a weight . The patterns generated in Cartesian or in polar co-ordinates are then transformed into joint co-ordinates via inverse kinematics.
Iv-B Inverse kinematics
Having obtained the coordinates (either in the form of polar coordinates () or Cartesian coordinates () of end points), we generate the joint angles via inverse kinematics. Figure 8 describes the leg configuration and the variables. If the end points of the robot are described in Cartesian coordinates, then 11-14 are used to determine the joint angle. In case the description is in polar co-ordinate, equation11 can be avoided, since and are directly provided. The inverse kinematics are given by
where, are the hip and knee lengths of the robot.
Since each robot has a different reference frame associated with legs, the joint angles are transformed to obtain motor angles by using
where and are the motor signals generated before transformation to a pulse width modulation (PWM) signal required for motor drivers.
V Experimental Results
In this section, we will describe various strategies undertaken to generate the different types of robot behaviors. First, we discuss the various types of flat ground walking gaits. Next, we describe the abduction free turning, and then finally describe the transitions between these gaits.
V-1 Flat ground walking
On the flat plane, we have introduced different types of gaits, trot, gallop, bound, walk, modified trot and modified trot . We have used the basis function based approach  to store the information about the trajectories in a few constant values. These constant values are stored in the weight matrix (). Using the weights, we can obtain the desired end point trajectories and the velocities. The target end point trajectory for the trot gait is shown in Fig.9. We get
where, are the target x, y coordinates of the leg. is the kinematic motion primitive , which essentially is a polynomial of .
|Gait type||Trot||Walk||Gallop||Bound||Modified Trot 1||Modified Trot 2|
The current model of Stoch, does not contain any abduction. This limits us to realization of abduction free/locked turning. We set the axis (forward-backward) movement of the desired leg to zero, and use
where is the vector containing the turning coefficients and is the target axis position of the leg. To avoid discontinuous changes in the motion, we pass the through a low pass filter, equation 1. This results in a smooth trot-turn transition.
V-3 Gait transition
In this section, we will provide a general methodology for transitioning between the flat-ground walking gaits. In section IV-A, we described the phase offset, , as a constant set of values which can be changed to obtain various gaits. This change can be achieved, on the fly, by passing the desired phase offset through a low pass filter:
where is the desired phase offset of the leg, and is the current phase offset of the leg. This allows for a smooth change in the phase values.
V-a Video Result
Video results of walking experiments on the Stoch are available on https://youtu.be/Wxx9pwwTIL4. Specifically, we show trot (Fig. 10), bound, gallop, walk gaits on the robot. Additionally turning and gait transitions are also shown. Further, the animation and physical assembly is also shown in the video for easy understating of the Stoch design.
This work presents a custom built quadruped robot along with its design, software, control framework and experimental validation on the hardware. Compared to other existing quadruped robots, our platform requires less resource and costs under USD . Several gaits were realized such as walk, trot, gallop, and bound. Additionally, the robot can turn with a small radius via CPG based gait transitions, without the use of abduction. The robot reached a maximum forward speed of m/s. An open-loop controller was used to set the speed and direction in all these experiments. Future work involves increasing the payload, and also incorporate external sensors for closed-loop control of the quadruped.
We acknowledge Ashish Joglekar, Rokesh Laishram and Balachandra Hegde for help in software development, Carbon fibre component manufacturing and PCB design.
-  H.-W. Park, S. Park, and S. Kim, “Variable-speed quadrupedal bounding using impulse planning: Untethered high-speed 3d running of mit cheetah 2,” in Robotics and automation (ICRA), 2015 IEEE international conference on. IEEE, 2015, pp. 5163–5170.
-  M. Hutter, C. Gehring, M. Bloesch, M. A. Hoepflinger, C. D. Remy, and R. Siegwart, “StarlETH: A compliant quadrupedal robot for fast, efficient, and versatile locomotion,” in Adaptive Mobile Robotics. World Scientific, 2012, pp. 483–490.
-  “SpotMini robot,” https://www.bostondynamics.com/spot-mini/.
-  M. Hutter, C. Gehring, D. Jud, A. Lauber, C. D. Bellicoso, V. Tsounis, J. Hwangbo, K. Bodie, P. Fankhauser, M. Bloesch et al., “Anymal-a highly mobile and dynamic quadrupedal robot,” in 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2016, pp. 38–44.
-  “Laikago robot,” http://www.unitree.cc/.
-  H. Kimura and Y. Fukuoka, “Biologically inspired adaptive dynamic walking in outdoor environment using a self-contained quadruped robot:’Tekken2’,” in Intelligent Robots and Systems, 2004.(IROS 2004). Proceedings. 2004 IEEE/RSJ International Conference on, vol. 1. IEEE, 2004, pp. 986–991.
-  A. Spröwitz, A. Tuleu, M. Vespignani, M. Ajallooeian, E. Badri, and A. J. Ijspeert, “Towards dynamic trot gait locomotion: Design, control, and experiments with cheetah-cub, a compliant quadruped robot,” The International Journal of Robotics Research, vol. 32, no. 8, pp. 932–950, 2013.
-  A. T. Sprowitz, A. Tuleu, M. Ajaoolleian, M. Vespignani, R. Moeckel, P. Eckert, M. D’Haene, J. Degrave, A. Nordmann, B. Schrauwen et al., “Oncilla robot: a versatile open-source quadruped research robot with compliant pantograph legs,” Frontiers in Robotics and AI, vol. 5, p. 67, 2018.
-  W. Bosworth, S. Kim, and N. Hogan, “The mit super mini cheetah: A small, low-cost quadrupedal robot for dynamic locomotion,” in Safety, Security, and Rescue Robotics (SSRR), 2015 IEEE International Symposium on. IEEE, 2015, pp. 1–8.
-  “AIBO robot,” https://us.aibo.com/.
-  Rhex, “RHex robot,” https://www.bostondynamics.com/rhex/.
-  A. De and D. E. Koditschek, “Vertical hopper compositions for preflexive and feedback-stabilized quadrupedal bounding, pacing, pronking, and trotting,” The International Journal of Robotics Research, vol. 37, no. 7, pp. 743–778, 2018.
-  “OpenCat robot,” https://www.hackster.io/petoi/opencat-845129.
-  A. Singla, S. Bhattacharya, D. Dholakiya, S. Bhatnagar, A. Ghosal, B. Amrutur, and S. Kolathaya, “Realizing learned quadruped locomotion behaviors through kinematic motion primitives,” arXiv preprint arXiv:1810.03842, 2018.
-  A. T. Sprowitz, A. Tuleu, A. J. Ijspeert et al., “Kinematic primitives for walking and trotting gaits of a quadruped robot with compliant legs,” Frontiers in computational neuroscience, vol. 8, p. 27, 2014.
-  A. J. Ijspeert, “Central pattern generators for locomotion control in animals and robots: a review,” Neural networks, vol. 21, no. 4, pp. 642–653, 2008.
-  M. Ajallooeian, J. van den Kieboom, A. Mukovskiy, M. A. Giese, and A. J. Ijspeert, “A general family of morphed nonlinear phase oscillators with arbitrary limit cycle shape,” Physica D: Nonlinear Phenomena, vol. 263, pp. 41–56, 2013.
-  F. L. Moro, A. Spröwitz, A. Tuleu, M. Vespignani, N. G. Tsagarakis, A. J. Ijspeert, and D. G. Caldwell, “Horse-like walking, trotting, and galloping derived from kinematic motion primitives (kmps) and their application to walk/trot transitions in a compliant quadruped robot,” Biological cybernetics, vol. 107, no. 3, pp. 309–320, 2013.
-  G. A. Castillo, B. Weng, A. Hereid, and W. Zhang, “Reinforcement learning meets hybrid zero dynamics: A case study for RABBIT,” arXiv preprint arXiv:1810.01977, 2018.