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.
Background
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:
- Classic electric, geared servos handle the strain of a heavy weight hexapod quite badly, leading to a short servo live-span.
- 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:
Ressources
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.
Video
¹ @pavel.kirienko (Pavel Kirienko), @generationmake (Bernhard Mayer), @aentinger (Alexander Entinger), Jonas Wühr, Robert Hahn (OE3BHC)