L3X-Z - A OpenCyphal enabled hexapod robot for ELROB 2022

TL;DR: We’ve¹ built and deployed a six-legged electric/hydraulic hexapod robot utilizing OpenCyphal at ELROB 2022, a long-running robot competition with a focus on military applications.



Last week this years ELROB (European Land Robot Trial) took place at the ABC- & Katastrophenhilfeübungsplatz (a Austrian army training ground) “Tritolwerk” in Eggendorf, Wiener Neustadt, AUSTRIA. The purpose of ELROB which alternates between civilian and military focused testing scenarios is to provide a real-world testing ground for robotic systems both under active development and already in production.

L3X-Z is a six-legged mixed electric/hydraulic hexapod robot built for participating in the “Reconnoitring of structures” scenario under the 107-systems label. This scenario requires exploring an unstructured environment in combination with map building and detection and location of objects of interest.

System Overview

Rasperry Pi 4
|-- USB
   |-- OpenMV Colour Camera
   |-- OpenMV Thermal Camera
   |-- Intel Realsense D435i
   |-- USB-2-RS485 (U2D2)
       |-- 6 x Dynamixel MX-28
       |-- 2 x Dynamixel MX-28 for pan/tilt head (containing thermal/colour camera)
   |-- USB-2-RS232
       |-- Scanse Sweep 2D LIDAR
   |-- Lynxmotion SSC-32 Servo controller for hyraulic valves
   |-- USB-2-CAN (Zubax Babel) for OpenCyphal
       |-- Zubax Orel 20 for driving the hydraulic pumps BLDC motor
       |-- 6 x Leg Controller Board (for sensing leg angles via magnetic rotary encoders and ground contact)
       |-- 1 x Radiation sensor providing reading of local radioactivity levels (connected via OpenCyphal)
       |-- 1 x Auxiliary controlloer for various IO tasks (connected via OpenCyphal)

System Description

This picture at an early building stage shows the dual pressure circuit hydraulic pump behind the 4S LiFePo battery, the 6 Dynamixel MX-28AR coxa (hip) servos, the USB-2-RS485 converter (behind the battery), the RC servo actuated valve blocks and the Rasperry Pi 4 power supply (PCB to the front).


On the next image the Raspberry Pi 4 has already been mounted. One can also see the stock supplied ESC which unfortunately died on the test bench. Consequently it was replaced with a Zubax Orel 20 and while I’m not paid by @pavel.kirienko to write this I’ve got to say that the products of Zubax Robotics have a “just works” quality to them that is hard to undervalue.


The next image shows 5 fully assembled robot legs. While the coxa (hip) is actuated by a electric servo femur (thigh bone) and tibia (shinbone) are actuated via hydraulic cylinders. The reason behind choosing hydraulic actuators are twofold:

  1. Classic electric, geared servos handle the strain of a heavy weight hexapod quite badly, leading to a short servo live-span.
  2. There’s zero power required for the legs to hold their position when the valves are shut off.


The next image shows the pan/tilt head to which later the thermal and colour cameras (used for remote robot control) will be mounted.


A Lynxmotion SSC32-U (barely visible under all those wires on top of the valve blocks) is used for controlling the RC servos which in turn control direction and flow volume through the 12 hydraulic valves.

For wireless connection a MikroTik RBMetal5SHPn (grey box with white antenna) is being used. Those routers, which enjoy considerably following within the ham radio community provide up to 1.3 W TX power which is considerably higher than what your typical consumer-grade WiFi router can provide. Within the ham radio community those routers are typically used for wide-distance point-to-point connections, i.e. for HAMNET.


While the Dynamixel coxa servos are “smart” (meaning they provide information about the current actuator angle as well as allowing to set a target angle) the hydraulic cylinders are purely mechanic actuators. In order to obtain the current angle of both femur and tibia joint a small diametric magnet is glued on the shafts of the axis we wish to observe.


The rotation of the magnetic field is picked up by magnetic rotary encoders and is pre-processed, encoded and transmitted to the control software within the Raspberry Pi 4 via OpenCyphal/CAN utilizing a batch of pre-existing Arduino libraries (i.e. 107-Arduino-UAVCAN - will receive a workover to OpenCyphal shortly, 107-Arduino-MCP2515, 107-Arduino-AS504x, etc.).


On this image both colour and thermal camera have been mounted to the 3D printed pan/tilt head:


Connecting all hydraulic lines was quite a ton of work. One of the things we wish to improve in the future is to plan hydraulic lines into the hardware design, which should lead to a much cleaner overall wiring situation.


The next image shows the completely assembled hexapod robot. Both Realsense and 2D LIDAR (both are used for map building) can be seen on the forward sensor tower.


A side angle view at the assembled hexapod robot.


Unfortunately one of the 3D printed elements had a bit of an design issue leading to cracking of the 3D printed element when the hydraulic cylinders were fully extended:


This meant that we had to disassemble all legs and exchange the broken part with a freshly designed and printed one at the event itself.


On this image all legs have been mounted again:


We also exchanged the sensor tower with a new version containing the required status LEDs for visualising the robot status to external (human) observers (Note the Neopixels):


Those NeoPixel RGB LEDs are controlled via the so-called auxiliary controller which communicates with the main control software via OpenCyphal/CAN.


On the bottom of the robot there’s a radiation sensor mounted (firmware) which is another OpenCyphal/CAN connected node providing radiation sensing data to the robot control software (which streams this information via ROS topics to the operator station - shown below).


The final image shows L3X-Z bravely doing the first step over the starting line during our run at the event:



All hardware design files, CAD design files and software are open-source and available within the 107-systems github organisation. There is a table within the main robots control software which might prove helpful if you are looking for a specific ressource.


¹ @pavel.kirienko (Pavel Kirienko), @generationmake (Bernhard Mayer), @aentinger (Alexander Entinger), Jonas Wühr, Robert Hahn (OE3BHC)


Love it! Where did you get the hydraulic actuators? I’ve always wanted to play around with them.

Also, what’s the top forward speed of the robot?

1 Like

Here’s a tip for designing FFF parts, never apply a load that pulls at the bond between layers. That is, use the layered dimensions for compressive loads only. If you need to put parts in tension be sure you rely on the filament’s tensile strength not inter-layer adhesion. For example, I’m designing a part that has two axis that require tension. Instead of printing a solid part I’m designing three parts that snap together so I can print each in the proper orientation to avoid inter-layer tension.

The assembled part. All layering is in compression when assembled. (black is Poly-Carbonate and Orange is PET)

Note how the orientation of the different parts when printed (using FFF) are rotated so that the critical cylindrical volumes in each axis rely only on the filament tensile strength and not inter-layer adhesion.

1 Like

Thank you :blush: ! All hydraulic parts have been purchased from the :de: company Leimbach Modellbau.

Currently about 10 cm / second. The main limiting factor is the volume flow rate of the hydraulic pump which limits speed of the cylinder action. L3X-Z already contains a dual-pressure-circuit pump, enabling two separate hydraulic circuits in the robot, one for the left side, one for the right and therefore doubling the volume flow rate. Possible improvements would be:

  • Add another dual-pressure-circuit pump (doubling the volume flow rate).
  • Replace the current cylinders with cylinders with a smaller diameter (requiring less volume to be filled). (This is an option because the current cylinder diameter - and directly linked with it the applicable force - has been selected to be on the safe side, so there’s room for optimisation.

Unfortunately :de: made miniature hydraulic gear is :moneybag: (= expensive), so both options come with considerable cost. Any contribution (be it one-time or regular) would be greatly appreciated (shameless plug :wink:).

Thank you very much for your advice re FFF design. In this area there’s much I have to learn :bowing_man: . For example all those nice CNC-milled parts are from a ( :de: ) company which is in the business of producing front panels for electronic devices. They even have a self-developed, multi-platform software-tool tailored to creating such front panels where you can place your order directly from within the tool (talking about “industry 4.0” :wink: ). The cool thing about them is that per default they support panels up to 10 mm (more on request) so what I’ve been using them for is not for front panels but for custom CNC-milling. The not so cool part is that the import of DXF files (as cool as that feature is, since it allows you to feed the output from another CAD software into the tool) is not as straight-forward as it could be and requires some manual adjustment. Frankly, I’m incredibly happy that we did not have to rework a single part :wink: .

Love it! Looks very cool and neatly designed! Which CAD software have you used for this?

Thanks. I use Fusion 360 for my maker projects.

1 Like

It’s Friday :partying_face: . So following the tradition of IEEE Spectrum / Automaton let’s have a video friday :wink:

1 Like