Oncilla Robot: A Versatile Open-Source Quadruped Research Robot With Compliant Pantograph Legs

We present Oncilla robot, a novel mobile, quadruped legged locomotion machine. This large-cat sized, 5.1 kg robot is one of a kind of a recent, bioinspired legged robot class designed with the capability of model-free locomotion control. Animal legged locomotion in rough terrain is clearly shaped by sensor feedback systems. Results with Oncilla robot show that agile and versatile locomotion is possible without sensory signals to some extend, and tracking becomes robust when feedback control is added (Ajallooeian, 2015). By incorporating mechanical and control blueprints inspired from animals, and by observing the resulting robot locomotion characteristics, we aim to understand the contribution of individual components. Legged robots have a wide mechanical and control design parameter space, and a unique potential as research tools to investigate principles of biomechanics and legged locomotion control. But the hardware and controller design can be a steep initial hurdle for academic research. To facilitate the easy start and development of legged robots, Oncilla-robot's blueprints are available through open-source. The robot's locomotion capabilities are shown in several scenarios. Specifically, its spring-loaded pantographic leg design compensates for overdetermined body and leg postures, i.e., during turning maneuvers, locomotion outdoors, or while going up and down slopes. The robot's active degree of freedom allow tight and swift direction changes, and turns on the spot. Presented hardware experiments are conducted in an open-loop manner, with little control and computational effort. For more versatile locomotion control, Oncilla-robot can sense leg joint rotations, and leg-trunk forces. Additional sensors can be included for feedback control with an open communication protocol interface. The robot's customized actuators are designed for robust actuation, and efficient locomotion. It trots with a cost of transport of 3.2 J/(Nm), at a speed of 0.63 m s-1 (Froude number 0.25). The robot trots inclined slopes up to 10°, at 0.25 m s-1. The multi-body Webots model of Oncilla robot, and Oncilla robot's extensive software architecture enables users to design and test scenarios in simulation. Controllers can directly be transferred to the real robot. Oncilla robot's blueprints are open-source published (hardware GLP v3, software LGPL v3).


INTRODUCTION
Emerging technologies allow to improve our understanding of legged locomotion, and its underlying principles. We argue that custom-designed, bioinspired legged machines like the presented Oncilla robot have the potential to provide valuable insights into biomechanics and neuromuscular control of animal legged locomotion. We show initial robot locomotion examples in simulation and hardware, directed with minimal control effort.
Technological progress shapes research, for instance traditional dissection tools are being expanded by computer guided imaging. 3D scans provide spatial data of the animal's morphology even in motion (Walker et al., 2014). Advanced computer simulations give insights into complex interactions between muscles, tendons, and skeletal structures during locomotion (Delp et al., 2007). This allows estimating movements, forces and interactions of otherwise hidden and unaccessible structures in animals. With the help of new technologies, it is the goal to find necessary and sufficient biomechanical and neuromuscular control components for legged locomotion, by identifying form and function.
However, mapping morphologies to function is not trivial. Evolutionary byproducts such as spandrels can mask function of structures (Gould and Lewontin, 1979). The animal legged apparatus developed for locomotion-a complex task with hybrid dynamics. Balancing, carrying and accelerating the animal's body requires precise movement coordination through feedback, and redirection of loads. Forces and movements largely differ in swing and stance phase, separated by harsh impacts at landing, and high velocities during toe off (Söhnela et al., 2017).
Our approach includes custom-made, bioinspired legged robot hardware, and its locomotion controller. Oncilla robot allows us to tackle locomotion research from a new perspective, and directly evaluate functional morphologies. With robotic setups we have the freedom to implement and test simplified "blueprints, " mimicking aspects of animals' biomechanics and neuromuscular control. We understand such "blueprints, " as building plans which are transferred from Biology to Robotics, for the purpose of testing and characterizing them. The pantographic leg configuration described by Witte et al. (2003) is an example for a mechanical blueprint, that was transferred from animal biomechanics. It is based on the observation of the mostly parallel orientation of distal and proximal limb segments in three-segmented mammalian legs, during locomotion. Mathematical models of the spinal cord activation i.e., in lampreys, so called "Central Pattern Generators, " are an example for a neuromuscular control blueprint. They were hypothesized and observed in animals, and tested and implemented in robots (Ijspeert et al., 2007).
Robotic implementations can swiftly be altered, i.e., to test effects of scaling, while longitudinal animal studies are significantly more time consuming. Testing features in robot hardware allows one to quantify function; components' states (position, velocity etc.), forces linking components, and internal loads can be measured with dedicated sensors. Signals for locomotion control and sensing are observable, and mostly controlled. In contrast, recording of deep tissue movements and displacements, and their interacting forces in animals is often not feasible. At present recording of animal nerve signals is limited to simpler setups (Daley et al., 2009).
Computer simulated models of legged animals and legged robots forcibly introduce simplifications, compared to real world physics. Several aspects of physics are notably hard to simulate both precisely and efficiently: leg-ground impacts, wobbling masses, damping, compliance and friction (Schmitt and Günther, 2011). Correctly simulating a legged animal or robot walking through soft substrate is difficult (Li et al., 2009;Falkingham and Gatesy, 2014). In comparison, robotic hardware can be a realistic physical (as opposed to numerical) model of an animal-legs and feet are physically interacting with locomotion substrates through contact forces. Still, computer models are immensely insightful, also because they are relatively easy to derive and apply. Here, we derived a computer simulated Oncilla robot model to rapidly test controller parameters, and create locomotion data.
A future iterative robotic approach to legged research can be composed of four steps: (a) implementing blueprints of mechanics and control of legged animals, in a legged robot system, (b) creating locomotion case scenarios with legged robots, (c) collecting and analyzing locomotion data, and eventually (d) implementing alterations to initial blueprints. If successful, improved blueprints will decrease the discrepancy between robot and animal locomotion characteristics. Changes and observed invariants allow insights into underlying aspects of legged locomotion.
From a design and testing perspective, the cyclic iteration works best if tested blueprints can be altered swiftly. Oncilla robot is designed modularly, i.e., its legs and trunk, actuators, sensors, and controllers are relatively easy to replace. Research in legged locomotion progresses iteratively, and fewer researchers are interested in designing entire robotic systems. The Oncilla robot open source project allows researchers to i.e., test subfunctions of a new locomotion controller. Reproducing parts requires a low level of technology; access to a generic 3D printer, and a basic machining workshop. Components such as brushless motors are off-the-shelve items. Printed circuit board layouts and firmware code are included in the project source code. If required, they can be replaced by custom solutions-Oncilla robot's custom interfaces are open sourced.
A novice user requires a legged robot that is easy to start up and run. A robot with a large basin of robust locomotion patterns is therefore beneficial. Ideally, the robot's locomotion characteristic would be sufficiently "docile". At the same time, the robot should have the potential for complex gait scenarios, such as rapid acceleration, turning, and locomotion on slopes.
Oncilla robot features a spring-loaded leg design enabling simplified locomotion control. As a consequence, this class of legged robots including "Bow-leg robot, " "Cheetah-cub robot, " "Bobcat-robot, " and "Ken" (Zeglin, 1999;Narioka et al., 2012;Khoramshahi et al., 2013;Spröwitz et al., 2013) can run and hop with feed-forward (FFW) control and does not require modelbased control or feedback mechanisms, for basic locomotion on flat terrain. These robots run in FFW mode at comparatively low control frequencies: Spröwitz et al. (2013) report RC servo motor control with as little as f = 50 Hz control frequency, also in case of step-down perturbations during higher speed running.
In comparison, robots with leg designs like MIT Cheetah (Seok et al., 2013) or ANYmal (Hutter et al., 2016) actively extend leg joints against gravity. Actively extending legs require dedicated controllers for leg length force control (Hyun et al., 2014).
With Oncilla robot we extend the capabilities of its robot class with its passively, spring extending legs; the robot turns rapidly, with minimal turning radii, walks slopes up and down, and outdoors on natural substrates fully mobile, with low computational effort and without the need for sensory feedback.
The remaining paper is organized as follows. In the next section, we briefly present related work. Section 2 describes the robot's mechanical hardware. Section 3 explains the software architecture of Oncilla robot. Results from hardware and simulation experiments are shown in section 4. We discuss design, results and future directions and provide links to the open-source files in section 5, and conclude in section 6. The Supplementary Material provides further details on robot design, kinematics, and experiments.

MECHANICAL HARDWARE
This section explains Oncilla robot's design, and its actuator design process. Details are provided for its leg design, the active degree of freedom (DOF) for steering, force sensors, chassis design, and electronic circuits.

Physical Robot Dimensions
Oncilla robot has the size and weight of a large house cat ( Table 1). It is 0.4 m long in total, with 0.23 m between front and hind legs, has a maximal hip height of 0.18 m with its legs hanging in-air, a hip standing height of 0.16 m, and an overall height of 0.31 m, from bottom to handle (Figures 1, 2). The robot has 0.14 m of lateral spacing between left and right adduction/abduction axes, and a maximum width of 0.25 m. Total weight is 4.5 kg without, and 5.1 kg with a 4,500 mAh Center of mass (COM) position relative to the robot's geometric center, based on the computer aided design.
lithium polymer battery pack. The trunk was designed with a center of mass (COM) 36 mm below the hip-shoulder axis. Each leg weighs 0.2 kg without, and 0.6 kg including leg angle and leg length actuators.

Actuator Design
Choosing a robust actuator consisting of motor and gearbox is not trivial, when designing robots for agile legged locomotion.
Here we only considered electromagnetic motors, for their ease of use in laboratories. Mobile robots carry their own weight. This includes the power source, i.e., in form of batteries, but also printed circuit boards (PCB), actuators, chassis, and sensors. To reduce power consumption and to increase agility and load carrying capability, low weight and efficient actuators are beneficial. At least two DOF per leg are required for versatile legged locomotion. The leg length (LL) DOF inserts forces to maintain vertical posture. This LL DOF is also used for leg flexion during swing phase. The sagittal leg angle (LA) DOF supports movements and torques in fore-aft direction, and retracts and protracts the leg. Legged robot locomotion is a harsh application for electrical motors. Oscillating locomotion patterns at high cycle frequencies lead to high velocities in both directions and at high peak torques. Those present "external loads." Motor and gearbox combinations lead to additional "internal loads, " and can largely exceed external, required loads (Roos et al., 2006). This effect showed strongly with Cheetah-cub robot, a small quadruped robot actuated by high-geared RC servo motors. RC servo motors would work well for 1 Hz motion frequencies. However at 4 Hz motion frequencies and larger amplitudes, the over 300 : 1 gearbox ratio led to overheating problems. Only brief experiments with cooldown phases were possible in a repeatable manner .  (1), the brushless leg length (LL) motors are aligned coaxially with the hip axis (2). A four bar mechanism (3) adducts and abducts (AA joint) the leg, and is actuated by a RC servo motor (4). The parallel leg spring (5) allows the pantograph leg to rotate its distal leg joint under load, the leg's diagonal spring (6) acts as the gravity compensating spring. Robot trunk is (7). (8) shows the vertical force sensor of the robot, (9) indicates the incremental encoder, mounted at the rear end of each brushless motor. LA motor actuates the leg through a spur gear pairing, gear ratio 84 : 1 (10), LL motor is geared down with a custom planetary gearbox, gear ratio 56 : 1 (11). (12) shows the hind leg, and (13) the front leg, each pointer indicating the leg's l 2 segment.
FIGURE 2 | Oncilla robot: (A) frontal, (B) side view of a computer aided design, with measures for the robot's hip height during standing, its overall height, width and length, and its lateral and fore-aft distance between hip and shoulder joints.
To improve actuation compared to Cheetah-cub robot, we simulated external load case scenarios for LL and LA actuator, based on a simplified foot locus. We assumed cycle frequencies between 0.5 and 3.5 Hz, calculated for a trotting quadruped with Oncilla robot's dimensions. This external load case data was piped through an actuator optimization framework (Roos et al., 2006), creating a simplified-load dynamical motor model. From this, we chose gearbox ratios in LL (56 : 1) and LA (84 : 1) direction, for a given brushless motor. Details for the external and internal load case simulation setup are provided in supplementary documentation. With an estimated 80 % effective stride length, the modeled robot's cost of transport was FIGURE 3 | Schematic presentation of Oncilla robot's foot locus movement, created for the simplified-load dynamic-motor (SLDM) model scenario. The SLDM model was applied in the robot's pre-design phase, to estimate required motor and gearbox characteristics. This foot-locus profile was used to calculate leg length (LL, 2) and (LA, 1) loads, for trot gait. The diagonal, gravity compensating leg spring (red, 3) is compressed by flexing the leg through a cable mechanism. Load dependent displacement of the parallel spring (4) during stance phase was ignored in the SLDM model. calculated (Tucker, 1970). Results are shown in Figure 7. The model predicts an asymptotically declining COT, with 7.8 J/(Nm) at a low speed of 0.05 m s −1 , a lowest COT of 2.4 J/(Nm) at 0.41 m s −1 , and a slightly increasing COT at higher speeds [2.7 J/(Nm) at 0.71 m s −1 ]. We later recorded the hardware robot's instantaneous power during locomotion, which shows a good match. While underestimating the hardware COT by about 25 %, the simplified-load model did qualitatively predict the asymptotically declining COT characteristics of the hardware robot.

Leg and Foot Design
Oncilla robot's leg design is a continuation of Cheetah-cub robot's. One active DOF was added for adduction/abduction ("AA joint"), to give the robot steering capabilities. A set of springs with stiffness 5.8 N/mm extends the pantograph leg (red "diagonal spring, " Figure 3). One pantograph-segment is replaced with a tensile spring (blue "parallel spring, " stiffness k = 7.4 N/mm). This spring allows flexion of the distal leg segment under load. The leg extends by 7 cm, from its shortest length i.e., during mid-swing, to a fully extended leg length of 18 cm in air. A short foot is mounted, spring tensioned by a torsion spring (k = 1.21 Nmm/ • ). Absolute position encoders are placed at hip axes, and two leg joints (Supplementary Material, Figure S7, q 0 , q 1 , q 2 ). The difference between angles q 1 and q 2 indicates the external load torque acting at q 2 , i.e., this joint sensor also acts as analog contact sensor.

Leg Length and Leg Angle Actuation
The robot was designed with mechanical improvements in mind compared to Cheetah-cub robot: increasing load carrying capabilities, incorporating an additional DOF per leg for efficient and fast turning, adding multiple modes of sensing, and adding batteries and on-board power for mobile application. Each additional feature increased the weight, from a 1.1 kg Cheetahcub robot to a 5.1 kg Oncilla robot. For Oncilla robot's larger weight, a stiffer leg spring was mounted, which in turn required a higher-torque actuator for the leg flexing mechanism. The LL actuator is mounted serially to the leg angle actuator, and shortens the leg through a cable (Figure 3). This design has positive consequences: (a) The LL actuator is decoupled from external forces, such as sudden impacts. Hence, the mounted gearbox requires a lower safety rating, and can be designed with a lower module gear design. (b) During stance phase, parallel leg springs act passively, i.e., the design is a close approximation of the mechanism underlying the spring loaded inverted pendulum (Blickhan, 1989, SLIP template). The sagittal leg angle actuator is directly attached to the proximal leg segment. The motor's long and narrow shape blocked mounting left and right leg motors in line. Instead we applied a non-symmetrical actuator placement, with legs relatively close to each other (0.14 m, Figure 2 and Figure S6). The short distance leads to a short moment arm i.e., for diagonally touching legs, and is meant to reduce rolling motions. Leg angle motor and hip axis are connected by a large module spur gear (Figure 2). Relative encoders are directly mounted to both brushless motor axes. One absolute encoder is mounted at the main LA axis. Incremental motor encoders support precise motor control, and absolute encoders read leg segment positions, and leg spring loading.

Hip Adduction and Abduction Joint
The added hip adduction and abduction (AA) actuation was installed for efficient turning. The chosen AA actuator is a strong, position controlled RC servo motor (Kondo KRS 2350 ICS). It was selected for its compact design, high holding torque, and standardized control interface. The servo horn connects through a four bar mechanism with the leg, with a movement range of ±8 • (Figure 2).

Force Sensors
Custom-made, two-axis force sensors were implemented proximally, within the AA suspension between trunk and legs (, Figure 1). Force sensors were designed based on double cantilever bending beams, with foil strain sensing resistors in full bridge configuration. Sensors measure forces in vertical and fore-aft direction, in the trunk's coordinate system. Oncilla robot's force sensors were not utilized for the gaits shown in this work. Instead, all gaits shown are generated in feed-forward mode. Force sensing is however necessary for either model-based control based on leg loading information, or non-model based controllers with i.e., reflex-like feedback (Righetti and Ijspeert, 2008). Because similar locomotion experiments are planned with Oncilla robot, custom designed force sensors are included here.
We considered two mounting places: distally, i.e., as feet, or proximally, between the robot's trunk and legs, as finally chosen. When mounting force sensors distally, almost no effects from unsprung masses are measured, but direct contacts between leg and ground. Consequently, the resulting force signal requires less noise filtering. However, distally and foot-mounted sensors rotate with the foot frame. In case the direction of force is of interest for control, the sensor's orientation should be recalculated through the serial chain of trunk, leg segments, and foot sensor. Mechanically, a distal sensor placement moves the leg's center of mass further distally, especially for larger and more complex sensors. It also limits mounting spring-loaded feet. To cope with harsh touch down impacts, a miniaturized but also robust sensor design is required.
In comparison, proximal force sensor mounts are relatively independent from leg and foot design. In our case sufficient mounting space was available proximally. Standard-sized, strain gage-based sensors were chosen and implemented. Drawbacks exists; proximally sensed force signals are influenced by mass and inertia of the moving leg, and data post-processing is required. Latter will introduce sensor signal delays. Such delays can present an obstacle especially for fast loop locomotion controllers. Proximal force sensors require no recalculation of the sensor's orientation, as they are fixed in the trunk frame.

Electronics and PCB Mounting
Oncilla robot carries its actuators and sensors, a battery pack, and PCBs for motor control, power supply, and communication. Brushless motor driver boards were custom designed, and each of four boards provides control and power for two brushless motors. One board weighs 0.15 kg, and all are mounted low, at the robot's geometric center. This placement helps keeping the robot's COM below the virtual hip-shoulder axis-the robot's trunk "hangs" in-between. The remaining PCBs are placed at the front of the robot (RB-110, main computing and communication), and at the rear end (power supply), for easy access. An inertia measurement unit (MicroStrain 3DM-GX3-35 IMU) is mounted above the motor driver boards. Further details on the electronic layout, components, operation system are available in the Supplementary Material (i.e., Figure S9).

SOFTWARE
In this section we describe software related concepts developed for the Oncilla robot; namely the communication bus connecting main control boards and periphery, the motor controller, Oncilla robot's software architecture, and the simulated Oncilla robot model in Webots.

Communication Layer and Protocol
Communication between main electronic modules is performed over a RS-485 physical layer, organized in a master/slave pointto-multipoint half-duplex configuration (Figure 4). The data link and network layer on the bus is implemented through a custom Simple Binary Communication Protocol (SBCP). Latter implementation is an extension of the Bioloid Dynamixel Communication Protocol version 1 (Robotis Ltd., Co, 2018). The main modification is the change of the two byte packet preamble (value 0xFFFF). This preamble was separated; one single byte preamble (0XFF), and a ClassID byte to designate the device type we want to address, i.e., the motor driver board, power board, or master control board. By reserving the class value for Bioloid devices, Oncilla robot's hardware and driver are capable of directly incorporating these.
A major challenge in the SBCP design was the high communication bandwidth requirement. We initially aimed at a 1 kHz control loop on the embedded computer level, this translates to a RS-485 baud rate of 3.3 Mbps. Recently such high speed UARTs became available in embedded computers (< 12 Mbps at the moment), through an USB to serial Integrated Circuit (IC). However, USB bus communication is scheduled by 1 ms frame sizes, and a naive bus implementation would be limited to reach a device every 2 ms. Instead, we implemented a bus control data flow in a dedicated device (SBCP master board) controlled by a dsPIC33FJ128MC802 Digital Signal Processor (DSP), mounted after the USB to serial IC. This SBCP master board is able to: a) Handle a group of up to 8 combined packets sent over a full duplex UART connection. b) Manage communication over the half duplex RS-485 bus with a latency of 12 µs and maximal jitter of 2.2 µs. c) Detect slave timeouts and react accordingly with user customizable delays. To reduce jitter and latency to a minimum, we utilized many optimization features of the dsPIC33FJ processor family such as Direct Memory Access (DMA), reduction of interruption stress on the processor, and anticipated packet precomputation and pre-buffering to reduce latency between packet responses. All implementation details are abstracted by a reusable library, SBCP-uc 4. This new open source library enables fast development of slave device SBCP interfaces for this processor family.

Motor Control
The custom designed motor driver boards implement a Proportional-Integral-Derivative (PID) controller for two brushless motors on a dsPIC33JF128MC804 DSP. It controls two A3930 motor driver ICs which are used to drive a three phase inverter made of six IRFR48Z MOSFETs. These ICs are able to limit the motor winding current. DSP PID controller parameters were hand tuned. In order to reduce motor jitter during position tracking, a velocity profile interpolation is implemented on the motor driver DSPs. The user sets the desired tracking frequency, and the tracking velocity is then computed on-board. Initially we observed trajectory tracking losses every several seconds. We found the cause in a combination of communication jitter and real-time clock frequency mismatch. Tested RB-110 boards had crystal frequency deviations of up to +0.3 %, from their standard frequency. As a workaround, we implemented precise buffering and real-time clock re-synchronization heuristics on the motor driver DSP. The maximum tracking frequency is 500 Hz, half of the DSP internal control loop (1 kHz).

Software Architecture
The software architecture of Oncilla robot is based on two primary design decisions tied to the requirements of open research projects (Nordmann et al., 2013): (a) It provides a common interface for the simulator and for the hardware. This allows for easy and fast transition of experiments between simulation and real-world experiments. (b) It provides a local interface for fast control loops running on the embedded PC, as well as a remote interface to allow more complex applications to control the robot over the network. Figure 5 shows the software architecture that exposes the abstracted interface for both simulation and hardware at different application programming interface (API) levels according to application requirements. FIGURE 4 | Schematics of Oncilla robot's electronics and communication network. Thick lines depict power supply for brushless motors (solid red), servo motors (red dotted), and logic (blue). Thin lines correspond to communication buses. All four legs feature: two brushless motors (M 1 , M 2 ), one servo motor (S 0 ), three absolute magnetic encoders (ME 1 , ME 2 , ME 3 ), three strain sensor conversion channels (F i , two are used).

Simulation and Robot Interface
One of the main design goals was to implement a common abstraction between hardware and simulation, with binary compatibility, to facilitate an easy transfer between hardware and simulation. The abstraction also allows to exchange the currently Webots-based (Michel, 2004) simulation back end. Here we chose Webots software as our multi-body simulation software for Oncilla robot. Since the lowest API level 0 is implemented for the simulation and the hardware back end, applications implemented against any of the API level 0-2 can be switched transparently between simulation and hardware ( Figure 5). By providing a common abstracted interface for both simulation and hardware, it enables fast and easy transfer of experiments between these two domains. It is also possible to replay real experiment recordings (e.g., joint angles) in simulation, and vice-versa.

Local and Remote Interface
The Oncilla interface is accessible through a local C++ interface (API levels 0 and 1, Figure 5) and remotely via the opensource middleware for extended language and tool support (API level 2). The low-level sensors and actuators are locally accessible through a C++ interface, using multiple inheritance to expose the node taxonomy. The local interface enables lightweight applications with fast sensor feedback running on the embedded PC without dealing with network latency. The Oncilla interface is also remotely available by the open-source middleware Robotics Service Bus (RSB) with C++, Java, Python, and Common Lisp bindings and therefore allows applications in all four languages (Wienke and Wrede, 2011). This enables extended tool support, e.g., external logging, monitoring and recording of experiments. It supports more complex and computationally expensive applications to run on distributed FIGURE 5 | Schematic presentation of the three-layered Oncilla application programming interface (API). API levels 0-1 for local access, API level 2 for extended language and tool support over the network.
PCs and control of the robot over the network. This was successfully applied and demonstrated in experiments that were specified in domain-specific languages. The experimental source code was automatically generated, as well as machine learning applications that can not run on the embedded PC due to resource limitations (Nordmann et al., 2013).

Webots Model of Oncilla Robot
A simulated model of Oncilla robot was created in Webots (Michel, 2004). It is based on the mechanical properties extracted from Oncilla robot's computer aided design (CAD) model, i.e., weight, center of mass, inertia, link dimension, and spring constant. The motivation to use a physics engine intended for games such as Open Dynamic Engine (ODE, physics engine of Webots) is a balance between simulation speed and required simulation accuracy. Internal kinematic loops in Oncilla robot's pantograph leg, and its asymmetric actuation can be expressed as a constraint in the underlying Linear Complementary Problem (LCP). There is a drawback to this approach; Open Dynamic Engine favors stability over accuracy, which results in a poor constraint resolution. Likely, such a simulator is well suited for fast prototyping, but less suited for on-board, model-based control. We used the default Webots actuator model for the proximal joints (hip and shoulder). This model applies a PID controller, with a maximum output velocity and torque limited by the theoretical motor limits, i.e., a maximum torque of 53.5 mNm · 84 = 4.5 Nm and a maximum speed of 16,300 rmp /60 s · 2 · pi/84 = 20.3 rad/s (53.5 mNm constant motor torque, overall gear ratio n = 84, 16,300 rpm no-load motor speed). For the leg's flexion and extension DOF we are directly manipulating the LCP constraint to control the mechanical stop of the diagonal spring. Since there is no easy way to specify the maximum torque or linear force in ODE to satisfy a given constraint, we transformed this force constraint into a velocity constraint using a linear motor model with internal resistance. We simplified and assumed that the motor torque required for actuating the leg length cable was caused by the compressive force of the diagonal spring. In reality, this torque is an upper bound since external forces could induce additional leg flexion. We further limited the maximum speed at which motors move to the mechanical stop constraint for the next simulation step, proportionally to the instantaneous torque. This limit is ranging from maximum speed with no torque required, to zero speed at maximum motor torque requested. The resulting model corresponds to a simple, linear motor model. Finally an implementation of the C++ interface level 0 back end was developed. It provides the user with the ability to use the same API to seamlessly switch control between either the real hardware or the simulated robot.

EXPERIMENTS AND EXPERIMENTAL RESULTS
This section describes experimental results with the hardware Oncilla robot utilizing the here described open-loop controller for straight level locomotion indoors, locomotion descending and ascending slopes, and turning strategies with and without AA joints. Links to videos of Oncilla robot locomotion are provided in Table S1 . Further, we provide experimental results with the simulated Oncilla robot running in Webots. Advanced experiments with Oncilla robot's closed loop control framework are documented in Ajallooeian (2015).

CPG Controller for Straight Locomotion
For the robot's locomotion control, we applied morphed oscillators (Ajallooeian et al., 2013c), to implement a Central Pattern Generator model (Ijspeert, 2008). Morphed oscillators are nonlinear oscillators which can encode arbitrary limit cycles defined as phase-dependent functions. Given a desired joint trajectory, a morphed oscillator can be implemented to encode this trajectory as a stable limit cycle. This provides a smooth trajectory generator with the capability of feedback integration. A morphed oscillator utilizes a simple oscillator as base and morphs it to obtain the desired limit cycle behavior. Here we use a unit radius amplitude controlled oscillators as base:θ where θ i , Ω i and r i are the phase, the coupling dynamics, and the radial output of the ith oscillator, respectively. γ is the rate at which the dynamics converge to the limit cycle, ω is the locomotion frequency multiplied by 2π, and c ij and φ ij are the coupling strength and phase difference between the ith and jth oscillator. The phase difference is exploited to implement interjoint coordination. f i (θ ) defines the shape of the limit cycle of the ith oscillator and f ′ i (θ ) = ∂f i (θ )/∂θ . ξ i is the additive feedback. It can be designed through strategies explained in Ajallooeian et al. (2013b,c). r i , the time-integration ofṙ i , is the joint angle reference for the ith DOF.
To design locomotion gaits, we define foot trajectories with respect to the hip frame, similar to Maufroy et al. (2010). We use simplified closed-form inverse kinematics to convert those to joint trajectories. These joint trajectories define f i (.) functions. The definition of φ ij is gait dependent, for example for a trot gait φ ij = π for adjacent hips, and φ ij = 0 for diagonal hips. Finally, c ij = 5 for all the oscillators. We applied solely openloop gaits in this work. However, Oncilla robot's hardware and software architecture allows to utilize the robot's internal sensors and apply closed-loop control, i.e., with reflexes and posture control (Ajallooeian, 2015). Figure 6 shows experimental data of Oncilla robot trotting forward at an average speed of 0.55 m/s (Fr = 0.19), on level terrain, on a standard laboratory surface and with the CPG controller described in the previous section, in openloop mode. Kinematic data was recorded at 240 Hz with a motion capture system (Naturalpoint, Inc., 2011). Position and velocity data of the robot are shown, ordered by its leftright, fore-aft, and its up-down direction. The robot's center of mass (COM) oscillated vertically about ±5 mm, left-right velocity stayed in the range of ±0.05 m/s. Peak forward speed of this recording was 0.78 m/s. The recorded roll angle during trotting stayed symmetrically around 0 ± 0.02 rad (0 • ±1.2 • ), the pitch angle of the robot oscillated around 0.06 ± 0.04 rad (3.4 • ± 2.3 • ).

Level Trotting
In further tests, Oncilla robot's best forward trotting speed at 3.5 Hz was v = 0.63 m/s. This is equivalent to 2.7 body lengths per second, with a body length of 0.23 m (shoulder-tohip distance, 2). The best average speed backwards was 0.78 m/s (3.4 BL/s), at 4 Hz locomotion frequency. Backwards trotting with Oncilla robot showed less slippage, leading to a larger effective stride length. Forward locomotion frequencies above 3.5 Hz yielded no speed gain, due to slippage. Links to videos of the robot trotting both indoors and outdoors (gravel, step-down, flat terrain) are provided in Table S1.
Cost of transport (COT) was measured on the tethered robot (m = 4.5 kg). Stand-by power consumption with no actuator movement was subtracted from all runs (19.6 W), the remaining power consumption (P) was used to calculate the cost of transport (Tucker, 1970) Figure 7 displays recordings for speed and cost of transport (COT) for the simplified modeled ("SLDM, " section 2.2) and the hardware ("real") Oncilla robot, during forward (square markers) and backward (round markers) trotting locomotion, over 5 tested speeds. At very low speed (0.07 m/s) the robot trotted forward with a high COT of 20.4 J/(Nm). It reached its best forward COT at its maximum recorded speed on level terrain: 0.63 m/s with a COT of 3.2 J/(Nm). Backwards locomotion was more efficient at low speed, with a COT of 9.6 J/(Nm) at Fr = 0.01. At higher backwards speed (0.63 m/s) the robot trotted with a COT of 3.8 J/(Nm). Figure 7 shows the SLDM model underestimates the real robot's COT. Considering its simplicity, the SLDM model does approximate the hardware robot's COT well, with 2.8 J/(Nm) at 0.71 m/s. The model also qualitatively captures the asymptotic decrease of COT over speed. Table 2 illustrates results for locomotion on inclined surfaces, and Figure 8 depicts a slope descending locomotion in forward direction. All slope experiments were conducted without changes to the standard level-trotting locomotion controller, or changes to the hardware. This allows better comparison between level and slope trotting, although adapting the foot friction and gait patterns, and applying closed loop control would improve the robot's speed (Ajallooeian et al., 2013b). For the experiment documented in Table 2, Oncilla robot trotted forward and backward, level up and down slopes up to 10 • .

Slope Up and Down Locomotion
For inclinations of more than 4 • , the robot could only climb slopes when going backwards. The highest inclination climbing was recorded at 10 • , with the robot going backwards at 0.25 m/s, at 0.4 m/s commanded speed. The robot trotted forward onto slopes of 4 • , with a speed of 0.15 m/s. Down, the robot kept the commanded speed of 0.4 m/s when pointed forward. Its speed increased by 5 % when going down backwards (0.42 m/s). From video footage we observed that runs with strong speed deviations coincided with strong robot feet slippage.

Turning Maneuvers
We utilized two strategies to implement turning. For the first method (adductor/abductor amplification: "AA-amp"), a sine-wave was embedded into the oscillator nodes controlling the adduction and abduction joints. Turning was achieved by setting the amplitude of the fore and hind AA joints (a l,AA ) with opposite signs, proportional to the desired turning rate ( ψ yaw,des ). In AA-amp, turning time is only a variable of AA amplitude. f l,AA = a l,AA sin(θ l,AA ) l = 1..4 (4) a l,AA = λ ψ yaw,des (5) For the second method (asymmetrically shortening stride length: "ASL turning"), step length between the left and right leg was modified in order to implement turning, without the use of AA joints. We implemented a turning strategy typically used for twowheeled mobile robots; the step length was shortened for the legs on one side of the body, to turn in the same direction. The robot turns in-place if step lengths are equal, but with opposing signs.
a l,asym is the step length amplifier, for leg l, and ̟ is the turning factor. This approach produced a small amount of slippage because the ground-contacting legs (diagonal pair of legs, during trot gait) are not on the same axis. Note that in this approach the turning time is a variable of both the commanded forward velocity and the turning factor.
AA amplification was used for most of the turning cases, however fast turning with this method resulted in considerably larger forces at AA joints. The ASL method was mostly used to turn when the ground was uneven. This method does not depend on lateral foot movement, and therefore poses no danger of sideways stumbling against obstacles. Quantitative results from experiments with these two turning strategies are provided in Table 3. They show that AA-amp allows to turn on the spot,  taking 10 s for a full turn. The AA strategy leads to small speed losses during turning, between 20 and 30 %. AA-amp turning radius was between 0.23 and 0.46 m and depended on turning speed. In comparison, the ASL method showed higher speed losses at turning. The best parameter configuration led to a 52 % speed loss, at a turning radius of 0.5 m. The smallest ASL turning radius recorded was 0.03 m. Turning maneuvers, including on-spot turning, are available as Supplementary Videos (Table S1).

Leg and Force Sensor Characterization
The recorded sensor data of the robot's proximal, trunk-mounted force sensors shows mixed results (Figure 9). Especially the horizontal force signal is sensitive to parasitic stresses and strains of the mounting brackets, caused by forces between legs and trunk. To keep its weight low, the robot is designed from lower stiffness materials such as 3D printed plastic. As a consequence, the AA suspension bracket deflects under load, and influences forces sensor readings. In the horizontal force signal, this appears as high-frequency noise. The robot's vertical force sensor showed good signal quality. After calibration and postprocessing, vertical reaction forces can be extracted (Figure 9), which can be utilized for future feedback-based controllers. Stance phase timing, and to some extend leg loading can be estimated by observing the difference of leg joint deflection between knee joints, and spring loaded ankle joints (p knee − p ankle ). Figure 10 shows the resulting angular signal, with joints being charged periodically at each stance phase. If required, this angular difference signal can be multiplied by the ankle joint stiffness, creating a source for ankle joint torque sensory feedback (not shown here). Importantly, this method is comparatively cheap, both from a hardware and computational perspective. It requires no additional hardware sensing framework, while providing joint angular, stance timing, and loading information.

Oncilla Webots Simulation
The Webots (Michel, 2004) simulated Oncilla robot allows one to test control algorithms and locomotion scenarios without access to the real hardware. The controller can then be transferred to the robot, with the help of Oncilla robot's software architecture. Certain limitations for a direct transfer of control parameters exist ("one-to-one transfer") because of the "reality gap" between simulated and real robot, those are also explained in the following.
We implemented a Webots gait demonstration with the following parameters: locomotion frequency f = 3.5 Hz, desired step length of 12 cm, fore and hind touch down angle around 2.85 rad. To maximize the available leg retraction, a foot lift-up height of 4 cm was set. The virtual, commanded duty factor was 0.49, the observed effective duty factor 0.52 and 0.58 for fore and hindlimb, respectively. Remaining control parameters were optimized with a PSO framework (Kennedy and Eberhart, 1995) to maximize covered distance over a 15 s time interval, after a 5 s time window to reach steady-state. Snapshots of the Webots Oncilla robot trotting are shown in Figure 11, the corresponding video link is given in Table S1 of the Supplementary Material.
From results we recognize the relatively large speed gap for forward locomotion between hardware and Webots simulation at equal locomotion frequencies (Figures 6, 12, 3.5 Hz). The hardware robot reached a maximum forward speed of 0.63 m/s, with 0.09 m effective stride length. The Webots model reached a forward speed of 0.98 m/s, with 0.14 m effective stride length. The Webots robot's COM oscillated ±2 mm vertically. The simulated robot showed roll angle oscillating around 0 rad ± 0.015 rad, and pitch angles oscillating around −0.03 rad ± 0.015 rad.
Further analysis of the foot locus shows the optimization framework increased the model robot's speed by making precise FIGURE 8 | Hardware experiment: snapshots of Oncilla robot descending a slope in forward direction. Further tests were performed with the robot going up the slope, and by letting the robot climbing and descending during backwards locomotion. At steeper slopes, Oncilla robot showed excessive slippage when climbing the slope head on ( Table 2). Generally, the robot performed better when locomoting backwards. Snapshots here are flipped horizontally, for reading convenience.  use of the robot's toe segment ( Figure S1). This increased effective stride by 15 %, from 0.12 m to 0.14 m. In hardware, we observed a decrease of effective stride length, compared to the commended stride length. At frequencies above 3.5 Hz the hardware robot started slipping, and the effective stride length reduced to 0.09 m. The gap between simulation and real-hardware speed makes it hard to one-to-one transfer control parameters for openloop gaits. However, in parallel to this work, Oncilla robot's Webots model was successfully applied to prototype a closed loop controller (Ajallooeian et al., 2013a;Ajallooeian, 2015). The transfer of the closed-loop controller onto the hardware was done with minimal effort, and showed a better performance matching compared to the open-loop parameter transfer shown here. Oncilla robot's adduction/abduction (AA) joints permit fast turning maneuvers, with smaller turning radii compared to turning maneuvers utilizing only leg angle and leg length joints. Utilizing AA joints enables turning on the spot, with 10 s for a full turn. Furthermore, AA turning allows the robot to turn while mostly maintaining the commanded speed, i.e., the robot would lose as little as 20 % speed while turning on a radius of 0.46 m. Oncilla robot showed best cost of transport (COT) at a locomotion speed of 0.63 m s −1 , with COT = 3.2 J/(Nm). A set of sensors is available to monitor the robot's posture, ground contacts, and trunk-leg reaction forces for feedback control. A high bandwidth, real-time (500 Hz) network allows communication between the robot's electronic boards. The robot's main controller runs at 200 Hz in real time. The robot's software architecture allows to transparently control the robot either onboard, or remotely, with multiple programming interface options. It further allows to control hardware and Webots simulation with the same controller architecture. Oncilla robot's multibody dynamics simulation in Webots can be used for fast prototyping controller architectures.

DISCUSSION
Oncilla robot incorporates several features of Cheetah-cub robot . We implemented additional turning capabilities through Oncilla robot's AA DOF, with a set of RC servo motors rotating the robot's leg in an axis parallel to the Recorded are hind right (HR) and left front (LF) legs. Vertical forces F ver,LF : dark blue line, F ver,HR : light blue line. Horizontal forces F hor,LF : orange line, F hor,HR : red line. The hardware robot gait is a 2.5 Hz trot, the simulated robot trotted at 3.5 Hz. Hardware data was post-processed by an offset correction, and a 18 Hz low pass filter. The hardware experiment indicates vertical forces around 0.5 BW. Time-wise integration of horizontal forces over stance phase would be zero at constant velocity trotting. Hardware recorded force data however shows in-sum negative impulse i.e., the data indicates a decelerating robot, while the actual robot was trotting at quasi continuous speed. We assume that offsets are created by internally deflected mounting brackets, around the horizontal force sensors. Positive and negative components of horizontal forces extracted from Webots are about equal.
FIGURE 10 | Hardware experiment. The difference between knee and ankle joint position (p knee − p ankle ) is plotted, for the front left (blue line) and a hind left (red line) leg. Stance phases of the front leg are shown with a gray background, white background indicates the swing phase. Leg loading information is imperfect, and joint friction leads to delayed and damped joint movements. This overestimates loading contact times, but can be filtered. The here shown data is not filtered.
robot's rolling axis. Due to the nature of serial joints, the entire leg structure and its actuators are rotated by the AA joint. This worked satisfactorily, for the shown examples. In case of harsh perturbations or for agile side stepping motions, a more powerful AA joint will become necessary.
Oncilla robot's spring-loaded, pantograph legs performed well for level locomotion indoors and outdoors, slope trotting upwards and downwards, turning during locomotion, and turning on the spot. The leg's intrinsic compliance resolves overdetermined kinematic loops, and all experiments could be performed open-loop. Closed-loop control with Oncilla robot is possible for unstructured terrain (Ajallooeian et al., 2013b;Ajallooeian, 2015). The current design has a limitation which we are planning to resolve in the future: the leg extends only by releasing its charged extensor springs. For maneuvers demanding higher leg power, such as jumping or leaping, an additional actuator, or a redesign of the robot's flexor actuator into a flexor-extensor actuator will become necessary.
One serious problem with RC servo actuated robots is actuator saturation. At combined loads of high speed and torque, these actuators heat up above their thermal dissipation capabilities and required regular cool-down stops as with Cheetah-cub robot . Hence, Oncilla robot's LL and LA actuators were designed for a low cost of transport, and for sufficient thermal capacities through larger, brushless motors, and optimized gearbox ratios. This lowers the robot's relative power intake, and allows to run it without exceeding handwarm motor temperatures, at high load and up to 4 Hz cycle frequency. The relatively low COT allows the robot to run tetherfree up to 30 min with a 4500 mAh lithium polymer battery. In open-loop mode, good speed can be achieved, i.e., 0.63 m s −1 (Fr = 0.25). Optimizing locomotion control parameters, and introducing feedback will likely yield higher robot speed. We expect that continuous progress with off-the-shelf components will further reduce robot weight and increase robot performance: more compact, powerful, brushless motors of different form factors are becoming available (De and Koditschek, 2015), together with compact, high-power, four-quadrant brushless motor controllers (Vedder, 2018). FIGURE 11 | Snapshots show Oncilla robot simulated in Webots, with the robot's heading to the right. The robot trots with an average speed of 0.98 m s −1 , at locomotion frequency 3.5 Hz. The commanded duty factor is 0.49, the observed duty factor is 0.52 and 0.58 for front and hind legs, respectively. The commanded step length was 0.12 m, the observed step length 0.14 m. For this run, the robot accelerated from its still standing position, without controlled transition. The corresponding video shows the acceleration as short trunk pitching (link in Table S1).
FIGURE 12 | Experiment in Webots. Results are plotted same style as hardware results in Figure 6. The simulated robot's center of mass (COM) position and velocity are shown over time, for a cycle frequency of 3.5 Hz. Shown are instantaneous COM position (dashed red) and velocity (full, black line) components sorted by their left-right, fore-aft, and up-down components. The robot reached an average trotting speed of 0.98 m s −1 , at peak speeds of 1.12 m s −1 . Vertical COM displacement was ±2 mm, at an average hip height of 0.17 m. Average roll angle was ±0.015 rad. The average pitch angle was −0.03 ±0.015 rad.
Oncilla robot's best measured hardware cost of transport of 3.2 J/(Nm) is 54 % lower than Cheetah-cub robot's COT of 6.9 J/(Nm). Tucker (1970) shows that the metabolic cost of transport of animals decreases with increasing body weight. This heuristically found relationship predicts a COT of 1.0 J/(Nm) for an animal of the weight of Oncilla robot (m = 5 kg). The currently most energy efficient, fully active quadruped robot is the 33 kg MIT Cheetah, featuring a COT of 0.5 J/(Nm) at fast, 6 m/s trotting (Hyun et al., 2014). It benefits from custom made brushless actuators, and energy recuperation capabilities.
Oncilla robot trotted slopes with inclination angles up to 10 • , faster and with less slippage while going backwards. As nothing else changed, the speed discrepancy must have been caused by leg asymmetry, between forward and backward orientated feet, and pantograph leg joints. More research is required to understand the effects of underactuated, segmented and spring-loaded legs.
By open-sourcing Oncilla robot's mechanical, electrical, software, and simulation blueprints, we aim toward an easily accessible platform for research and education. We hope this project will help spawning improved robots, and allow the field to grow and extend rapidly. All source files are online accessible through permanent repositories, links are provided in Table 4. This project was shared between multiple universities in the framework of the EU-FP7 AMARSi project, and five Oncilla robots have been distributed among project partners.
Recently, fluidic and fluidic-hybrid actuation became an interesting choice for articulated robots research (Whitney et al., 2016). Pneumatically actuated quadruped robots like Pneupard (Rosendo et al., 2014) can utilize the actuator's intrinsic compliance, and high frequencies. This keeps robot weight and complexity low. At the same time, large torques, angular amplitudes, and locomotion frequencies even above 7 Hz are feasible (Narioka et al., 2012). This present an Unless specified otherwise (i.e., "apt" or "wget"), users can Git clone repositories. All repositories can be open-source utilized in accordance to the specified license (LGPL-3 or GPL-3).
Frontiers in Robotics and AI | www.frontiersin.org interesting option for future electric-pneumatic hybrid legged robots. Soon, legged robots will need to keep up with the claim to perform better than wheeled or tracked vehicles in cluttered environments, and over rough terrain. Boston Dynamics LittleDog robot showed great results as the common robot platform in an earlier DARPA challenge (Righetti et al., 2013). During the tasks of climbing over obstacles, LittleDog robot benefited from its three DOF leg design, and a very large motion joint range. Other legged robots like StarlETH robot (Hutter et al., 2013) or HyQ (Semini et al., 2011) also implemented 3 DOF legs with large joint ranges. Oncilla robot's AA joint allows the robot to turn on the spot, and trot efficiently during turning. For tasks in rougher terrain, or to stabilize the robot from sudden sideways perturbations a faster and stronger AA joint with a larger motion range will become necessary.
We found Oncilla robot's small form factor very helpful. Production and component costs are relatively low, and maintenance is easy. Due to its low weight the robot can safely be handled by a single user, and without gantry installations.
Finally, Oncilla robot provides sensor data, of joint and motor encoders, from gyroscopes, forces sensors, and ground contact sensing based on leg spring deflection. This allows research of closed-loop control (Ajallooeian et al., 2013a,b;Ajallooeian, 2015), and testing bioinspired locomotion controllers. It also makes Oncilla robot a compact and relatively low cost mobile gait analysis tool. Oncilla robot has remaining load capacities for extra sensors like stereoscopic cameras, or distally mounted legforce sensors. The robot's communication interface and software architecture allows to include such sensors transparently.

CONCLUSION
We presented a novel compliant quadruped robot, its software and control framework, and its Webots simulation. We characterize Oncilla robot trotting on level ground, climbing and descending slopes, and during turning. Locomotion speed and direction were set by an open-loop controller in all experiments, without the need to track the robot's posture, internal leg constraints, or considering foot slippage. By outsourcing control tasks into mechanics, Oncilla robot can locomote with low control effort, i.e., open-loop and low control frequencies, over different in-and outdoor substrates. Oncilla robot reached a maximum forward speed of 0.63 m s −1 at a transport of COT = 3.2 J/(Nm), at 5 kg weight. The robot can turn on the spot, or with a very small turning radius, depending on the applied controller and the utilized robot DOF. The presented example locomotion controller implements gait features in a modular manner, through a central pattern generator. Furthermore, Oncilla robot's open software architecture allows testing other control approaches. For future research with closed loop control, sensors are incorporated and ready for use, i.e., reaction force sensors, gyroscopic sensing, leg-ground detection, and absolute joint position sensors. Oncilla robot's mechanical and electrical blueprints, firmware, simulation, and software architecture are open-source available under GPLv3 (Free Software Foundation, 2007a) for hardware and firmware, and LGPLv3 (Free Software Foundation, 2007b) for driver, simulation and software architecture. Links are available in Table 4. The supplementary document for this manuscript includes a more detailed description of Oncilla robot's electronic hardware components, a table with links to videos, schematic figures and kinematic variables of the robot's leg morphology, and details to the knee and hip motor optimization applied.