OpenSHC: A Versatile Multilegged Robot Controller

06/08/2020 ∙ by Benjamin Tam, et al. ∙ CSIRO 0

Multilegged robots have the ability to perform stable locomotion on relatively rough terrain. However, the complexity of legged robots over wheeled or tracked robots make them difficult to control. This paper presents OpenSHC (Open-source Syropod High-level Controller), a versatile high-level controller capable of generating gaits for quasi-static multilegged robots. With the Robot Operating System (ROS) integration, the controller can be quickly deployed on robots with different actuators and sensor payloads. The flexibility of OpenSHC is demonstrated on the 30 degrees of freedom hexapod Bullet, analysing the energetic performance of various leg configurations, kinematics arrangements and gaits over different locomotion speeds. With OpenSHC being easily configured to different physical and locomotion specifications, a hardware-based parameter space search for optimal locomotion parameters is conducted. The experimental evaluation shows that the mammalian configuration offers lower power consumption across a range of step frequencies; with the insectoid configuration providing performance advantages at higher body velocities and increased stability at low step frequencies. OpenSHC is open-source and able to be configured for various number of joints and legs.



There are no comments yet.


page 1

page 3

page 4

page 7

page 10

page 11

page 12

page 13

This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

I Introduction

Fig. 1: A number of different multilegged robots that use OpenSHC, from left to right: Gizmo, Zee, Bullet, MAX and Weaver.

Legged robots have advantages compared to their wheeled and tracked counterparts when navigating in complex terrain. From their ability to traverse discontinuous terrain, climb over obstacles and disturb the terrain minimally, to probing the terrain and manipulating the environment without an additional arm [1, 2]. However, the trade-off of this versatility and mobility is the significant challenges in mechanical and control complexity [3]. The combination of both the robot platform design and the control algorithm determines the performance and effectiveness of the robot. To further research and development of legged robots, the authors present OpenSHC - Open-source Syropod High-level Controller - a versatile controller that is capable of generating statically stable gaits for multilegged robots111 It is the result of legged robot locomotion research conducted at CSIRO’s Robotics and Autonomous Systems Group since 2011, with some of the robots running OpenSHC shown in Fig. 1. Using the Robot Operating System (ROS) framework for modularity and easy deployment, OpenSHC is designed to generate foot tip trajectories for a given gait sequence, step clearance, step frequency and input body velocity. Input sensors such as IMU and joint effort feedback can be utilised by the controller to provide robust trajectories in inclined and uneven terrain.

In order to show the capability of OpenSHC, a study on locomotion efficiency of a 30 degrees of freedom (DOF) hexapod robot platform called Bullet in the nature inspired mammalian and insectoid (sprawling-type) configuration is presented. Six legged robots have an advantage over bipeds and quadrupeds when it comes to statically stable locomotion on mild terrain, where the fast tripod gait has an energy efficiency advantage over other gaits [4]

. In the mammalian configuration, the legs are below the body, reducing the support polygon while decreasing the power consumption required to support the body. Insectoid configuration places the legs to the side of the body, lowering the centre of mass, increasing locomotion workspace and stability. The different physical and locomotion specifications require unique parameters for control, something OpenSHC allows for easily. The experimental results provide unique insights into the novel parameter space of hardware changes to leg arrangement and configuration; and locomotion changes to step frequency, stride length and gait.

The design philosophy and history behind OpenSHC is presented in Section II. The kinematic algorithms in the controller is summarised in Section III. Section IV provides an overview of OpenSHC with details of each sub-component of the system. Section V describes the study of locomotion efficiency with respect to popular leg configurations in literature, while Section VI describes the mechanical specifications of Bullet. Experiments are explained in Section VII with results shown in Section VIII and then discussed in Section IX. Section X concludes the paper and provides areas of focus for the future of OpenSHC.

Ii Design Philosophy

The design philosophy of OpenSHC was to create a modular controller for research and development on different hardware platforms without having to redevelop the controller for making a legged robot walk. Novel functionality developed on particular robot platforms are generalised and incrementally added into the controller so other platforms can benefit from the work. The controller has the following features:

  • Fully configurable for a variety of platform designs with differing physical characteristics, including up to 8 legs each with up to 6 DOF per leg.

  • Dynamically switchable gait options with ability to design custom gaits.

  • User defined body clearance, step clearance and step frequency.

  • Manual body posing in 6 DOF.

  • Manual leg manipulation for up to two legs simultaneously with toggle of manipulation control of either tip position in Cartesian space or direct control of joint positions (3 DOF legs only).

  • Startup direct mode to move foot tip positions linearly from initial position to default walking stance positions.

  • Startup sequence mode with full chain of startup/shutdown sequences to start from a ’packed’ state and generate a sequence to stand up off the ground into its default walking stance; and similarly able to shutdown and transition back to a packed state.

  • Cruise control mode to set robot velocity as a constant predefined input velocity or set to the current input velocity.

  • Auto navigation mode when combined with sensors and auto navigation node, to autonomously navigate to a given waypoint with obstacle avoidance.

  • Optional admittance control with dynamic leg stiffness to ensure leg contact with ground and offer moderately rough terrain walking ability.

  • Optional IMU body compensation to keep body horizontally level at all times, using IMU data.

  • Optional inclination compensation which strives to keep body centre of gravity over the estimated centroid of the support polygon whilst walking on inclined planes.

  • Optional bespoke automatic body posing system to pose each robot leg cyclically as defined by auto-pose parameters.

A variety of research projects contributed and benefited from the controller. Different robot platforms such as MAX [5], a 2.25 m 18 DOF hexapod; Weaver [6], a 30 DOF hexapod; and Magneto [7], a 3 DOF actuated limb and 3 DOF compliant magnetic foot quadruped, have influenced the design and functionality of the controller. The simple command interface for sending velocity control to the system enabled higher level autonomy to be integrated and tested onto hardware easily. Research in probing for brittle terrain [2], steep terrain ascent [8], adapting robot pose for confined spaces [9], augmented telepresence for remote inspection [10] and autonomous adaptation of locomotion parameters [11, 12, 13] have all built upon the OpenSHC framework.

Iii Kinematic Model

The robot is represented as a kinematic model within the controller using the Denavit-Hartenberg (DH) parameters. This allows for the joint angles and end effector locations to be easily transformed for forward kinematics (FK) and inverse kinematics (IK) calculations. The robot’s body frame , is the body orientation and displacement in to a reference map frame . Each leg has its own leg frame , which is the static offset from the robot’s body frame to the first coxa joint of that leg.

Iii-a Forward Kinematics

The specified DH parameters , , and are the rotation around , translation along , translation along and rotation around , respectively. The transformations can be represented in matrix form as:


where and denote and respectively. The representation of the combined homogeneous transform of the parameters becomes:


In the notation , the superscript denotes the reference frame and the subscript indicates the transformed frame . Using Fig. 2 as a 30 DOF hexapod example, for a leg of the robot the transform from the leg frame to the end effector is given by:


where and are the joint angles for the , , femur, tibia and tarsus joints respectively.

Fig. 2: The kinematic structure of the hexapod Bullet.

Iii-B Inverse Kinematics

The IK for the change in joint angles for a given desired end effector position is calculated using the Jacobian. The Jacobian matrix is defined as:


where is the end effector of the link which is affected by joint . The linear velocity component of the Jacobian can be calculated by:



is the unit vector along the current axis of rotation and

is the position of the joint. For incremental iterations of the end effector, a change in the end effector can be approximated by:


Thus, using the Levenberg-Marquardt method, also known as the damped least squares method, can be solved by:


where . Using this approximation and compact notation, we get:


where .

For robots with redundant DOFs, joint position/velocity limit avoidance (JLA) [14] strategies are used to increase the safe operation of the joints. A full-time kinematic optimisation method of JLA is used to keep the joints away from joint position and velocity limits as much as possible. The cost function to minimise is represented by:


where is the centre of the joint range for joint . Using the norm of a vector to approximate the focusing on the joint which is farthest from its centre, (12) becomes:


where is the matrix for the weights of the joint importance. For the optimised solution to the cost function, is solved by:


Equation (14) can be optimised for a combined cost function of position and velocity limits. Combining (11) and (14) of the joint limit costing function, the solution for the required change in joint positions is given by:


The weighting for the preference of joint position limit avoidance or joint velocity limit avoidance is able to be customised within OpenSHC.

Iii-C Leg Workspace

The locomotion workspace is defined around the desired stance foot tip position of each leg. At initialisation, each leg of the robot model moves the desired tip position linearly along a search bearing on the plane of the desired tip position. Each new desired tip pose is run first through an optional admittance controller to add a vertical position offset, and then sent to the inverse kinematics engine to generate a joint configuration solution. This linear search ends once a joint limitation is reached or the inverse kinematics engine fails to generate a solution. If this occurs, the distance achieved along the search bearing from the starting desired tip position is saved and the search then restarts along a new bearing. The workspace polygon of each leg is formed by the distance travelled during search and is constrained to be symmetrical along each search bearing. The minimum workspace from all the legs is selected so that the polygon is the same for each leg and there is no overlapping workspaces. OpenSHC also supports a volumetric workspace mode where several workspace polygons are calculated for differing -axis heights producing a polyhedral workspace.

The single restricted workspace polygon is named the walkspace in OpenSHC and is used to calculate and limit the stride length for a given desired input body velocity. The desired body velocity is passed to the robot for a given step frequency, with the corresponding stride length calculated to achieve the desired body velocity. The maximum linear body velocity is thus limited by the shared walkspace of each leg. The body velocity calculated by OpenSHC is given by:


where is the duty factor defined as , the time in stance phase, and the total time of stance and swing phase for the stride time; the stride length; and the step frequency. Note that both and are not fully independent, as is limited by the maximum joint velocity, which is also affected by the required distance to move from the stride length. In reality, the actual velocity is lower due to slippage and other disturbances. However, this is not accounted for in OpenSHC. Therefore, for accurate robot odometry, an external tracking solution is required. More examples of leg workspaces are presented in Section VI-A and Fig. 13.

Iv System Architecture

The high-level controller consists of multiple modules, as outlined in Fig. 3. Each module has customisable parameters for each robot platform, with functionality allowed to be enabled or disabled.

The core functionality of OpenSHC receives control inputs, Section IV-A, and passes the desired body velocity and pose velocity to the walk controller (Section IV-B) and pose controller (Section IV-C) respectively. Additional sensor data can be used with the optional IMU pose generator (Section IV-C1), inclination pose generator (Section IV-C2) and admittance controller (Section IV-D1) to compensate for inclined, uneven terrain. The gait parameters are converted into timings for each leg in the gait timing generator (Section IV-B1) and transformed to foot tip trajectories in the tip trajectory generator (Section IV-B2). Different posing generators are combined with the tip trajectory generator output in the tip pose generator (Section IV-C4) to calculate the required pose for each foot tip. The leg controller (Section IV-D) takes the tip pose and calculates the desired joint angles. The joint controller (Section IV-D2) calls the IK and FK systems and constrains the output joint positions to safe limits to send to the motor controller (Section IV-E) which controls the servomotors.

Fig. 3: OpenSHC has a hierarchical control architecture.
Fig. 4: The hexapod Weaver in (a) rviz kinematic model, (b) Gazebo simulation and (c) hardware.

The controller is wrapped as a C++ node within the Robot Operating System (ROS) [15] framework. The utilisation of rostopics and the ROS parameter server allows for a common interface to work with various inputs (for control and sensors) and outputs (position control of joints), and easy dynamic parameter customisation. With the integration of Gazebo [16] with ROS, robot algorithms are able to be tested in simulation before being deployed onto hardware. Fig. 4 shows the robot Weaver as a pure kinematic model in Rviz, a simulation model in Gazebo and the robot hardware in real life.

Iv-a Control Input

OpenSHC receives desired body velocities (forward, lateral and angular) and body posing velocities (6 DOF) via an external source. The source can be an operator via a gamepad, tablet or computer, or from an autonomous navigation stack. The interface takes in a linear velocity vector along the axes and an angular velocity vector about the axes, using the ROS geometry_msgs::Twist message as transport.

Iv-B Walk Controller

The walk controller generates the required foot tip trajectories and timings from the desired body velocity. The desired velocity generator fits the body velocity to the walkspace while the stride vector generator calculates the required stride length using (16) to achieve the desired velocity.

Iv-B1 Gait Timing Generator

Working along with the stride vector generator to achieve the desired velocity, the gait timing generator takes in predefined parameters defining the different gaits; such as wave, amble, ripple, tripod and the dynamic bipod gaits [4, 17]. The parameters define the ratio between the stance and swing periods of each gait cycle and the phase offset between each leg executing the gait cycle, as shown in Fig. 5. The timing of these gait cycles and the desired state of the leg is sent to the tip trajectory generator which generates either a swing or stance trajectory based on the current state of the leg in the gait cycle.

Fig. 5: Timing for predefined gaits for a hexapod robot.

Iv-B2 Tip Trajectory Generator

The tip trajectory generator calculates the foot tip trajectories for the specified gait pattern and stride vector. It consists of three order Bézier curves to generate foot positions and velocities over the time period of the step cycle. Two Bézier curves control the foot trajectory across the primary (first half) and secondary (second half) swing period, and the third Bézier curve controls the stance period. The stance Bézier curve generates foot velocities rather than positions using the derivative of the position Bézier curves used in the swing period. This is to ensure that on-ground foot velocities are guaranteed to match those required to achieve the desired body velocity. Each Bézier curve is defined by 5 control points and the following equations:


where and . The derivative of (17) is given by:


The control points are placed to maximise smoothness throughout the step cycle whilst ensuring desired swing characteristics, such as step clearance and liftoff/touchdown placement, as well as required ground velocity during stance. Position continuity is ensured between step cycle periods, as shown in Fig. 6, by setting the ‘end’ control points for each Bézier curve at the same location. Similarly, control point placement strategies are employed for the remaining control points to ensure velocity and acceleration continuity, producing trajectories which are at least smooth and preferably smooth within the swing characteristic constraints. The desired characteristics of the swing and stance periods have precedence over trajectory smoothness. OpenSHC ensures that the foot trajectories will always adhere to three requirements:

  • The foot trajectory during swing is position controlled to ensure it achieves the defined liftoff and touchdown positions at the start and end respectively of the primary and secondary swing Bézier curves.

  • The foot trajectory during swing is position controlled to ensure it achieves the highest point at the desired step clearance directly above a defined ‘default’ foot position, i.e. the position of the foot with zero body velocity.

  • The foot trajectory during stance is velocity controlled to ensure the required foot velocity is attained as per the requirements of the desired body velocity.

The resultant foot trajectory from the control points is illustrated in Fig. 7.

Iv-C Pose Controller

The pose controller generates the required tip pose to achieve the control input manual body pose and sensor based body pose for safe operation. Changing the body pose from the default position and orientation allows the robot to point onboard sensors or to shift its centre of mass for increased stability on rough terrain.

Iv-C1 IMU Pose Generator

The IMU pose generator provides feedback to correct the robot’s body position. The IMU pose generator makes use of the inertial measurement unit (IMU) to ensure the robot body does not tend towards an unstable position. As the body experiences changes in roll and pitch, it is posed in opposing roll and pitch axes to correctly align the robot frame -axis parallel to the direction of the gravity vector to keep the body level. This posing controller uses a PID loop to ensure the posing is stable and remains within predefined limits.

Iv-C2 Inclination Pose Generator

During locomotion in heavily inclined terrain, if the body is oriented such that correction from posing in roll/pitch cannot stabilise it, then the inclination pose generator poses the body laterally in the plane of the robot frame according to the IMU orientation input. The goal of the system is to centre the vertically projected robot centre of mass into the centre of the support polygon of the robot’s load bearing legs.

Iv-C3 Body Pose Generator

The body pose generator sums together the output of several separate body posing systems whilst ensuring legs do not exceed the limits of their respective workspaces via adherence to maximum translation and rotation limits of the body. In addition to the two main body posing sub-systems in Sections IV-C1 and IV-C2, the body pose generator takes input from: an automatic user defined cyclical body pose generator; a body pose generator which aligns the body to a walk-plane estimate; and a body posing system which shifts the body to allow 3 DOF legs to achieve desired tip orientations upon touchdown.

Iv-C4 Tip Pose Generator

The tip pose generator applies the desired body pose output of the body pose generator to the desired tip pose output of the tip trajectory generator to create a resultant tip pose for each leg of the robot. The result of each leg’s tip pose generator enables the robot to enact desired foot tip trajectories for desired walking characteristics whilst simultaneously posing the body as desired. This module also ensures tip poses to do not exceed the given workspaces for each leg.

Iv-D Leg Controller

The leg controller takes the desired poses and timing of the foot tip and treats it independently for each leg. It is able to detect foot tip touchdown to stop the leg motors over-torquing and to model the walk-plane of the robot.

Fig. 6: The control points for the three Bézier curves that form the foot tip trajectory.
Fig. 7: The foot tip trajectory as defined by the three Bézier curves and associated control points, ensuring desired stride length, step clearance, step width and swing depth.

Iv-D1 Admittance Controller

The admittance-based leg controller is used for rough terrain locomotion and is based on the research in [6]. A virtual elastic element is added to the legs to compensate for non-planar foot placements. Joint torques are mapped to the force at the foot tip using a Jacobian as follows:


where is the vector of joint torques and are the five joint angles corresponding to joints Coxa, Coxa Femur, Tibia and Tarsus. and represents the 3D force and torque vectors at the foot tip. The admittance controller takes the force at the foot tip as an input and outputs a displacement along the axis. As shown in Fig. 8, a virtual mass , virtual stiffness and virtual damping element defines the dynamic behaviour along the axis. This second order system is represented by:


The exerted force and the foot position is adapted by this virtual second order mechanical system by reacting to measured foot force. This adapted foot position is . The displacements and are set to zero in order to restrict motion in the and directions during foot contact.

Fig. 8: Admittance control modelled as a mass spring damper mechanical system.

Iv-D2 Joint Controller

The joint controller handles interaction with the forward and inverse kinematics systems for every joint in each leg to achieve a desired foot tip pose. It provides leg state and model information for the associated joints for the FK and IK systems to solve (6) and (15) respectively. It also restricts any joints to ensure position and velocity limits are not exceeded. The controller acts with the FK and IK systems to produce joint commands which, once sent to the motors, will execute the desired pose of the associated foot tip as close as possible whilst adhering to joint limits.

Iv-E Hardware Interface

To convert the desired joint states to the motors moving, motor interface packages are required. The integration with ROS allows for modularity with different servo motors in the robot hardware. The Gazebo model of the robot is controlled through the output of OpenSHC using the ROS joint_state_controller [18].

V Case Study: Optimal Legged Locomotion

The versatility of OpenSHC enables rapid customisation of the locomotion parameters to enable different hardware configurations to move. The underlying kinematics and trajectory algorithms allow various parameters to be optimised. Coupled with 3D printing for rapid hardware iterations, OpenSHC is used for hardware optimisation of the locomotion parameter space for a hexapod robot named Bullet, shown in Fig. 9.

The mammalian and insectoid configurations are favoured in nature for different animals with different number of legs. Predominately, four legged animals have a mammalian configuration while six legged animals have an insectoid (arachnid/sprawling-type) configuration. This is reflected in robotic research as well; mammalian quadruped robots such as ANYbotics’ ANYmal [3], Boston Dynamics’ Spot (successor of BigDog [19]), IIT’s HyQ [20] and MIT’s Cheetah 3 [21] have sophisticated controllers capable of dynamic locomotion that are fast and agile. Insectoid hexapod robots, such as MAX [5], LAURON V [1], DLR-Crawler [22] and SILO6 [23] have been specifically designed for the rough terrain found in disaster zones, demining areas and complex environments. For effective locomotion, the mammalian configuration uses a roll-pitch-pitch configuration for its leg joints. The pitch joints propel the body forwards, while the roll joints are used for stability and to aid steering. For insectoid, a yaw-pitch-pitch configuration is used, with the yaw joints mainly used to propel the body and steer. The pitch joints are required to bear the body weight, even when stationary, consuming more energy compared to mammalian configuration.

Research in unique locomotion principles have resulted in designs of insectoid quadrupeds and mammalian hexapods. The TITAN XIII [24], aimed to use the wider range of leg motion of an insectoid configuration on a quadruped to achieve energy efficient dynamic walking. MRWALLSPECT-III [25], a climbing robot also used this design to allow for a greater workspace with a low mass. SILO6, a hexapod robot, has been analysed for energy efficient configurations in [26]. Theoretical and experimental analysis conducted on flat terrain showed that the mammalian configuration in a hexapod produced a lower power consumption overall, compared with insectoid. However, SILO6 could not switch between insectoid and mammalian configurations on-the-fly and required manual intervention to mechanically change the leg mounting for this to be possible. Theoretical analysis of mammalian multilegged robots is presented in [27], with a set of performance indices described for optimisation.

Previous works in optimising the locomotion parameter space have focused on tuning parameters for a single physical embodiment of the robot. Both learning [28] and non-learning [12] based methods have been used to optimise for energy efficient locomotion. The focus of this work is to expand the locomotion parameter search into the unexplored area of optimising locomotion efficiency for different physical configurations of an over-actuated hexapod robot, along with the traditional locomotion parameters (step frequency, stride length and gait type). While the study is not an exhaustive search of this space, the hardware-based experimental results provide insight into this unique space.

Bullet was designed to overcome locomotion workspace limitations of Weaver [6] and is capable of switching between insectoid and mammalian leg configurations. In addition to statically stable gaits, we also evaluate the performance of Bullet when using the dynamic gait bipod-B introduced in [17]. The bipod-B gait for hexapods provides a fast and energy optimal gait when foot tips have low traction. With experimental results, we show that the mammalian configuration outperforms the insectoid configuration in energy efficiency at the expense of stability at low step frequencies and maximum body velocity.

Fig. 9: Hexapod robot Bullet walking in insectoid (top) and mammalian (bottom) configurations.
Fig. 10: Bullet in insectoid and mammalian configuration in kinematic arrangements A and B.
Type Description
General Mass (without battery): 8.41 kg (A), 9.47 kg (B)
Mass (with battery): 10.07 kg (A), 11.13 kg (B)
Dimensions (Body): = 500 mm x = 280 mm
Servomotors 30 Dynamixel MX-106
Power supply Motors: 7-cell LiPo battery (25.9 V, 5000 mAh)
Computer: 4-cell LiPo battery (14.8 V, 3300 mAh)
Computer Intel i7 NUC PC (16 GB RAM) running ROS on Ubuntu 16.04
Sensors IMU (Microstrain GX5 - 100 Hz)
Arduino based power monitor (90 Hz)
TABLE I: Hardware Specifications of Bullet. A and B denotes the two kinematic arrangements presented.

Vi Robot Platform

Bullet is a versatile 30 DOF hexapod robot designed for traversing rough terrain. Bullet’s body length has been extended compared to Weaver’s, with legs offset further and perpendicular to the body to allow for the legs to be folded beside the body for a mammalian configuration without limiting the workspace with self-collisions. Fig. 10 illustrates Bullet in insectoid and mammalian configurations. Bullet is capable of un-tethered remote operation with on-board batteries, computer and sensors (described in Table I).

Vi-a Leg Kinematic Arrangement and Workspace

Two different leg kinematic arrangements were designed through analysis of workspace and joint limits. The original kinematic arrangement (arrangement A), first introduced in[12], consists of a yaw-roll-pitch-pitch-pitch kinematic arrangement. This arrangement is compared with a new pitch-yaw-pitch-pitch-pitch kinematic arrangement (arrangement B) with extended link lengths. These joints are named coxa, coxa, femur, tibia and tarsus respectively for the former and coxa, coxa, femur, tibia and tarsus respectively for the latter. Arrangement B increases total leg length from 340 mm to 466 mm and improves joint ranges by up to 20through reduction of self collision. The extended link lengths were set as the minimum length required for the greater joint limits, to lessen the impact of flex and increased motor torques. The change improves the 3D workspace, increases the joint limits and allows the robot to operate inverted (mirrored about the plane). Fig. 11 and 12 illustrates these leg kinematic arrangements in mammalian and insectoid configuration.

Fig. 11: Bullet’s leg joint configuration in both mammalian (left) and insectoid (right) configurations in kinematic arrangement A.
Fig. 12: Bullet’s leg joint configuration in both mammalian (left) and insectoid (right) configurations in kinematic arrangement B.

Fig. 13 illustrates the different workspaces for each leg configuration and kinematic arrangement with the values outlined in Table II. The workspace area is calculated per leg and the stride length is taken as the forwards (robot’s -axis) distance of the workspace assuming forward motion.

Fig. 13: Calculated workspace for the different configurations and arrangements. The rectangle represents the robot body with the robot coordinate frame’s origin at its centre. The red dots represent the foot tip locations.
Config. Arrange. Area (m) Stride Len. (m)
Mammalian A 0.049 0.207
B 0.063 0.210
Insectoid A 0.046 0.287
B 0.060 0.348
TABLE II: Calculated Workspace of Different Configurations and Arrangements

Vi-B Leg Configuration

Bullet’s unique five DOF legs and body shape allows for self-actuated switching of the leg configuration between mammalian and insectoid without external intervention, different to [26]. In the insectoid configuration, five DOFs are available to position and orientate the leg tarsus. To solve for the foot tip position of the over-actuated leg, an additional constraint is used to solve the inverse kinematics problem. The foot tip orientation is constrained to return to the original stance orientation for consistent foot tip touchdown. During the swing phase, the IK solver is able to utilise all joints for motion, following the algorithms outlined in Section III-B. This is different to [12], where the tarsus and coxa joints were constrained by the inclination of the robot.

To transform Bullet into the mammalian configuration, the coxa joints are commanded and locked to fixed positions for kinematic arrangement A. The direction of the leg orientation (either forwards or backwards) is controlled through the coxa joint rotation. For arrangement A, the resulting four DOF leg contains the coxa joint for direction and the three pitch (femur, tibia and tarsus) joints for propulsion. In arrangement B, the coxa joint is limited, but not locked. This arrangement utilises the coxa joint for direction (by bending the leg inwards or outwards) and coxa, femur, tibia and tarsus joints for propulsion. Similar to the insectoid configuration, the leg is over-actuated, with the foot tip orientation constrained during touch down.

For mammalian configuration in quadrupeds, research has found marginal differences in stability depending on the elbows and knees pointing forwards or backwards [29]. In hexapods, the leg orientation of choice is front leg forwards, and middle and rear legs backwards [26], [30]. This orientation was implemented on kinematic arrangement A without success on Bullet. This was due to stability issues when walking in tripod gait caused by Bullet’s centre of mass and the limited calculated leg workspace. The workspace was limited due to the femur and tibia joints reaching their limits. Through analysis of the workspace and stability while walking, the legs backwards configuration was found to be the most stable for walking while maximising the workspace that borders with the adjacent legs. Due to the legs bending backwards, the rear two sets of legs were required to be further behind the body to keep the centre of mass within the support polygon, causing the asymmetrical leg positions for the mammalian configuration as shown in Fig. 13. Leg arrangement B follows the same orientation for consistency.

Vi-C Parameter Space

The parameter search space is defined by physical and locomotion parameters. The physical parameters encapsulate the leg configuration (mammalian and insectoid) and kinematic arrangement (A: yaw-roll-pitch-pitch-pitch or B: pitch-yaw-pitch-pitch-pitch). From these physical parameters, the locomotion parameters of: gait type, step frequency and stride length are optimised. These parameters are summarised as:


where the sets , , , as a percentage of maximum stride length and in Hz. The search for the optimal combinations were limited to motions that were safe for the robot, with some combinations not investigated.

Vii Experiments

The performance of Bullet was tested across flat terrain. The power consumption and joint torques were compared in stance (standing stationary) and while walking on flat terrain. The dimensionless energetic cost of transport () is a performance metric used to compare locomotion of animals [31] and also wheeled and legged robots [6, 24, 32]. The overall cost of transport () over a travelled distance is given by:


where is the power supply voltage (), is the instantaneous power supply current draw (), is the total number of data points, is the mass (), is the gravitational acceleration () and is the time needed in seconds to travel distance (). Herein, refers to the overall .

The depends on the velocity of the robot [31], where consumption is high at low and high speeds, with a local minimum value at a particular speed. The desired body velocity for the controller is governed by (16), assuming perfect conditions, ignoring slippage, robot model tolerances, leg link flex and motor errors. Thus, a higher desired velocity can be achieved through increasing either the step frequency or stride length parameter. To account for non-perfect conditions, the body velocity was tracked externally for calculations.

To evaluate the effectiveness of the different configurations, the tripod gait, known for its stability and speed, was compared between mammalian and insectoid at different speeds. Other statically stable gaits such as amble, wave or ripple were not tested as previous works have shown tripod is optimal on flat terrain. The insectoid bipod-B gait [17], was also compared. OpenSHC allows for parameters, listed in Table III

, to be set. These values were heuristically tuned to optimise for energy efficiency using the rules listed in


Arrange. Stride height (m) Body height (m)
Mammalian A 0.12 = 0.30
B 0.08 = 0.30
Insectoid A 0.15 = 0.20
B 0.10 = 0.25
TABLE III: Controller Parameters for Insectoid and Mammalian

Vii-a Experimental Setup

The power consumption and energy efficiency for the different leg configurations were tested in four scenarios. These scenarios break down the different terms that contribute to power consumption and are:

  • SA - Power consumed in stance elevated in the air (robot lifted up, no ground contact),

  • WA - Power consumed walking elevated in the air (robot lifted up, no ground contact),

  • SG - Power consumed in stance on the ground, and

  • WG - Power consumed walking on the ground.

These scenarios follow the experiments set out in [26] where: scenario SA (stance air) provides the power consumed by the motor power circuitry; scenario WA (walk air) provides the power consumed for leg movements; scenario SG (stance ground) for supporting the robot’s body weight; and scenario WG (walk ground) for overall power consumption. The robot was elevated on a stand with legs in mid-air for scenarios SA and WA. The robot was placed on the ground and walked once in place to measure the power consumption when stationary in scenario SG. Bullet was analysed traversing flat ground in scenario WG. A flat, slightly inclined 3 m straight track was marked for the robot. For the calculation of in (22), power consumption () was logged with a power monitor at 90 Hz and velocity was measured with a total station (Leica TS12) at approximately 4 Hz. The is based on the power draw of the motors, including mechanical energy, heat dissipation and friction, while the computer and sensors power consumption is assumed to be constant across the different configurations and arrangements, and are powered on a separate power supply. Bullet was tested using a tether to an external power supply and control computer, with the internal batteries and computer on-board to simulate the real weight of the robot. The power supply was set at 25 V and the control computer is an i7 laptop with 8 GB of RAM.

Viii Results

Config. Arrange. Gait Stance air Walk air Stance ground
Mammalian A Tripod 27.7 51.0 48.6
B Tripod 30.4 47.1 46.7
Insectoid A Tripod 30.4 61.9 58.3
A Bipod 30.4 72.3 58.3
B Tripod 31.1 62.9 56.0
TABLE IV: Average Power Consumption (W)

The metric used to compare scenarios SA, WA and SG is power consumption with results outlined in Table IV, while is used for scenario WG. The power consumed in stance for both kinematic arrangements of mammalian is lower than their corresponding insectoid. This validates the theory of less torque on the motors with the legs underneath as the force vectors act through the motor shaft.

The difference in power between the air and ground shows the additional power required to support the robot’s weight. While arrangement A consumes less power than B in stance while in the air, on the ground arrangement B consumes less. This suggests that the joints in arrangement B require less torque to keep the body up. The walking in air comparison is for step frequency 1 Hz at 100% stride length. The results show the insectoid bipod consuming the highest amount of energy for leg motion, while in mammalian, arrangement B uses less power than arrangement A.

An analysis of arrangement A mammalian configuration at different step frequency and stride length compared to the is shown in Fig. 14. The stride length, given as a percentage of the available locomotion workspace, shows that a higher length for a given step frequency is more energy efficient. The minimum value at 1 Hz shows the optimal step frequency and stride length for energy efficient locomotion. An increase of step frequency above 1 Hz increases the power usage greatly. At a step frequency of 1.4 Hz, the foot tips slipped considerably, causing the tracked velocity to be lower than that of step frequency 1.2 Hz; even though the desired body velocity is greater.

Fig. 14: for arrangement A mammalian tripod gait at various step frequencies and stride lengths.
Fig. 15: for insectoid bipod and tripod, and mammalian tripod gait at various step frequencies at 100% stride length for arrangement A.
Fig. 16: for mammalian and insectoid tripod gait at various step frequencies and stride lengths for arrangement B. Insectoid stride length 60% was limited to be the same metric length as mammalian 100% stride length.

The insectoid configuration was analysed with the tripod and bipod gait in arrangement A. A stride length of 100% was used in tests as results in mammalian showed a stride length of 100% is the most efficient across all step frequencies tested. Fig. 15 compares the and average velocity as the step frequency increases. Similar to mammalian configuration, tripod gait has a minimum , occurring at 1.8 Hz. An increase of step frequency above 1.8 Hz increases the . The bipod gait does not exhibit this minimum, instead having diminished reductions for step frequencies about 2 Hz. The bipod gait performed equally or better than the tripod gait at all step frequencies. For step frequencies above 2 Hz, both insectoid gaits cause considerable clamping of the joint angles by OpenSHC. This caused body instability and the foot tip to no longer track the trajectory. Step frequencies above 2.2 Hz were not tested to prevent hardware damage.

For arrangement B, tests were conducted to compare the mammalian and insectoid configuration given the same workspace across various step frequencies. The mammalian configuration was tested at 100% stride length. This was compared with insectoid at 60.27% of its maximum workspace to have the same metric stride length as mammalian. Fig. 16 outlines the and average velocity as the step frequency increases. Insectoid at 100% stride length was included for comparison. At low step frequencies, the mammalian configuration was observed to have body oscillation and foot tip slip, resulting in the high . At step frequency 2 Hz and above, where the body oscillations were minimal, the mammalian configuration has comparable or better performance than both insectoid stride lengths. Given the same stride length, mammalian configuration consistently has a lower than insectoid across step frequencies above 2 Hz (Fig. 16a). However, the actual robot velocity is consistently lower than insectoid (Fig. 16b). The local minimum value for occurs at step frequency 3 Hz for both configurations, suggesting it is the step frequency and stride length that affects the local minimum and not the leg configuration.

The comparison of 100% stride length between the two configurations show the advantages and disadvantages of each. The insectoid configuration can achieve a higher maximum velocity at lower step frequencies and is also more stable. However, it causes the joints to reach limits at a lower frequency (observed at 2 Hz compared to mammalian at 3.5 Hz). The drop in velocity in insectoid at high step frequencies is caused by joint velocity clamping while executing the desired controller trajectory. As the weight of the robot is constant across the different trials, the is effectively the relative power required to traverse a set distance, and can be directly used to compare energy efficiency of the different configurations.

Fig. 17: Velocity () profile of the joints in the front right leg for arrangement A. The solid blue line denotes a step frequency of 1 Hz at 100% stride length. The dotted red line denotes the maximum step frequency at 100% stride length for each configuration (1.4 Hz, 2.2 Hz and 2.2 Hz respectively). The -axis denotes two periods of the step frequency at 1 Hz.
Fig. 18: Load profile (dimensionless) of the joints in the front right leg for arrangement A. The solid blue line denotes a step frequency of 1 Hz at 100% stride length. The dotted red line denotes the maximum step frequency at 100% stride length for each configuration (1.4 Hz, 2.2 Hz and 2.2 Hz respectively). The -axis denotes two periods of the step frequency at 1 Hz.

Ix Discussion

The use of an over-actuated leg to achieve switching between mammalian and insectoid configuration was explored for the first time. To achieve the mammalian configuration, the coxa joint motors were commanded to set positions, with torque holding those positions. This was reflected by the small velocity and load on the joint illustrated in Fig. 17a and 18a respectively. Comparing the load on the joints across the different gaits (Fig. 18 blue line), the mammalian tripod gait had lower torques on all the joints. The results for the stance power consumption experiments (scenarios SA and SG) confirmed the theory in [33] and also the experimental data in [26] with the mammalian configuration using less energy than insectoid when standing.

Arrangement A mammalian configuration consumed less power than insectoid in stance (SG) and leg movement (WG), but was not the most efficient in locomotion due to the smaller locomotion workspace and joint angle limits. The robot in insectoid configuration was capable of covering larger distances in the same number of steps, negating the higher power required to support its weight and for locomotion. With the joint limit improvements in arrangement B, the mammalian configuration achieved lower than insectoid. The mammalian configuration was optimal if the least amount of power to traverse an area is required. Arrangement B mammalian did not reach joint velocity limits until higher step frequencies as the pitch-yaw-pitch-pitch-pitch kinematic arrangement affords four pitch joints to propel the robot forwards.

Analysis of the insectoid tripod and bipod gait showed a lower for the latter. Although the bipod gait consumed more power, it was able to walk faster than tripod at the same step frequency. This supports the hardware experiments conducted in [17]. On average, the bipod gait was 30% faster than the equivalent tripod gait, similar to the 25% increase reported in [17]. Between the two arrangements and across different gaits, arrangement A bipod had the lowest . The results showed improved locomotion efficiency is achievable with OpenSHC, providing direction for future works in the absence of sophisticated dynamic controllers.

The versatility of OpenSHC was highlighted on experiments conducted on a versatile hexapod capable of switching between different configurations. We show that this switching ability has advantages over traditional fixed configuration robots in autonomous navigation of terrain. When traversing mild terrains, where stability and speed is of less importance, the mammalian configuration consumes less power. For terrain or scenarios where stability or speed is required (such as rough terrain or speed critical tasks), the robot can morph into insectoid configuration. This ability to select the optimal configuration provides the robot an advantage on locomotion efficiency for real world scenarios. Having an over-actuated leg design allows for the additional ability to selectively use particular motors for locomotion and to switch between the different configurations. While a single DOF is unused in the mammalian configuration, setting the motor to a fixed position results in the robot using less power overall. The results highlight the advantages of a versatile hexapod running OpenSHC, capable of selecting between configurations and step frequencies, based on energy efficiency (mammalian) or stability and speed (insectoid) requirements.

X Conclusions

This paper presented OpenSHC, a versatile controller capable of generating smooth trajectories for quasi-static legged robots. With many customisable parameters, the controller can be configured for new robot platforms with various physical characteristics. OpenSHC provides the building blocks to extend the capabilities of multilegged robot platforms. OpenSHC focused on providing functionality for locomotion in mild to rough terrain, allowing other researchers to focus on areas such as autonomy or application specific motions that would increase the versatility of legged robots. With additional sensors, robots would be capable of traversing in more complex and confined environments, something that quasi-static multilegged platforms would be ideal for. Another area of research that OpenSHC supports is in leg manipulation. For robot platforms with greater than 3 DOF legs, OpenSHC allows for manual position and orientation control of the foot tip, allowing attachments such as grippers to manipulate the environment.


The authors would like to thank Oshada Jayasinghe, Marisa Bucolo, James Brett, Isuru Kalhara, Eranda Tennakoon, Thomas Molnar, Benjamin Wilson, and David Rytz for their support during this project.


  • [1] A. Roennau, G. Heppner, M. Nowicki, and R. Dillmann, “LAURON V: A versatile six-legged walking robot with advanced maneuverability,” in IEEE/ASME International Conference on Advanced Intelligent Mechatronics, July 2014, pp. 82–87.
  • [2] E. Tennakoon, T. Peynot, J. Roberts, and N. Kottege, “Probe-before-step walking strategy for multi-legged robots on terrain with risk of collapse,” in IEEE International Conference on Robotics and Automation, 2020.
  • [3] M. Hutter, C. Gehring, D. Jud, A. Lauber, C. D. Bellicoso, V. Tsounis, J. Hwangbo, K. Bodie, P. Fankhauser, M. Bloesch, R. Diethelm, S. Bachmann, A. Melzer, and M. Hoepflinger, “ANYmal - a highly mobile and dynamic quadrupedal robot,” in IEEE/RSJ International Conference on Intelligent Robots and Systems, 2016, pp. 38–44.
  • [4] N. Kottege, C. Parkinson, P. Moghadam, A. Elfes, and S. P. N. Singh, “Energetics-informed hexapod gait transitions across terrains,” in IEEE International Conference on Robotics and Automation, 2015, pp. 5140–5147.
  • [5] A. Elfes, R. Steindl, F. Talbot, F. Kendoul, P. Sikka, T. Lowe, N. Kottege, M. Bjelonic, R. Dungavell, T. Bandyopadhyay, M. Hoerger, B. Tam, and D. Rytz, “The multilegged autonomous explorer (MAX),” in IEEE International Conference on Robotics and Automation, 2017, pp. 1050–1057.
  • [6] M. Bjelonic, N. Kottege, and P. Beckerle, “Proprioceptive control of an over-actuated hexapod robot in unstructured terrain,” in IEEE/RSJ International Conference on Intelligent Robots and Systems, 2016, pp. 2042–2049.
  • [7] T. Bandyopadhyay, R. Steindl, F. Talbot, N. Kottege, R. Dungavell, B. Wood, J. Barker, K. Hoehn, and A. Elfes, “Magneto: A versatile multi-limbed inspection robot,” in IEEE/RSJ International Conference on Intelligent Robots and Systems, 2018, pp. 2253–2260.
  • [8] T. Molnar, R. Steindl, N. Kottege, F. Talbot, and A. Elfes, “Steep terrain ascension controller for hexapod robots,” in Australasian Conference on Robotics and Automation, 2017.
  • [9] R. Buchanan, T. Bandyopadhyay, M. Bjelonic, L. Wellhausen, M. Hutter, and N. Kottege, “Walking Posture Adaptation for Legged Robot Navigation in Confined Spaces,” IEEE Robotics and Automation Letters, vol. 4, no. 2, pp. 2148–2155, 2019.
  • [10] B. Tam, N. Kottege, and B. Kusy, “Augmented telepresence for remote inspection with legged robots,” in Australasian Conference on Robotics and Automation, 2017.
  • [11] T. Homberger, M. Bjelonic, N. Kottege, and P. V. K. Borges, “Terrain-dependent motion adaptation for hexapod robots,” in International Symposium on Experimental Robotics, 2016.
  • [12] M. Bjelonic, T. Homberger, N. Kottege, P. Borges, M. Chli, and P. Beckerle, “Autonomous navigation of hexapod robots with vision-based controller adaptation,” in IEEE International Conference on Robotics and Automation, May 2017, pp. 5561–5568.
  • [13] M. Bjelonic, N. Kottege, T. Homberger, P. Borges, P. Beckerle, and M. Chli, “Weaver: Hexapod robot for autonomous navigation on unstructured terrain,” Journal of Field Robotics, vol. 35, no. 7, pp. 1063–1079, 2018.
  • [14] F. Fahimi, “Redundant Manipulators,” in Autonomous Robots: Modeling, Path Planning, and Control, F. Fahimi, Ed.   Boston, MA: Springer US, 2009, pp. 1–36.
  • [15] M. Quigley, K. Conley, B. Gerkey, J. Faust, T. Foote, J. Leibs, R. Wheeler, and A. Y. Ng, “ROS: an open-source robot operating system,” in IEEE ICRA workshop on open source software, vol. 3, 2009, p. 5.
  • [16] N. Koenig and A. Howard, “Design and use paradigms for Gazebo, an open-source multi-robot simulator,” in IEEE/RSJ International Conference on Intelligent Robots and Systems, vol. 3, 2004, pp. 2149–2154.
  • [17] P. Ramdya, R. Thandiackal, R. Cherney, T. Asselborn, R. Benton, A. J. Ijspeert, and D. Floreano, “Climbing favours the tripod gait over alternative faster insect gaits,” Nature Communications, vol. 8, p. 14494, 2017.
  • [18] S. Chitta, E. Marder-Eppstein, W. Meeussen, V. Pradeep, A. Rodríguez Tsouroukdissian, J. Bohren, D. Coleman, B. Magyar, G. Raiola, M. Lüdtke, and E. Fernández Perdomo, “ros_control: A generic and simple control framework for ros,” The Journal of Open Source Software, 2017.
  • [19] M. Raibert, K. Blankespoor, G. Nelson, and R. Playter, “BigDog, the Rough-Terrain Quadruped Robot,” in IFAC Proceedings Volumes, vol. 41, no. 2.   Elsevier, 2008, pp. 10 822–10 825.
  • [20] C. Semini, V. Barasuol, J. Goldsmith, M. Frigerio, M. Focchi, Y. Gao, and D. G. Caldwell, “Design of the Hydraulically Actuated, Torque-Controlled Quadruped Robot HyQ2max,” IEEE/ASME Transactions on Mechatronics, vol. 22, no. 2, 2017.
  • [21] G. Bledt, M. J. Powell, B. Katz, J. D. Carlo, P. M. Wensing, and S. Kim, “MIT Cheetah 3: Design and control of a robust, dynamic quadruped robot,” in IEEE/RSJ International Conference on Intelligent Robots and Systems, 2018, pp. 2245–2252.
  • [22] M. Gorner, T. Wimbock, A. Baumann, M. Fuchs, T. Bahls, M. Grebenstein, C. Borst, J. Butterfass, and G. Hirzinger, “The DLR-Crawler: A testbed for actively compliant hexapod walking based on the fingers of DLR-Hand II,” in IEEE/RSJ International Conference on Intelligent Robots and Systems, 2008, pp. 1525–1531.
  • [23] P. G. de Santos, J. Cobano, E. Garcia, J. Estremera, and M. Armada, “A six-legged robot-based system for humanitarian demining missions,” Mechatronics, vol. 17, no. 8, pp. 417 – 430, 2007.
  • [24] S. Kitano, S. Hirose, A. Horigome, and G. Endo, “Titan-xiii: sprawling-type quadruped robot with ability of fast and energy-efficient walking,” ROBOMECH Journal, vol. 3, no. 1, p. 8, 2016.
  • [25] T. Kang, H. Kim, T. Son, and H. Choi, “Design of quadruped walking and climbing robot,” in IEEE/RSJ International Conference on Intelligent Robots and Systems, vol. 1, 2003, pp. 619–624 vol.1.
  • [26] D. Sanz-Merodio, E. Garcia, and P. G. de Santos, “Analyzing energy-efficient configurations in hexapod robots for demining applications,” Industrial Robot: An International Journal, vol. 39, no. 4, pp. 357–364, 2012.
  • [27] M. F. Silva and J. A. T. Machado, “Kinematic and dynamic performance analysis of artificial legged systems,” Robotica, vol. 26, no. 1, p. 19–39, 2008.
  • [28] E. Heijmink, A. Radulescu, B. Ponton, V. Barasuol, D. G. Caldwell, and C. Semini, “Learning optimal gait parameters and impedance profiles for legged locomotion,” IEEE-RAS International Conference on Humanoid Robotics, pp. 339–346, 2017.
  • [29] S. Meek, J. Kim, and M. Anderson, “Stability of a trotting quadruped robot with passive, underactuated legs,” in IEEE International Conference on Robotics and Automation, 2008, pp. 347–351.
  • [30] B. Jin, L. j. Zhao, J. L. Zhang, C. Chen, and S. Hu, “Design of the control system for a hexapod walking robot,” in International Conference on Digital Manufacturing Automation, 2011, pp. 401–404.
  • [31] V. A. Tucker, “The energetic cost of moving about: walking and running are extremely inefficient forms of locomotion. much greater efficiency is achieved by birds, fish and bicyclists,” American Scientist, vol. 63, no. 4, pp. 413–419, 1975.
  • [32] S. Seok, A. Wang, M. Y. Chuah, D. Otten, J. Lang, and S. Kim, “Design principles for highly efficient quadrupeds and implementation on the mit cheetah robot,” in IEEE International Conference on Robotics and Automation, 2013, pp. 3307–3312.
  • [33] D. J. Todd, Walking Machines: An Introduction to Legged Robots.   Boston, MA: Springer US, 1985.