Erwin Lejeune
M4Rolling

This browser can't draw the 3D maze, so here is everything as a list.

Head of Robotics · SIRB.AI · Abu Dhabi

Erwin Lejeune

I lead robotics software teams across orchestration, navigation and fault management. Eight years in robotics, leading teams since 2021, and still hands-on in ROS 2, C++, Python and Go (some Rust and TypeScript too).

This site is a maze, and the robot is yours.

It's a toy M4, the robot from Caltech that rolls and flies (I worked on its outdoor planning).

  • Point at the floor to preview a plan, click to go. The planner can roll, fly over walls, or morph between the two, trading energy for time. A ghost rehearses the route first.
  • F folds the wheels into rotors and takes off; F again lands. C shows the local costmap.
  • V rides along: a chase view, then the robot's own camera. Sensors turns on object detection, a depth camera, and the LiDAR.
  • Scroll, or press Solve. It visits every room in order: one room per chapter.
  • Arrow keys or WASD drive it by hand, on the ground or in the air.
  • Point at things. Some you can use (stack blocks with a PDDL plan, dock a trolley); others react to you on their own (a flock, a swarm).

01 Nantes, France · 2014–2018

Electronics first

B.Sc. Electronics Engineering, Nantes Université

Before robots, circuits. Four years of electronics engineering in Nantes, the city I came back to a year later for a master's in control and robotics: circuits and signals, the maths under them (Laplace, Fourier, transfer functions, Bode plots), and digital logic all the way down to FPGAs.

The project I liked most: a chronometer on an FPGA.

Try it: the FPGA chronometer

Active

The 50 MHz clock is divided down to a 100 Hz tick, cascaded BCD counters keep hundredths, seconds and minutes, a state machine handles start, stop, lap and reset, and six seven-segment digits are scanned one at a time. The monitor behind the board shows the logic as it runs.

Switch the debouncer off and press a few times: a button bounces for a few milliseconds, and without the filter every bounce is an edge.

the signals, live

Try it: an RC filter on the scope

Active

The resistor and the capacitor on the floor make a low-pass filter, H(jω) = 1 / (1 + jωRC), with its cut-off at 995 Hz. The scope shows what goes in and what comes out, beside the Bode plot and the Fourier series: a square wave is its odd harmonics, and the filter keeps the low ones.

the maths, live

02 Bordeaux, France · 2018–2019

A microcontroller made of code

Embedded Software Engineer at Hiventive

I built a SystemC/TLM virtual prototype of an STM32 microcontroller: its GPIO, SPI, I2C, USART, CAN and timer peripherals, each modelled from the datasheet, integrated with QEMU. Then I ran a weather station's firmware on it, sensors and buses included. This room is the chip, wired to that station.

Try it: a weather station on a simulated STM32

Active
  • SPI. The driver puts the BME280 in forced mode, burst-reads its eight data registers, and compensates the raw counts with the datasheet's formulas.
  • GPIO. The anemometer and the rain gauge fire interrupts; B1 swaps °C and °F.
  • UART and CAN. A line per sample to a terminal, a frame per sample to a dashboard node, CRC and bit stuffing included. Unplug the node: no ACK, and the error counter climbs until the controller goes error passive.

The logic analyser on the wall decodes whichever bus you probe.

can0 and the serial port, live
Treat time, memory and bandwidth as a budget, and test against a model of the hardware first.

Same year, same city

M.Sc. Computer Engineering & Aeronautics at Ynov Bordeaux, 2018–2019.

Back at Hiventive, remotely · 2020–2021

Backend services in Go, with PostgreSQL and Docker, for a computer-aided production engineering platform, and an automated programming-test manager for evaluating candidates.

03 Coimbra, Portugal · 2019

Two mazes, two wins

Robotics Assistant at Ingeniarius

I built full autonomy stacks from scratch, with ROS and embedded systems, and won both maze-solving competitions: the mapped maze and the unmapped one.

  • 2 of 2 maze competitions won

That's why this site is a maze. Both trophies are in this room, and the little robot on the table is still solving.

04 Nantes, France · 2019–2021

Planning, in four projects and two papers

M.Sc. Control & Robotics, then Robotics Researcher, at Ecole Centrale de Nantes

I led four research projects: multi-agent pathfinding, AI planning with PDDL, real-time ROS control on Xenomai/XDDP, and ROS 2 latency benchmarking.

Try it: a MAPF warehouse

Active

Logistics robots fetch totes from the racks and drop them on the conveyor. Each time one finishes a job, all of them are replanned together. Conflict-based search (CBS) finds the cheapest plan with no collisions; the red rings are the collisions it found and planned around. Prioritized planning goes robot by robot: quicker, but it can box one in.

the plan, live

Try it: a PDDL planner on the arm

Active

The table in this room is a blocks world. The planner reads the PDDL below, finds the shortest plan with A*, and M4's arm carries it out, one block at a time.

Now
Goal

    domain.pddl
    problem.pddl

    The robot you're driving runs the one-robot version of the first paper's problem.

    05 Odense, Denmark · 2021–2022

    A robot in a real supermarket

    Founding Robotics Engineer at Coalescent Mobile Robotics

    I was on the founding technical team that delivered the first working in-store robot. I led the navigation stack (path planning, motion control, localization) and worked on perception: detection, filtering, tracking.

    When the CTO left, I took over navigation and trolley detection, recruited and trained interns and a junior engineer, ran planning, and turned the CEO's requirements into sprints.

    And a fleet manager that speaks VDA 5050, the open interface between a master control and its robots: it sends orders as nodes and edges, and reads back each robot's state.

    A real store changes your priorities fast.

    Try it: the fleet in the backroom

    Active

    Three AMRs slide under roll cages and carry them between the truck docks and the shop. The fleet manager only releases the next couple of nodes of each order (the base; the rest is the horizon), and never one another robot holds, so they never collide. Pause one and the others queue behind it; cancel an order or drain a battery and watch the messages.

    the latest order, as VDA 5050 JSON

    Try it: dock the trolley

    Active

    It's built for robots that dock underneath, and someone left it a little askew. Three ways in:

    • LiDAR + ICP. Its legs carry retro-reflective tape. One sweep, keep the bright returns, fit the leg model with ICP, drive under, lift. A few millimetres.
    • Camera. Find the legs' feet in the image, cast each pixel's ray to the floor, fit the legs. Pixels cover more floor further away, so it looks twice. A centimetre or two.
    • Hook. The camera estimate again, then the arm grabs the handle and drags it.

    06 Abu Dhabi, UAE · 2022–2026

    Command and control for a robot fleet

    Technology Innovation Institute (TII): Senior Engineer, then Team Lead, Robotics Software

    At TII I worked on how many robots work together: behaviour orchestration, collaboration and control, first as a senior engineer and then leading the team. Four rooms for four parts of it, starting with C2: the operator's one picture of the fleet, and the one place to task it.

    I ran the live demos for partners; that work led to USD 3M in contracts.

    Through the glass doors, and out: from here on the rooms are outdoors, in the Abu Dhabi heat. The C2 post is a command trailer in the sand, with a windsock for the drones.

    Try it: task the fleet

    Active

    Four drones and two rovers. Survey sector B, escort M4, hold the perimeter, or bring them home. The table and the video wall follow along; the third screen is the whole maze, with M4 on it. A unit low on battery goes home on its own and says so.

    07 TII · Swarm control

    Swarms with no leader

    Senior Engineer, Robotics Software · 2022–2024

    I designed new swarm behaviours, including decentralized bird-inspired flocking: each drone steers by acceleration from what its neighbours do, with no leader and no plan. It was published at IEEE/RSJ IROS 2024.

    Later, leading the team, I overhauled the swarm autonomy architecture:

    • −74% onboard CPU
    • −52% network bandwidth

    Try it: break the rules

    Passive

    Each drone listens to its seven nearest neighbours, as starlings do, and they're coloured by heading: one colour means they agree. Turn separation, alignment or cohesion off and watch the flock fall apart. Make M4 a predator and drive into them, or show one drone's view.

    08 TII · Orchestration

    Behavior trees for a team of robots

    Team Lead, Robotics Software · 2024–2026

    I grew and led a team of 9 engineers across autonomy (navigation, perception, orchestration), infrastructure (DevOps, RobotOps) and platform integration. Orchestration is how a team of robots shares work: each one runs a behavior tree, and an orchestrator hands tasks out and takes them back.

    • 9 engineers
    • 3 layers: autonomy, infrastructure, integration

    Try it: give them trouble

    Active

    Each robot runs the tree on the wall, five ticks a second: recharge if the battery's low, else do its task, else patrol. Raise an anomaly and the orchestrator sends the nearest free robot. Drain a battery mid-task and it hands the task back. Block the middle and they replan.

    09 TII × Caltech · M4

    M4, outdoors

    Joint program with Caltech: M4 and the humanoid

    A joint program with Caltech on M4, their multi-modal robot that flies and rolls, and on their humanoid. I worked on outdoor planning and tracking for M4: paths through costmaps, and controllers that keep to them. Demos to companies in Europe and the UAE led to more than USD 10M in contracts. I also started building AI tooling for the team.

    • USD 10M+ in contracts

    Try it: get in its way

    Active

    A costmap of the rocks, A* through it, and a controller tracking the path: pure pursuit, Stanley, or a sampling MPC. Drop a rock in its way and it replans; add wind and watch the cross-track error on the wall.

    The robot you're driving is a toy M4: press F and its wheels fold into rotors.

    10 Remote · 2024–now

    Agents on your own machines

    Founder of Unchained Labs

    Local-first AI agents that run on a company's own models, data and infrastructure. Kymatics is our graph-based agent orchestration: a spoken intent becomes a queue of build jobs.

    Remote, from Abu Dhabi: in this room, a desk on the sand by the sea.

    How I use AI in engineering

    It lets a team ship more without lowering the bar. The real work is the harness around it: every change takes the same road, whoever or whatever wrote it.

    1. Draft
    2. AI review
    3. Checks
    4. Quiz: “can you explain your diff?”
    5. Human review
    6. Ship

    11 Abu Dhabi, UAE · Feb 2026–now

    Head of Robotics

    SIRB.AI, founding team

    I designed the robotics software architecture and the autonomy roadmap, and built a self-healing autonomy layer: swarm-wide fault and state recording, agents that detect and recover from failures, and ML-based mission scoring before launch.

    We took the stack from prototype to public launch at UMEX 2026, where it was unveiled as the Middle East's first AI-powered swarm platform.

    سرب (sirb) is Arabic for a flock, or a swarm. Watch the drones over this room: now and then one fails and drops, and the flock brings it back. The lagoon below has a flock of its own: flamingos.

    Try it: fly with the flock, then break its radio

    Passive

    Come in, rolling or flying, and the drones escort M4. The lines are their radio links: each drone only hears its neighbours. The readout over them counts the groups and λ₂, the network's algebraic connectivity (0 when it has split).

    Jam part of it and the cut-off drones fly back to the group. Fail the best-connected drone and the formation closes up. Short range and it tightens so neighbours stay in reach.

    On the wall is the self-healing agent: what it noticed, what it thinks caused it, what it did, and how long the swarm took to recover, with a mission-readiness score that says go or hold.

    12 Projects

    Things I've built

    Every clip is a recording of the real thing running.

    Drive up to a screen and its clip plays.

    grip

    A git hook that quizzes you on your own diff before you commit or push, grades the answers against a hidden rubric, and blocks anything below the pass mark.

    PyMAPF

    Multi-agent pathfinding on arbitrary graphs: CBS, PIBT, LaCAM, MAPF-LNS, plus multi-agent RL. The solvers stream their search live.

    Kymatics

    Turns a spoken intent into a queue of build jobs, with local-first agents. Unchained Labs.

    flybots

    Multirotor, fixed-wing and VTOL flight physics from scratch, with 40+ runnable simulations and an RL gym.

    rostree

    Explores a ROS 2 dependency graph (a DAG, not a tree) from the CLI, a TUI, or a self-contained HTML file.

    PythonPDDL

    A dependency-free PDDL framework: hand-written parser and grounder, 14 planners, LM-cut and FF heuristics, and heuristics you can train.

    roue

    An offline file converter for the Linux desktop: Ctrl+Shift+right-click a file, pick a format on a wheel, and the result lands next to the original.

    Clanker Labs

    Self-host your home (notes, mail, media, passwords, money) on hardware you own, with an agent in front so it doesn't need a sysadmin.

    Also

    Upstream, merged

    13 Off the clock

    Basketball, films, photographs

    And Clanker Labs: my self-hosted home, with an agent running it.

    Travels on record, 2023: California and the US West, Paris, Togo, Tokyo, the Maldives, Dubai. These are my photos; open one to see it large.

    Yosemite, California
    Yosemite · California
    Clinton ball, USA
    Clinton ball · USA
    Grand Canyon, USA
    Grand Canyon · USA
    Monument, Paris
    Monument · Paris
    Cooking, in colour, Togo
    Cooking, in colour · Togo
    Pavel, happy, Zion
    Pavel, happy · Zion
    Paris Baguette, Paris
    Paris Baguette · Paris
    The pier, Santa Barbara
    The pier · Santa Barbara
    Skating, Santa Monica
    Skating · Santa Monica
    Hanging shells, Maldives
    Hanging shells · Maldives
    Cathedral Lakes, USA
    Cathedral Lakes · USA
    Zion trail, Zion
    Zion trail · Zion

    14 Exit

    You found the way out. Say hello.